diff --git a/client/Database/database.js b/client/Database/database.js index 8d04133423e5db128e9bdb233aa5987b1d77c487..8cabde905aa6e80ef8178da1ebbd5844a926b14e 100644 --- a/client/Database/database.js +++ b/client/Database/database.js @@ -18,6 +18,15 @@ const firebaseConfig = { messagingSenderId: "902143402555", appId: "1:902143402555:web:29213e81de0a0cba38b21e", }; +// const firebaseConfig = { +// apiKey: "AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4", +// authDomain: "company3-456bb.firebaseapp.com", +// projectId: "company3-456bb", +// storageBucket: "company3-456bb.appspot.com", +// messagingSenderId: "310033686522", +// appId: "1:310033686522:web:63198bb0db679c98ee4e43", +// measurementId: "G-PFLDQY00DB" +// }; const app = initializeApp(firebaseConfig); export const auth = getAuth(); export const db = getFirestore(app); diff --git a/client/Database/database.ts b/client/Database/database.ts index 0f8fd441baea115dec9aa9fb0e4f3c5b6b3872e0..687946161c79de363ed54082f6fad9bdaeb9e16d 100644 --- a/client/Database/database.ts +++ b/client/Database/database.ts @@ -29,6 +29,16 @@ const firebaseConfig = { appId: "1:902143402555:web:29213e81de0a0cba38b21e", }; +// const firebaseConfig = { +// apiKey: "AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4", +// authDomain: "company3-456bb.firebaseapp.com", +// projectId: "company3-456bb", +// storageBucket: "company3-456bb.appspot.com", +// messagingSenderId: "310033686522", +// appId: "1:310033686522:web:63198bb0db679c98ee4e43", +// measurementId: "G-PFLDQY00DB" +// }; + const app = initializeApp(firebaseConfig); export const auth = getAuth(); export const db = getFirestore(app); diff --git a/client/currentProjects/currentProjects.css b/client/currentProjects/currentProjects.css index 803a1202507379c3fe3facecf26ff019ac27a322..08136ba9efdfc71f516fb3020f3c22359f548984 100644 --- a/client/currentProjects/currentProjects.css +++ b/client/currentProjects/currentProjects.css @@ -208,6 +208,14 @@ a { .container-fluid{ padding-left: 0%; } +.statusText { + font-weight: bold; + text-align: center; + font-family: 'Gill Sans MT'; + font-size: 24px; + color: rgb(111, 111, 111); + margin-left: 15%; +} .projectButton { background: linear-gradient(to right,rgba(220, 144, 215, 0.3), rgba(234, 103, 225, 0)); border: none; diff --git a/client/currentProjects/currentProjects.js b/client/currentProjects/currentProjects.js index 0b1474da2750d9324c7eff4f84c882eb9a47bef8..4fcd971789cdb93aca8420b1c8b44309eba4ae6f 100644 --- a/client/currentProjects/currentProjects.js +++ b/client/currentProjects/currentProjects.js @@ -9,16 +9,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; import { getImprovementWorks, getObjectById } from "../Database/database.js"; -import { loadProjectPageP } from "../SidebarAndHeader/pageHandler.js"; +import { loadProjectPageP, loadProjectPageA, loadProjectPageG, loadProjectPageS } from "../SidebarAndHeader/pageHandler.js"; let projectCards = {}; class projectCard { - constructor(id, name, department, title, description, projectId) { + constructor(id, name, department, title, description, projectId, currentStage) { this.name = name; this.department = department; this.title = title; this.description = description; this.id = id; this.projectId = projectId; + this.stage = currentStage; } showMoreInfo(blockId, thisTextId) { const blockElement = document.getElementById(blockId); @@ -57,10 +58,12 @@ class projectCard { <button data-project-id="${this.id}" class="projectButton" role="button">Gå till projektsidan</button> - + <div class="statusText"> + Status: ${this.stage} + </div> <div class="container ongoingSeeCardDetails toSinglePage"> <div class="ongoingSeeCardDetailsInner"> - <p id="ongoingSeeDetailsButton${this.id}" class = "moreInfoClass">> Mer information</p> + <p id="ongoingSeeDetailsButton${this.id}" class = "moreInfoClass">>Mer information</p> </div> </div> </div> @@ -109,7 +112,7 @@ function getProjects(selectElement, listenersLoaded) { let name = "Projektledare"; //Waiting for backend fix let description = project.content; let i = id; - let card = new projectCard(i, name, department.name, title, description, project.id); + let card = new projectCard(i, name, department.name, title, description, project.id, project.currentStage); projectCards[i] = card; let cardHTML = card.generateHTML(); addEventListener(listenersLoaded, project.id, card); @@ -140,8 +143,23 @@ function addEventListener(listenersLoaded, projectId, card) { card.closeMoreInfo(`expandedOngoingWorkCard` + projectId, `ongoingSeeDetailsButton` + projectId); } } - else { - loadProjectPageP(projectId); + else if (element.classList.contains('projectButton')) { + const currentStage = card.stage; + if (currentStage === 'Agera') { + loadProjectPageA(projectId); + } + else if (currentStage === 'Studera') { + loadProjectPageS(projectId); + } + else if (currentStage === 'Göra') { + loadProjectPageG(projectId); + } + else if (currentStage === 'Planera') { + loadProjectPageP(projectId); + } + else if (currentStage === 'Avslutat') { + loadProjectPageP(projectId); + } } }); } diff --git a/client/currentProjects/currentProjects.ts b/client/currentProjects/currentProjects.ts index bb54700ebef1d3a95fcc4cfac726f0526d9c31fb..cbb9557a90126f5463e49749fab68b462c0e3754 100644 --- a/client/currentProjects/currentProjects.ts +++ b/client/currentProjects/currentProjects.ts @@ -1,6 +1,6 @@ "use strict"; import { getImprovementWorks, getObject, getObjectById } from "../Database/database.js"; -import { loadProjectPageP, loadProjectPageA } from "../SidebarAndHeader/pageHandler.js"; +import { loadProjectPageP, loadProjectPageA, loadProjectPageG, loadProjectPageS } from "../SidebarAndHeader/pageHandler.js"; import * as projectPage from "../projectPage/projectPage.js"; @@ -13,16 +13,19 @@ class projectCard { private description: string; private id: number; private projectId: string; + public stage: any; - constructor(id: number, name: string, department: string, title: string, description: string, projectId: string) { + constructor(id: number, name: string, department: string, title: string, description: string, projectId: string, currentStage : string) { this.name = name; this.department = department; this.title = title; this.description = description; this.id = id; this.projectId = projectId; + this.stage = currentStage; } + showMoreInfo(blockId: string, thisTextId: string): void { const blockElement = document.getElementById(blockId); if (blockElement) { @@ -45,7 +48,7 @@ class projectCard { textElement.innerText = '> Mer information'; } } - + loadInitiatePage() { alert('The initiate project page should now be loaded'); } @@ -66,10 +69,12 @@ class projectCard { <button data-project-id="${this.id}" class="projectButton" role="button">Gå till projektsidan</button> - + <div class="statusText"> + Status: ${this.stage} + </div> <div class="container ongoingSeeCardDetails toSinglePage"> <div class="ongoingSeeCardDetailsInner"> - <p id="ongoingSeeDetailsButton${this.id}" class = "moreInfoClass">> Mer information</p> + <p id="ongoingSeeDetailsButton${this.id}" class = "moreInfoClass">>Mer information</p> </div> </div> </div> @@ -122,7 +127,7 @@ async function getProjects (selectElement : Element, listenersLoaded:boolean) { let name = "Projektledare"; //Waiting for backend fix let description = project.content; let i = id; - let card = new projectCard(i, name, department.name, title, description, project.id); + let card = new projectCard(i, name, department.name, title, description, project.id, project.currentStage); projectCards[i] = card; let cardHTML = card.generateHTML(); addEventListener(listenersLoaded, project.id, card); @@ -149,9 +154,20 @@ function addEventListener(listenersLoaded:boolean, projectId:string, card:projec } else { card.closeMoreInfo(`expandedOngoingWorkCard`+projectId, `ongoingSeeDetailsButton`+projectId); } - } else { - loadProjectPageP(projectId); - } - }); + } else if (element.classList.contains('projectButton')){ + const currentStage = card.stage; + if (currentStage === 'Agera') { + loadProjectPageA(projectId); + } else if (currentStage === 'Studera') { + loadProjectPageS(projectId); + } else if (currentStage === 'Göra') { + loadProjectPageG(projectId); + } else if(currentStage === 'Planera') { + loadProjectPageP(projectId); + } else if(currentStage === 'Avslutat') { + loadProjectPageP(projectId); + } + } } +)} } \ No newline at end of file diff --git a/client/dist/completedProjects.bundle.js b/client/dist/completedProjects.bundle.js index bc91064658db56a7e2b38ce1918c6253421054b1..f748c7ca0c1f67ef52b2b6f9ee6cd7585ba35803 100644 --- a/client/dist/completedProjects.bundle.js +++ b/client/dist/completedProjects.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 */ 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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/dist/currentProjects.bundle.js b/client/dist/currentProjects.bundle.js index 976efe25161a55ef0c590b522b0478fba01e4c1d..3c8c7b1ec34a89cdf02779a90c56f48cc496e8e9 100644 --- a/client/dist/currentProjects.bundle.js +++ b/client/dist/currentProjects.bundle.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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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?"); /***/ }), @@ -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 */ 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\n\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\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=\\\"totalExpandedOngoingWorkCard\\\">\\n <div 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\\n <button 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 <p id=\\\"ongoingSeeDetailsButton\").concat(this.id, \"\\\" 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 _callee() {\n var container;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n container = document.querySelector('#container-fluid');\n if (container) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = {};\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 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 getProjects(container, listenersLoaded);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({});\n case 2:\n data = _context3.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n title = project.name;\n _context2.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('unit', project.unitId);\n case 3:\n department = _context2.sent;\n if (!department) {\n _context2.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 addEventListener(listenersLoaded, project.id, card);\n div = document.createElement('div');\n div.className = 'projectCardCardDiv'; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context2.next = 17;\n break;\n }\n return _context2.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n id++;\n _context2.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 _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction addEventListener(listenersLoaded, projectId, card) {\n if (!listenersLoaded) {\n $(document).on('click', '#' + projectId, function (event) {\n var element = event.target;\n if (element.classList.contains('moreInfoClass')) {\n var 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 } else {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n });\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 */ 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\n\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\nvar projectCards = {};\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 return \"<div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div 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\\n <button data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n\\n <div class=\\\"statusText\\\">\\n Status: \").concat(this.stage, \"\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.id, \"\\\" 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 _callee() {\n var container;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n container = document.querySelector('#container-fluid');\n if (container) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = {};\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 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 getProjects(container, listenersLoaded);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({});\n case 2:\n data = _context3.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n title = project.name;\n _context2.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('unit', project.unitId);\n case 3:\n department = _context2.sent;\n if (!department) {\n _context2.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.currentStage);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n addEventListener(listenersLoaded, project.id, card);\n div = document.createElement('div');\n div.className = 'projectCardCardDiv'; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context2.next = 17;\n break;\n }\n return _context2.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n id++;\n _context2.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 _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction addEventListener(listenersLoaded, projectId, card) {\n if (!listenersLoaded) {\n $(document).on('click', '#' + projectId, function (event) {\n var element = event.target;\n if (element.classList.contains('moreInfoClass')) {\n var 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 } else if (element.classList.contains('projectButton')) {\n var currentStage = card.stage;\n if (currentStage === 'Agera') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === 'Studera') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === 'Göra') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === 'Planera') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === 'Avslutat') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); /***/ }), @@ -316,7 +316,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 */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toCurrentProjects');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageA.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('.wholePageA');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toCurrentProjects') {\n finalize(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n } else if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\nfunction finalize(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user, userId;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n user = localStorage.getItem('user');\n if (user) {\n userId = JSON.parse(user)[0].id;\n }\n console.log(userId);\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.finalizeImprovementWork)(userId, projectId);\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadCurrentProjects)();\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageA.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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 updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toCurrentProjects');\n if (!container) return; // Stop if the container isn't found\n updateStage(\"Agera\", projectId);\n fetch('projectPage/ProjectPageA.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('.wholePageA');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toCurrentProjects') {\n updateStage(\"Avslutat\", projectId);\n finalize(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n } else if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\nfunction finalize(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var user, userId;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n user = localStorage.getItem('user');\n if (user) {\n userId = JSON.parse(user)[0].id;\n }\n console.log(userId);\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.finalizeImprovementWork)(userId, projectId);\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadCurrentProjects)();\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageA.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 */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toS');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageG.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('.wholePageG');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageG.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toS');\n if (!container) return; // Stop if the container isn't found\n updateStage(\"Göra\", projectId);\n fetch('projectPage/ProjectPageG.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('.wholePageG');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageG.js?"); /***/ }), @@ -336,7 +336,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 */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toG');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageP.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('.wholePageP');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.matches('[data-toggle=\"tooltip\"]') && !target.dataset.tooltipInitialized) {\n $(target).tooltip();\n target.dataset.tooltipInitialized = 'true';\n }\n if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n loadImprovementWorkDataPageP(projectId);\n}\nfunction initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n}\nfunction loadImprovementWorkDataPageP(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var data;\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_database_js__WEBPACK_IMPORTED_MODULE_1__.getObjectById)('improvementWork', projectId);\n case 2:\n data = _context.sent;\n console.log(data.name);\n case 4:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageP.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toG');\n if (!container) return; // Stop if the container isn't found\n updateStage(\"Planera\", projectId);\n fetch('projectPage/ProjectPageP.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('.wholePageP');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.matches('[data-toggle=\"tooltip\"]') && !target.dataset.tooltipInitialized) {\n $(target).tooltip();\n target.dataset.tooltipInitialized = 'true';\n }\n if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n loadImprovementWorkDataPageP(projectId);\n}\nfunction initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n}\nfunction loadImprovementWorkDataPageP(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var data;\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_1__.getObjectById)('improvementWork', projectId);\n case 2:\n data = _context2.sent;\n console.log(data.name);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageP.js?"); /***/ }), @@ -346,7 +346,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 */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toA');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageS.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('.wholePageS');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toA') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageA)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageS.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var container, nextPageButton, initializeTooltips;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n initializeTooltips = function _initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n };\n container = document.querySelector('#container-fluid');\n nextPageButton = document.getElementById('toA');\n if (container) {\n _context2.next = 5;\n break;\n }\n return _context2.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n updateStage(\"Studera\", projectId);\n fetch('projectPage/ProjectPageS.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('.wholePageS');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toA') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageA)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageS.js?"); /***/ }), diff --git a/client/dist/homePage.bundle.js b/client/dist/homePage.bundle.js index 6333bbe0d8780a6c629fe4c01f1c6829ab078418..12c33be211042eb506f6be72d589bc8e44394c63 100644 --- a/client/dist/homePage.bundle.js +++ b/client/dist/homePage.bundle.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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/dist/ideaBank.bundle.js b/client/dist/ideaBank.bundle.js index b05cf7aa70f42420700ecf94c5596a0eea3745c5..799d54695fd349df7996f5113aa87b884af45949 100644 --- a/client/dist/ideaBank.bundle.js +++ b/client/dist/ideaBank.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 */ 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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/dist/initiateIdea.bundle.js b/client/dist/initiateIdea.bundle.js index 46fd71f91dcd9749a8cdd64a0c09f1b6de1aee61..883576eb89d38048eb8d8ac3a259d50444e1aa26 100644 --- a/client/dist/initiateIdea.bundle.js +++ b/client/dist/initiateIdea.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 */ 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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/dist/login.bundle.js b/client/dist/login.bundle.js index f2ae46fdfcf16cf798afdbb143fed94f6ca424c2..84f64fa912049bdaf7de63c22bad181266fe6a58 100644 --- a/client/dist/login.bundle.js +++ b/client/dist/login.bundle.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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/dist/makeSuggestion.bundle.js b/client/dist/makeSuggestion.bundle.js index 36f3be6a228c428f2a4284e2198bb8659674ec5f..49dd351ab69ed91065fbcf527a9f55f4aa514a9d 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 */ 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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/dist/pageHandler.bundle.js b/client/dist/pageHandler.bundle.js index 4a4747974db7823552b92822dee60e5b787e3f1b..f4a2979a456b9d36b9a5a56a237eeb9d95ab6c2d 100644 --- a/client/dist/pageHandler.bundle.js +++ b/client/dist/pageHandler.bundle.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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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?"); /***/ }), @@ -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 */ 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\n\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\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=\\\"totalExpandedOngoingWorkCard\\\">\\n <div 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\\n <button 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 <p id=\\\"ongoingSeeDetailsButton\").concat(this.id, \"\\\" 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 _callee() {\n var container;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n container = document.querySelector('#container-fluid');\n if (container) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = {};\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 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 getProjects(container, listenersLoaded);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({});\n case 2:\n data = _context3.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n title = project.name;\n _context2.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('unit', project.unitId);\n case 3:\n department = _context2.sent;\n if (!department) {\n _context2.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 addEventListener(listenersLoaded, project.id, card);\n div = document.createElement('div');\n div.className = 'projectCardCardDiv'; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context2.next = 17;\n break;\n }\n return _context2.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n id++;\n _context2.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 _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction addEventListener(listenersLoaded, projectId, card) {\n if (!listenersLoaded) {\n $(document).on('click', '#' + projectId, function (event) {\n var element = event.target;\n if (element.classList.contains('moreInfoClass')) {\n var 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 } else {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n });\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 */ 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\n\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\nvar projectCards = {};\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 return \"<div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div 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\\n <button data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n\\n <div class=\\\"statusText\\\">\\n Status: \").concat(this.stage, \"\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.id, \"\\\" 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 _callee() {\n var container;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n container = document.querySelector('#container-fluid');\n if (container) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = {};\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 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 getProjects(container, listenersLoaded);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({});\n case 2:\n data = _context3.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n title = project.name;\n _context2.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('unit', project.unitId);\n case 3:\n department = _context2.sent;\n if (!department) {\n _context2.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.currentStage);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n addEventListener(listenersLoaded, project.id, card);\n div = document.createElement('div');\n div.className = 'projectCardCardDiv'; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context2.next = 17;\n break;\n }\n return _context2.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n id++;\n _context2.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 _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction addEventListener(listenersLoaded, projectId, card) {\n if (!listenersLoaded) {\n $(document).on('click', '#' + projectId, function (event) {\n var element = event.target;\n if (element.classList.contains('moreInfoClass')) {\n var 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 } else if (element.classList.contains('projectButton')) {\n var currentStage = card.stage;\n if (currentStage === 'Agera') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === 'Studera') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === 'Göra') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === 'Planera') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === 'Avslutat') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); /***/ }), @@ -316,7 +316,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 */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toCurrentProjects');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageA.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('.wholePageA');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toCurrentProjects') {\n finalize(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n } else if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\nfunction finalize(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user, userId;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n user = localStorage.getItem('user');\n if (user) {\n userId = JSON.parse(user)[0].id;\n }\n console.log(userId);\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.finalizeImprovementWork)(userId, projectId);\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadCurrentProjects)();\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageA.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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 updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toCurrentProjects');\n if (!container) return; // Stop if the container isn't found\n updateStage(\"Agera\", projectId);\n fetch('projectPage/ProjectPageA.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('.wholePageA');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toCurrentProjects') {\n updateStage(\"Avslutat\", projectId);\n finalize(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n } else if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\nfunction finalize(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var user, userId;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n user = localStorage.getItem('user');\n if (user) {\n userId = JSON.parse(user)[0].id;\n }\n console.log(userId);\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.finalizeImprovementWork)(userId, projectId);\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadCurrentProjects)();\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageA.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 */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toS');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageG.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('.wholePageG');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageG.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toS');\n if (!container) return; // Stop if the container isn't found\n updateStage(\"Göra\", projectId);\n fetch('projectPage/ProjectPageG.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('.wholePageG');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toS') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageS)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageG.js?"); /***/ }), @@ -336,7 +336,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 */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toG');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageP.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('.wholePageP');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.matches('[data-toggle=\"tooltip\"]') && !target.dataset.tooltipInitialized) {\n $(target).tooltip();\n target.dataset.tooltipInitialized = 'true';\n }\n if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n loadImprovementWorkDataPageP(projectId);\n}\nfunction initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n}\nfunction loadImprovementWorkDataPageP(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var data;\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_database_js__WEBPACK_IMPORTED_MODULE_1__.getObjectById)('improvementWork', projectId);\n case 2:\n data = _context.sent;\n console.log(data.name);\n case 4:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageP.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toG');\n if (!container) return; // Stop if the container isn't found\n updateStage(\"Planera\", projectId);\n fetch('projectPage/ProjectPageP.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('.wholePageP');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.matches('[data-toggle=\"tooltip\"]') && !target.dataset.tooltipInitialized) {\n $(target).tooltip();\n target.dataset.tooltipInitialized = 'true';\n }\n if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n loadImprovementWorkDataPageP(projectId);\n}\nfunction initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n}\nfunction loadImprovementWorkDataPageP(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var data;\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_1__.getObjectById)('improvementWork', projectId);\n case 2:\n data = _context2.sent;\n console.log(data.name);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageP.js?"); /***/ }), @@ -346,7 +346,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 */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n\nfunction loadPage(projectId) {\n var container = document.querySelector('#container-fluid');\n var nextPageButton = document.getElementById('toA');\n if (!container) return; // Stop if the container isn't found\n fetch('projectPage/ProjectPageS.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('.wholePageS');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toA') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageA)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n function initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n }\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageS.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.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\nfunction updateStage(stage, id) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_1__.updateInstance)(\"improvementWork\", id, {\n currentStage: stage\n });\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n}\nfunction loadPage(projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var container, nextPageButton, initializeTooltips;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n initializeTooltips = function _initializeTooltips() {\n // Use jQuery to select the elements and initialize the tooltip\n $('[data-toggle=\"tooltip\"]').tooltip({\n delay: {\n \"show\": 0,\n \"hide\": 100\n }\n });\n };\n container = document.querySelector('#container-fluid');\n nextPageButton = document.getElementById('toA');\n if (container) {\n _context2.next = 5;\n break;\n }\n return _context2.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n updateStage(\"Studera\", projectId);\n fetch('projectPage/ProjectPageS.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('.wholePageS');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n initializeTooltips();\n }\n });\n container.addEventListener('click', function (event) {\n var target = event.target; // Type assertion\n if (target.id === 'toA') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageA)(projectId);\n } else if (target.id === 'toP') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageP)(projectId);\n } else if (target.id === 'toG') {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_0__.loadProjectPageG)(projectId);\n }\n });\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPageS.js?"); /***/ }), diff --git a/client/dist/register.bundle.js b/client/dist/register.bundle.js index 3a7dd5dbe6c1ca6b2e4a5efe69c5a5d852c9adf6..44ef20af4e11542dea3f767cba183a251c22338f 100644 --- a/client/dist/register.bundle.js +++ b/client/dist/register.bundle.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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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};\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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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 */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\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 */ 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 _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\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// 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\");\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, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef, unitRef;\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 improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n // Atomically add user to unit.\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(unitRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userRef.id)\n });\n case 7:\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n}\n//Adds a new improvementWork to the database\n// takes in Id, name, currentStage in PDSA, content, unitId refers to as string and if completed as boolean\n// throws error if transaction failed\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. \nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area,\n// patientRiskLevel: \"Green\" | \"Blue\" | \"Orange\" | \"Red\"\n//Questions in planning stage\np1, p2, p3, p4, p5, p6, p7,\n//Questions in Doing (G) stage\ng1, g2, g3, g4, g5,\n//Questions in stydy stage\ns1, s2, s3,\n//Questions in acting stage\na1, a2, a3, a4) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, {\n id: improvementWorkRef.id,\n currentStage: currentStage,\n name: name,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n members: [],\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 });\n case 4:\n _context2.next = 10;\n break;\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 6]]);\n }));\n}\n//create task to improvementWork\n// takes in improvementWorkId, name, deadline date, start date, stage in PDSA and content as string\n// throws error if transaction failed\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var ref, improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n members: []\n });\n case 4:\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // Atomically add task to the tasks array field.\n _context3.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(taskId)\n });\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error creating task: \", _context3.t0);\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 9]]);\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) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name\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 document: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, 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 _callee5() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.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 _context5.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 _context5.next = 11;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error adding document: \", _context5.t0);\n throw _context5.t0;\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n}\n//add a member to a improvementWork\n// takes in id, users HSAid, improvementWorks id as string and if is owner, is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var improvementWorkRef, userRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId); // return;\n // Atomically update the members array in the improvementWork document\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(improvementWorkRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId); // Atomically add improvementWork to user\n _context6.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n improvementWorks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context6.next = 13;\n break;\n case 9:\n _context6.prev = 9;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding member: \", _context6.t0);\n throw _context6.t0;\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 9]]);\n }));\n}\n//create a hospital\n// takes in ID, name as string\n// throws error if transaction failed\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var ref;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n ref = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context7.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(ref, {\n id: ref.id,\n name: name,\n units: []\n });\n case 4:\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context7.t0);\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n}\n//create a unit\n// takes in id, hospitals id and name as string\n// throws error if transaction failed\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unitRef, hospitalRef;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context8.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, {\n id: unitRef.id,\n hospitalId: hospitalId,\n name: name,\n members: []\n });\n case 4:\n // Atomically add unit to hospital.\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context8.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(hospitalRef, {\n units: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(unitRef.id)\n });\n case 7:\n _context8.next = 13;\n break;\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](0);\n console.log(\"Error creating unit: \", _context8.t0);\n throw _context8.t0;\n case 13:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 9]]);\n }));\n}\n//adds a member to task\n// takes in ID, the added members hsaId, task id as string and if person is responsible as boolean\n// throws error if transaction failed\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var taskRef, userRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n // Atomically add a member to task.\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context9.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(taskRef, {\n members: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n userHsaId: userHsaId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 4:\n // Atomically add a task to user.\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n _context9.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(userRef, {\n tasks: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)({\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n })\n });\n case 7:\n _context9.next = 13;\n break;\n case 9:\n _context9.prev = 9;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error adding member: \", _context9.t0);\n throw _context9.t0;\n case 13:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 9]]);\n }));\n}\n//creates a suggestion\n// takes in ID, the creators hsaId, name, content and the responding unitId as string\n// throws error if transaction failed\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 _callee10() {\n var suggestionRef, commentCollection;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context10.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, {\n id: suggestionRef.id,\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need: need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n });\n case 4:\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 6:\n commentCollection = _context10.sent;\n _context10.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 9:\n _context10.next = 15;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context10.t0);\n throw _context10.t0;\n case 15:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 11]]);\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 _callee11() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context11.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 _context11.next = 10;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context11.t0);\n throw _context11.t0;\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, 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 _callee12() {\n var suggestionRef, commentCollection, commentRef;\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__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context12.sent;\n _context12.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context12.sent;\n _context12.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 _context12.next = 16;\n break;\n case 12:\n _context12.prev = 12;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error creating comment: \", _context12.t0);\n throw _context12.t0;\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, 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 _callee13() {\n var suggestionRef, commentRef;\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);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context13.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 _context13.next = 11;\n break;\n case 7:\n _context13.prev = 7;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context13.t0);\n throw _context13.t0;\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, 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 _callee14() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.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 _context14.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 _context14.next = 11;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error adding document: \", _context14.t0);\n throw _context14.t0;\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, 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 _callee15() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context15.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context15.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context15.abrupt(\"return\", result);\n case 10:\n _context15.prev = 10;\n _context15.t0 = _context15[\"catch\"](0);\n console.error(\"Error getting collection data\", _context15.t0);\n throw _context15.t0;\n case 14:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, 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 _callee16() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context16.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context16.sent;\n if (!docSnapshot.exists()) {\n _context16.next = 9;\n break;\n }\n return _context16.abrupt(\"return\", docSnapshot.data());\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context16.abrupt(\"return\", null);\n case 11:\n _context16.next = 17;\n break;\n case 13:\n _context16.prev = 13;\n _context16.t0 = _context16[\"catch\"](0);\n console.error(\"Error getting object\", _context16.t0);\n throw _context16.t0;\n case 17:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, 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 _callee17() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.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 _context17.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context17.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context17.abrupt(\"return\", comments);\n case 11:\n _context17.prev = 11;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context17.t0);\n throw _context17.t0;\n case 15:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, 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 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 _callee18() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.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 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 _context18.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context18.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context18.abrupt(\"return\", suggestions);\n case 17:\n _context18.prev = 17;\n _context18.t0 = _context18[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context18.t0);\n throw _context18.t0;\n case 21:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 17]]);\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 _callee19() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.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 _context19.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context19.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context19.abrupt(\"return\", hospitals);\n case 14:\n _context19.prev = 14;\n _context19.t0 = _context19[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context19.t0);\n throw _context19.t0;\n case 18:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, 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 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 _callee20() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\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, \"improvementWork\");\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 (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 constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context20.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", improvementWorks);\n case 19:\n _context20.prev = 19;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context20.t0);\n throw _context20.t0;\n case 23:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 19]]);\n }));\n}\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(_ref5) {\n var hsaId = _ref5.hsaId,\n unitId = _ref5.unitId,\n _ref5$ascendingFirstN = _ref5.ascendingFirstNames,\n ascendingFirstNames = _ref5$ascendingFirstN === void 0 ? false : _ref5$ascendingFirstN,\n uid = _ref5.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, users;\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, \"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 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 _context21.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 10:\n querySnapshot = _context21.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", users);\n case 16:\n _context21.prev = 16;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context21.t0);\n throw _context21.t0;\n case 20:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 16]]);\n }));\n}\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(_ref6) {\n var taskId = _ref6.taskId,\n userId = _ref6.userId,\n isResponsibleFor = _ref6.isResponsibleFor,\n improvementWorkId = _ref6.improvementWorkId,\n _ref6$ascendingDates = _ref6.ascendingDates,\n ascendingDates = _ref6$ascendingDates === void 0 ? false : _ref6$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, tasks;\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, \"task\");\n constraints = [];\n if (taskId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", taskId));\n }\n if (userId && isResponsibleFor !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"members\", \"array-contains\", {\n userHsaId: userId,\n isResponsibleFor: isResponsibleFor\n }));\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 _context22.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context22.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", tasks);\n case 15:\n _context22.prev = 15;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context22.t0);\n throw _context22.t0;\n case 19:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 15]]);\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(_ref7) {\n var unitId = _ref7.unitId,\n hospitalId = _ref7.hospitalId,\n name = _ref7.name,\n _ref7$ascendingUnitNa = _ref7.ascendingUnitNames,\n ascendingUnitNames = _ref7$ascendingUnitNa === void 0 ? false : _ref7$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.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 _context23.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context23.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", units);\n case 15:\n _context23.prev = 15;\n _context23.t0 = _context23[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context23.t0);\n throw _context23.t0;\n case 19:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 15]]);\n }));\n}\n//getMembersFilteredAndSorted() -> Get all members of a project (sorted by firstName?)\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 _callee24() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context24.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context24.next = 11;\n break;\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context24.t0);\n throw _context24.t0;\n case 11:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, 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 _callee26() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\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, collectionName);\n _context26.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context26.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 _callee25() {\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25);\n }));\n });\n _context26.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context26.next = 15;\n break;\n case 11:\n _context26.prev = 11;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context26.t0);\n throw _context26.t0;\n case 15:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, 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 _callee27() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context27.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 _context27.next = 11;\n break;\n case 7:\n _context27.prev = 7;\n _context27.t0 = _context27[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context27.t0);\n throw _context27.t0;\n case 11:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, 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 _callee28() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context28.sent;\n _context28.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context28.sent;\n if (!(!user || !user.manager)) {\n _context28.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context28.next = 18;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context28.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context28.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context28.next = 25;\n break;\n case 21:\n _context28.prev = 21;\n _context28.t0 = _context28[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context28.t0);\n throw _context28.t0;\n case 25:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 21]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context29.sent;\n _context29.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context29.sent;\n if (!(!user || !user.manager)) {\n _context29.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context29.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context29.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context29.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context29.next = 25;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context29.t0);\n throw _context29.t0;\n case 25:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, 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 _callee30() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context30.sent;\n if (!(!user || !user.manager)) {\n _context30.next = 8;\n break;\n }\n throw new Error(\"User can't finalize improvementWork status\");\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context30.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n _context30.next = 16;\n break;\n case 13:\n _context30.prev = 13;\n _context30.t0 = _context30[\"catch\"](0);\n console.log(_context30.t0);\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 13]]);\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/projectPage/projectPageA.js b/client/projectPage/projectPageA.js index 0fbc9f98a6f685073075b81fa0fc2197ab35d2ba..442afe8062b4b5fb4491f0a7df24c54d09bd6a4f 100644 --- a/client/projectPage/projectPageA.js +++ b/client/projectPage/projectPageA.js @@ -8,13 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; import { loadCurrentProjects } from "../SidebarAndHeader/pageHandler.js"; -import { finalizeImprovementWork } from "../Database/database.js"; import { loadProjectPageP, loadProjectPageS, loadProjectPageG } from "../SidebarAndHeader/pageHandler.js"; +import { updateInstance, finalizeImprovementWork } from "../Database/database.js"; +function updateStage(stage, id) { + return __awaiter(this, void 0, void 0, function* () { + updateInstance("improvementWork", id, { currentStage: stage }); + }); +} export function loadPage(projectId) { const container = document.querySelector('#container-fluid'); const nextPageButton = document.getElementById('toCurrentProjects'); if (!container) return; // Stop if the container isn't found + updateStage("Agera", projectId); fetch('projectPage/ProjectPageA.html') .then(response => response.text()) .then(data => { @@ -32,6 +38,7 @@ export function loadPage(projectId) { container.addEventListener('click', (event) => { const target = event.target; // Type assertion if (target.id === 'toCurrentProjects') { + updateStage("Avslutat", projectId); finalize(projectId); } else if (target.id === 'toP') { diff --git a/client/projectPage/projectPageA.ts b/client/projectPage/projectPageA.ts index d91cb1d795e58215b2d04ffebcb372a3c1bccd7e..e23e726bbbbf42d475abc376b25371d0b7d6d06a 100644 --- a/client/projectPage/projectPageA.ts +++ b/client/projectPage/projectPageA.ts @@ -1,7 +1,11 @@ import { loadCurrentProjects } from "../SidebarAndHeader/pageHandler.js"; -import {getObjectById, finalizeImprovementWork } from "../Database/database.js"; import { updateDoc, doc } from "firebase/firestore"; -import { loadProjectPageP, loadProjectPageS,loadProjectPageG } from "../SidebarAndHeader/pageHandler.js"; +import { loadProjectPageP, loadProjectPageS,loadProjectPageG, loadProjectPageA } from "../SidebarAndHeader/pageHandler.js"; +import {getObjectById, updateInstance, finalizeImprovementWork } from "../Database/database.js"; + +async function updateStage(stage : string, id : string){ + updateInstance("improvementWork", id, {currentStage:stage}) + } export function loadPage (projectId : string) { const container = document.querySelector('#container-fluid'); @@ -9,6 +13,8 @@ export function loadPage (projectId : string) { if (!container) return; // Stop if the container isn't found + updateStage("Agera", projectId); + fetch('projectPage/ProjectPageA.html') .then(response => response.text()) .then(data => { @@ -32,6 +38,7 @@ export function loadPage (projectId : string) { const target = event.target as HTMLElement; // Type assertion if (target.id === 'toCurrentProjects') { + updateStage("Avslutat", projectId); finalize(projectId); }else if(target.id === 'toP'){ loadProjectPageP(projectId); diff --git a/client/projectPage/projectPageG.js b/client/projectPage/projectPageG.js index 8778c12bcc91b0b64155c490d22fb86e57147788..975ddb3b1c8aaa50aa71f7d72516de8d015cbbf0 100644 --- a/client/projectPage/projectPageG.js +++ b/client/projectPage/projectPageG.js @@ -1,9 +1,25 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; import { loadProjectPageP, loadProjectPageS } from "../SidebarAndHeader/pageHandler.js"; +import { updateInstance } from "../Database/database.js"; +function updateStage(stage, id) { + return __awaiter(this, void 0, void 0, function* () { + updateInstance("improvementWork", id, { currentStage: stage }); + }); +} export function loadPage(projectId) { const container = document.querySelector('#container-fluid'); const nextPageButton = document.getElementById('toS'); if (!container) return; // Stop if the container isn't found + updateStage("Göra", projectId); fetch('projectPage/ProjectPageG.html') .then(response => response.text()) .then(data => { diff --git a/client/projectPage/projectPageG.ts b/client/projectPage/projectPageG.ts index d5f32e2f23df55d3b3767080d493f3f52c636d1e..04e581b1e20988695ea7c67c249ec9f7e5b6004d 100644 --- a/client/projectPage/projectPageG.ts +++ b/client/projectPage/projectPageG.ts @@ -1,4 +1,9 @@ import { loadProjectPageP, loadProjectPageS } from "../SidebarAndHeader/pageHandler.js"; +import {getObjectById, updateInstance } from "../Database/database.js"; + +async function updateStage(stage : string, id : string){ + updateInstance("improvementWork", id, {currentStage:stage}) +} export function loadPage (projectId : string) { const container = document.querySelector('#container-fluid'); @@ -6,6 +11,10 @@ export function loadPage (projectId : string) { if (!container) return; // Stop if the container isn't found + updateStage("Göra", projectId); + + + fetch('projectPage/ProjectPageG.html') .then(response => response.text()) .then(data => { diff --git a/client/projectPage/projectPageP.js b/client/projectPage/projectPageP.js index a6edd293a0ed2deee174af29c3138baa8a9630ec..39bb2a495e30d7cccdcf16db72fd630158b28409 100644 --- a/client/projectPage/projectPageP.js +++ b/client/projectPage/projectPageP.js @@ -8,12 +8,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; import { loadProjectPageG } from "../SidebarAndHeader/pageHandler.js"; -import { getObjectById } from "../Database/database.js"; +import { getObjectById, updateInstance } from "../Database/database.js"; +function updateStage(stage, id) { + return __awaiter(this, void 0, void 0, function* () { + updateInstance("improvementWork", id, { currentStage: stage }); + }); +} export function loadPage(projectId) { const container = document.querySelector('#container-fluid'); const nextPageButton = document.getElementById('toG'); if (!container) return; // Stop if the container isn't found + updateStage("Planera", projectId); fetch('projectPage/ProjectPageP.html') .then(response => response.text()) .then(data => { diff --git a/client/projectPage/projectPageP.ts b/client/projectPage/projectPageP.ts index 87b6cf9b8f3e39d8ab06a607546f467e023a2173..e9540be037ce37f282935bda55fa8eac4362b751 100644 --- a/client/projectPage/projectPageP.ts +++ b/client/projectPage/projectPageP.ts @@ -1,5 +1,10 @@ import { loadProjectPageG } from "../SidebarAndHeader/pageHandler.js"; -import {getObjectById } from "../Database/database.js"; +import {getObjectById, updateInstance } from "../Database/database.js"; + +async function updateStage(stage : string, id : string){ + updateInstance("improvementWork", id, {currentStage:stage}) + } + export function loadPage (projectId:string) { @@ -8,11 +13,14 @@ export function loadPage (projectId:string) { if (!container) return; // Stop if the container isn't found + updateStage("Planera", projectId); fetch('projectPage/ProjectPageP.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; diff --git a/client/projectPage/projectPageS.js b/client/projectPage/projectPageS.js index 788e36edf2ab7fdb747771d1394ad5bf84a2c04b..367b0dc13e189c0380346bb72b166c0bd9e56314 100644 --- a/client/projectPage/projectPageS.js +++ b/client/projectPage/projectPageS.js @@ -1,37 +1,55 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; import { loadProjectPageA, loadProjectPageP, loadProjectPageG } from "../SidebarAndHeader/pageHandler.js"; -export function loadPage(projectId) { - const container = document.querySelector('#container-fluid'); - const nextPageButton = document.getElementById('toA'); - if (!container) - return; // Stop if the container isn't found - fetch('projectPage/ProjectPageS.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('.wholePageS'); - if (specificElement) { - // Insert the specific element into the target element - container.insertBefore(specificElement, container.firstChild); - initializeTooltips(); - } +import { updateInstance } from "../Database/database.js"; +function updateStage(stage, id) { + return __awaiter(this, void 0, void 0, function* () { + updateInstance("improvementWork", id, { currentStage: stage }); }); - container.addEventListener('click', (event) => { - const target = event.target; // Type assertion - if (target.id === 'toA') { - loadProjectPageA(projectId); - } - else if (target.id === 'toP') { - loadProjectPageP(projectId); - } - else if (target.id === 'toG') { - loadProjectPageG(projectId); +} +export function loadPage(projectId) { + return __awaiter(this, void 0, void 0, function* () { + const container = document.querySelector('#container-fluid'); + const nextPageButton = document.getElementById('toA'); + if (!container) + return; // Stop if the container isn't found + updateStage("Studera", projectId); + fetch('projectPage/ProjectPageS.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('.wholePageS'); + if (specificElement) { + // Insert the specific element into the target element + container.insertBefore(specificElement, container.firstChild); + initializeTooltips(); + } + }); + container.addEventListener('click', (event) => { + const target = event.target; // Type assertion + if (target.id === 'toA') { + loadProjectPageA(projectId); + } + else if (target.id === 'toP') { + loadProjectPageP(projectId); + } + else if (target.id === 'toG') { + loadProjectPageG(projectId); + } + }); + function initializeTooltips() { + // Use jQuery to select the elements and initialize the tooltip + $('[data-toggle="tooltip"]').tooltip({ delay: { "show": 0, "hide": 100 } }); } }); - function initializeTooltips() { - // Use jQuery to select the elements and initialize the tooltip - $('[data-toggle="tooltip"]').tooltip({ delay: { "show": 0, "hide": 100 } }); - } } diff --git a/client/projectPage/projectPageS.ts b/client/projectPage/projectPageS.ts index 97f3aeeee308dea7744ecc83546f73b0965ab4ff..33b753e24342acf0d02f54b0c23246710d9265be 100644 --- a/client/projectPage/projectPageS.ts +++ b/client/projectPage/projectPageS.ts @@ -1,11 +1,19 @@ import { loadProjectPageA,loadProjectPageP,loadProjectPageG, loadProjectPageS } from "../SidebarAndHeader/pageHandler.js"; +import {getObjectById, updateInstance } from "../Database/database.js"; -export function loadPage (projectId : string) { +async function updateStage(stage : string, id : string){ + updateInstance("improvementWork", id, {currentStage:stage}) + } + +export async function loadPage (projectId : string) { const container = document.querySelector('#container-fluid'); const nextPageButton = document.getElementById('toA') as HTMLElement; if (!container) return; // Stop if the container isn't found + updateStage("Studera", projectId); + + fetch('projectPage/ProjectPageS.html') .then(response => response.text()) .then(data => {