aiber-martin/www/main-es5.js
Martin Donnelly a4b8625d0f init
2020-12-17 16:23:12 +00:00

3164 lines
208 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function () {
function _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, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"], {
/***/
"./$$_lazy_route_resource lazy recursive":
/*!******************************************************!*\
!*** ./$$_lazy_route_resource lazy namespace object ***!
\******************************************************/
/*! no static exports found */
/***/
function $$_lazy_route_resourceLazyRecursive(module, exports, __webpack_require__) {
var map = {
"./main/main.module": ["./src/app/main/main.module.ts", "main-main-module"]
};
function webpackAsyncContext(req) {
if (!__webpack_require__.o(map, req)) {
return Promise.resolve().then(function () {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
});
}
var ids = map[req],
id = ids[0];
return __webpack_require__.e(ids[1]).then(function () {
return __webpack_require__(id);
});
}
webpackAsyncContext.keys = function webpackAsyncContextKeys() {
return Object.keys(map);
};
webpackAsyncContext.id = "./$$_lazy_route_resource lazy recursive";
module.exports = webpackAsyncContext;
/***/
},
/***/
"./node_modules/@ionic/core/dist/esm lazy recursive ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$":
/*!*****************************************************************************************************************************************!*\
!*** ./node_modules/@ionic/core/dist/esm lazy ^\.\/.*\.entry\.js$ include: \.entry\.js$ exclude: \.system\.entry\.js$ namespace object ***!
\*****************************************************************************************************************************************/
/*! no static exports found */
/***/
function node_modulesIonicCoreDistEsmLazyRecursiveEntryJs$IncludeEntryJs$ExcludeSystemEntryJs$(module, exports, __webpack_require__) {
var map = {
"./ion-action-sheet.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js", "common", 0],
"./ion-alert.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-alert.entry.js", "common", 1],
"./ion-app_8.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js", "common", 2],
"./ion-avatar_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js", "common", 3],
"./ion-back-button.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js", "common", 4],
"./ion-backdrop.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js", 5],
"./ion-button_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js", "common", 6],
"./ion-card_5.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js", "common", 7],
"./ion-checkbox.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js", "common", 8],
"./ion-chip.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-chip.entry.js", "common", 9],
"./ion-col_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js", 10],
"./ion-datetime_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js", "common", 11],
"./ion-fab_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js", "common", 12],
"./ion-img.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-img.entry.js", 13],
"./ion-infinite-scroll_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js", 14],
"./ion-input.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-input.entry.js", "common", 15],
"./ion-item-option_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js", "common", 16],
"./ion-item_8.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js", "common", 17],
"./ion-loading.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-loading.entry.js", "common", 18],
"./ion-menu_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js", "common", 19],
"./ion-modal.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-modal.entry.js", "common", 20],
"./ion-nav_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js", "common", 21],
"./ion-popover.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-popover.entry.js", "common", 22],
"./ion-progress-bar.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js", "common", 23],
"./ion-radio_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js", "common", 24],
"./ion-range.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-range.entry.js", "common", 25],
"./ion-refresher_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js", "common", 26],
"./ion-reorder_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js", "common", 27],
"./ion-ripple-effect.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js", 28],
"./ion-route_4.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js", "common", 29],
"./ion-searchbar.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js", "common", 30],
"./ion-segment_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js", "common", 31],
"./ion-select_3.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js", "common", 32],
"./ion-slide_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js", 33],
"./ion-spinner.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js", "common", 34],
"./ion-split-pane.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js", 35],
"./ion-tab-bar_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js", "common", 36],
"./ion-tab_2.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js", "common", 37],
"./ion-text.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-text.entry.js", "common", 38],
"./ion-textarea.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js", "common", 39],
"./ion-toast.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-toast.entry.js", "common", 40],
"./ion-toggle.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js", "common", 41],
"./ion-virtual-scroll.entry.js": ["./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js", 42]
};
function webpackAsyncContext(req) {
if (!__webpack_require__.o(map, req)) {
return Promise.resolve().then(function () {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
});
}
var ids = map[req],
id = ids[0];
return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function () {
return __webpack_require__(id);
});
}
webpackAsyncContext.keys = function webpackAsyncContextKeys() {
return Object.keys(map);
};
webpackAsyncContext.id = "./node_modules/@ionic/core/dist/esm lazy recursive ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$";
module.exports = webpackAsyncContext;
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html":
/*!**************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***!
\**************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppAppComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<ion-app>\n <ion-router-outlet></ion-router-outlet>\n</ion-app>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/home/home.page.html":
/*!***************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/home/home.page.html ***!
\***************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppHomeHomePageHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<ion-content class=\"stopScroll\">\n <div class=\"aiber-ion-header\">\n <div class=\"headerHolder\">\n <!--<ion-button color=\"primary\" class=\"echoButton\" (click)=\"echoTest()\">ECHO</ion-button>-->\n <img src=\"assets/imgs/aiber-logo.png\" class=\"headerLogo\" (click)=\"updateTaps()\" />\n <img src=\"assets/imgs/about.png\" class=\"aboutAiber\" (click)=\"showAboutInfo()\" />\n <img src=\"assets/imgs/top-wedge.png\" class=\"topWedge\" />\n <img src=\"assets/imgs/firstaidsymbol.png\" class=\"firstAidSymbolTop\" (click)=\"toggleFAS()\" />\n </div>\n </div>\n <!-- FIRST AID MODAL POPUP -->\n <div class=\"overlay {{ modalVis }}\"></div>\n <div class=\"modal_content fasZ fasModal {{ modalVis }}\">\n <h1>First Aid steps</h1>\n <img src=\"assets/imgs/close.png\" class=\"closeButton\" (click)=\"toggleFAS()\" />\n <ion-slides #fasSlider effect=\"slide\" centeredSlides=\"true\" class=\"fasSlides\" (ionSlideDidChange)=\"fasLockSwipes()\">\n <ion-slide>\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row (click)=\"showUnresponsive()\">\n <ion-col size=\"2\">\n <img src=\"assets/imgs/fasunresponsive.png\" />\n </ion-col>\n <ion-col>\n <h1 class=\"fasMenuItems\">Unresponsive and not breathing</h1>\n </ion-col>\n </ion-row>\n <ion-row (click)=\"showCDHolder()\">\n <ion-col size=\"2\">\n <img src=\"assets/imgs/cdv1.png\" />\n </ion-col>\n <ion-col>\n <h1 class=\"fasMenuItems\">Communicable Diseases</h1>\n </ion-col>\n </ion-row>\n <ion-row (click)=\"showBurns()\">\n <ion-col size=\"2\">\n <img src=\"assets/imgs/fasburn.png\" />\n </ion-col>\n <ion-col>\n <h1 class=\"fasMenuItems\">Burn or Scald</h1>\n </ion-col>\n </ion-row>\n <ion-row (click)=\"showAdultChoking()\">\n <ion-col size=\"2\">\n <img src=\"assets/imgs/faschoking.png\" />\n </ion-col>\n <ion-col>\n <h1 class=\"fasMenuItems\">Adult choking</h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </ion-slide>\n\n <!-- UNRESPONSIVE -->\n <ion-slide *ngIf=\"unresponsiveFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Alert {{staffType}} for help</h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"unresponsiveFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>\n Move {{personLabelUpper}} onto the floor, if safe and\n appropriate to do so\n </h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"unresponsiveFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Look and feel for breaths</h1>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <img src=\"assets/imgs/fasscreen4.png\" class=\"fasScreenImgs\" />\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"unresponsiveFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1 class=\"smallerH1\">\n If still unresponsive and not breathing, start chest\n compressions push downwards in the middle of the chest with\n firm compressions, at a rate of 100-120 compressions per\n minute.<br />\n </h1>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"6\" class=\"col-left\">\n <img src=\"assets/imgs/fasscreen5.png\" class=\"fasScreenImgs smaller\" />\n </ion-col>\n <ion-col size=\"6\" class=\"col-right\">\n <img src=\"assets/imgs/FAS-attempt1.png\" class=\"fasScreenImgs smaller\" />\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"unresponsiveFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1 class=\"smallerH1\">\n Give two breaths after every 30 chest compressions, if safe to\n do so.\n </h1>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <img src=\"assets/imgs/fasscreen6.png\" class=\"fasScreenImgs\" />\n </ion-col>\n </ion-row>\n </ion-grid>\n <ion-button size=\"large\" color=\"primary\" class=\"wideButton\" (click)=\"toggleFAS()\">\n FINISH\n </ion-button>\n </div>\n <h2></h2>\n </ion-slide>\n <!-- END OF UNRESPONSIVE -->\n\n <!-- COMMUNICABLE DISEASE -->\n <ion-slide *ngIf=\"cdFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Communicable disease risk calculator</h1>\n <div class=\"smallerH1 centreText\">To be included...</div>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swiperight.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"cdFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Communicable disease risk calculator</h1>\n <div class=\"smallerH1 centreText\">To be included...</div>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swiperight.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <!-- END OF COMMUNICABLE DISEASE -->\n\n <!-- BURN OR SCALD -->\n <ion-slide *ngIf=\"burnFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Alert {{staffType}} for help</h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"burnFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1 class=\"smallerH1 centreText\">\n Do <strong>NOT</strong> remove any clothing stuck to the\n affected area\n </h1>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <img src=\"assets/imgs/fasburn1.png\" class=\"fasScreenImgs\" />\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"burnFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1 class=\"smallerH1\">\n Cool the burn - Run cold water over the burn for at least 10\n minutes. <strong>AVOID</strong> ice, creams or greasy\n ointments. Do <strong>NOT</strong> attempt to touch the burn\n or pop any blisters that appear\n </h1>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <img src=\"assets/imgs/fasburn4.png\" class=\"fasScreenImgs\" />\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipePositionedRight\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"burnFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>\n Once the burn is cooled, cover with a burns dressing from\n aircraft medical kit.\n </h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"burnFlag\">\n <div class=\"innerSlide\">\n <ion-grid class=\"nomargin\">\n <ion-row>\n <ion-col class=\"nopadding\">\n <h1 class=\"smallerH1\">\n <strong>REMEMBER</strong> A burn or scald can cause shock!\n Keep your {{personLabel}} warm by offering an aircraft\n blanket. Be sure the blanket does\n <strong>NOT</strong>\n come into contact with the burn or scald.\n </h1>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col class=\"nopadding\">\n <img src=\"assets/imgs/fasburn2.png\" class=\"fasScreenImgs\" />\n </ion-col>\n </ion-row>\n </ion-grid>\n <ion-button size=\"large\" color=\"primary\" class=\"wideButton\" (click)=\"toggleFAS()\">\n FINISH\n </ion-button>\n </div>\n </ion-slide>\n\n <!-- END OF BURN OR SCALD -->\n\n <!-- COMMUNICABLE DISEASE -->\n <ion-slide *ngIf=\"cdFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Communicable disease risk calculator</h1>\n <div class=\"smallerH1 centreText\">To be included...</div>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swiperight.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <!-- END OF COMMUNICABLE DISEASE -->\n\n <!-- ADULT CHOKING -->\n <ion-slide *ngIf=\"adultChokingFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <h1>Alert cabin crew for help</h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipe\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"adultChokingFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <div class=\"smallerH1\">\n Help the {{personLabel}} bend forwards. With the heel of your\n hand, hit the {{personLabel}} sharply on their back between\n the shoulder blades. Give up to 5 back slaps.\n </div>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <img src=\"assets/imgs/fasbackslaps.png\" class=\"fasScreenImgs\" /><br />\n <h1 class=\"smallerH1\">\n If back slaps are unsuccessful, swipe to next screen\n </h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipePositionedRight\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"adultChokingFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <div class=\"smallerH1\">\n Move {{personLabel}} to aisle (or another appropriate space),\n give up to 5 abdominal thrusts. Standing behind the\n {{personLabel}}, join your hands around their tummy button and\n make a fist. Pull your hands sharply inwards and upwards.\n </div>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <img src=\"assets/imgs/fasabdthrust.png\" class=\"fasScreenImgs\" /><br />\n <h1 class=\"smallerH1\">\n If abdominal thrusts are unsuccessful, swipe to next screen\n </h1>\n </ion-col>\n </ion-row>\n </ion-grid>\n <img src=\"assets/imgs/swipe.png\" class=\"swipePositionedRight\" />\n </div>\n </ion-slide>\n\n <ion-slide *ngIf=\"adultChokingFlag\">\n <div class=\"innerSlide\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <div class=\"smallerH1\">\n Continue to alternate between back slaps and abdominal thrusts\n until they are successful, OR the {{personLabel}} becomes\n unresponsive.<br /><br />\n <!--If at any\n time they become unresponsive AND are not breathing, tap below for further advice<br><br>-->\n <ion-button size=\"large\" color=\"danger\" class=\"wideTallButton\" (click)=\"openUANB()\">\n UNRESPONSIVE AND<br />NOT BREATHING\n </ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n <ion-button size=\"large\" color=\"primary\" class=\"wideButton\" (click)=\"toggleFAS()\">\n FINISH\n </ion-button>\n </div>\n </ion-slide>\n\n <!-- END OF ADULT CHOKING -->\n </ion-slides>\n </div>\n <!-- END OF FIRST AID MODAL POPUP -->\n\n <!-- CONSCIOUSNESS MODAL POPUP -->\n <div class=\"overlay {{ consciousnessVis }}\"></div>\n <div class=\"modal_content consciousnessZ consciousnessModal {{\n consciousnessVis\n }}\">\n <h1>Has the {{personLabelUpper}} been unconscious?</h1>\n <img src=\"assets/imgs/close.png\" class=\"closeButton\" (click)=\"toggleConsciousness()\" />\n <div class=\"consciousnessHolder\">\n <div class=\"wideButton buttonLeft m30 {{ consciousnessSelectYes }}\" (click)=\"setConsciousness('yes')\">\n Yes\n </div>\n <div class=\"wideButton buttonRight {{ consciousnessSelectNo }}\" (click)=\"setConsciousness('no')\">\n No\n </div>\n </div>\n <div class=\"howLong {{ showInputBox }}\">\n <div class=\"howLongInput\">For <strong>LESS</strong> than:</div>\n <ion-grid class=\"howLongMinutes\">\n <ion-row>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('10s')\">\n 10s\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('30s')\">\n 30s\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('1m')\">\n 1m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('2m')\">\n 2m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('3m')\">\n 3m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('4m')\">\n 4m\n </div>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('5m')\">\n 5m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('10m')\">\n 10m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('15m')\">\n 15m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('20m')\">\n 20m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('25m')\">\n 25m\n </div>\n </ion-col>\n <ion-col>\n <div color=\"danger\" class=\"okButton {{ greyMeOut }}\" (click)=\"saveMinutes('30m')\">\n 30m\n </div>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"12\">\n <div class=\"howLongInputOR\">OR:</div>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"6\">\n <div color=\"danger\" class=\"okButtonWide {{ greyMeOut }}\" (click)=\"saveMinutes('+30m')\">\n More than 30 mins\n </div>\n </ion-col>\n <ion-col size=\"6\">\n <div color=\"danger\" class=\"okButtonWide {{ greyMeOut }}\" (click)=\"saveMinutes('+60m')\">\n More than 1 hour\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </div>\n <!-- END OF CONSCIOUSNESS MODAL POPUP -->\n\n <!-- ABOUT AIBER MODAL POPUP -->\n <div class=\"overlay {{ aboutVis }}\" (click)=\"closeAboutInfo()\"></div>\n <div class=\"modal_content aboutZ aboutModal {{ aboutVis }}\">\n <h1>Aiber Information</h1>\n <img src=\"assets/imgs/close.png\" class=\"closeButton\" (click)=\"closeAboutInfo()\" />\n <div class=\"aboutHolder\">\n <div class=\"aboutInfo\">\n <ion-grid class=\"aboutInfo\">\n <ion-row>\n <ion-col size=\"4\">\n <img src=\"assets/imgs/ce-mark.png\" class=\"ceMark\">\n </ion-col>\n <ion-col size=\"8\">\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>UDI-DI:</strong></ion-col>\n <ion-col class=\"aboutLeft\">5060853230004V1</ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>Manufacturer:</strong></ion-col>\n <ion-col class=\"aboutLeft\">MIME<sup>&#174;</sup> Technologies Ltd</ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>Address:</strong></ion-col>\n <ion-col class=\"aboutLeft\">Solasta House, 8 Inverness Campus, Inverness IV2 5NA</ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>Email:</strong></ion-col>\n <ion-col class=\"aboutLeft\">info@mimetechnologies.com</ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>UDI-PI:</strong></ion-col>\n <ion-col class=\"aboutLeft\">Aiber v{{aiberVersion}}</ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>Indication:</strong></ion-col>\n <ion-col class=\"aboutLeft\">Aiber is a medical device</ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"5\" class=\"aboutLeft\"><strong>Intended use:</strong></ion-col>\n <ion-col class=\"aboutLeft\">Limited Distribution</ion-col>\n </ion-row>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n <ion-button ion-button color=\"primary\" class=\"wideButtonAbout\" (click)=\"closeAboutInfo()\">\n OK\n </ion-button>\n </div>\n </div>\n <!-- END OF ABOUT AIBER MODAL POPUP -->\n\n <div class=\"leftPattern\"></div>\n <div class=\"aiber-inner-content\">\n <ion-grid>\n <ion-row class=\"ccsSize\">\n <ion-col size=\"12\">\n <div class=\"checkPatientStatusBar\">\n <strong>&nbsp;CHECK</strong> {{personLabelUpper}} STATUS\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"avpuSpacer\">\n <ion-col>&nbsp;</ion-col>\n </ion-row>\n <ion-row>\n <ion-col class=\"noLeftPadding noTopPadding\">\n <div class=\"colInner\">\n <strong>AVPU</strong>\n </div>\n </ion-col>\n <ion-col class=\"noLeftPadding noTopPadding\">\n <div class=\"colInner\">\n <strong>AIRWAY</strong>\n </div>\n </ion-col>\n <ion-col class=\"noLeftPadding noTopPadding\">\n <div class=\"colInner\">\n <strong>BREATHING</strong>\n </div>\n </ion-col>\n <ion-col class=\"noColPadding noTopPadding\">\n <div class=\"colInner\">\n <strong>CIRCULATION</strong>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"avpuABCHeight\">\n <ion-col class=\"noLeftPadding noRowPadding\">\n <ion-slides [options]=\"avpuSlidesOpts\" #avpuSlides (ionSlideDidChange)=\"setAVPU()\">\n <ion-slide>\n <div class=\"cpsButtonsAVPU\">\n <div class=\"swipeUpLeft\">\n <img src=\"assets/imgs/swipeup.png\" />\n </div>\n <div class=\"avatar avpuA\">\n <div class=\"avpuText avpuTextSingleLine\">\n <strong>ALERT</strong>\n </div>\n <img src=\"assets/imgs/AVPU-A.png\" class=\"avatarImage\" />\n </div>\n <div class=\"swipeUpRight\">\n <img src=\"assets/imgs/swipeup.png\" />\n </div>\n </div>\n </ion-slide>\n <ion-slide>\n <div class=\"cpsButtonsAVPU\">\n <div class=\"swipeUpLeft hideModal\">\n <img src=\"assets/imgs/swipeupdown.png\" />\n </div>\n <div class=\"avatar avpuV\">\n <div class=\"avpuText\">\n <strong>RESPONDS TO<br />VOICE</strong>\n </div>\n <img src=\"assets/imgs/AVPU-V.png\" class=\"avatarImage\" />\n </div>\n <div class=\"swipeUpRight\">\n <img src=\"assets/imgs/swipeupdown.png\" />\n </div>\n </div>\n </ion-slide>\n <ion-slide>\n <div class=\"cpsButtonsAVPU\">\n <div class=\"swipeUpLeft\">\n <img src=\"assets/imgs/swipeupdown.png\" />\n </div>\n <div class=\"avatar avpuP\">\n <div class=\"avpuText\">\n <strong>RESPONDS TO<br />PAIN</strong>\n </div>\n <img src=\"assets/imgs/AVPU-P.png\" class=\"avatarImage\" />\n </div>\n <div class=\"swipeUpRight\">\n <img src=\"assets/imgs/swipeupdown.png\" />\n </div>\n </div>\n </ion-slide>\n <ion-slide>\n <div class=\"cpsButtonsAVPU\">\n <div class=\"swipeUpLeft\">\n <img src=\"assets/imgs/swipedown.png\" />\n </div>\n <div class=\"avatar avpuU\">\n <div class=\"avpuText avpuTextSingleLine\">\n <strong>UNRESPONSIVE</strong>\n </div>\n <img src=\"assets/imgs/AVPU-U.png\" class=\"avatarImage\" />\n </div>\n <div class=\"swipeUpRight\">\n <img src=\"assets/imgs/swipedown.png\" />\n </div>\n </div>\n </ion-slide>\n </ion-slides>\n </ion-col>\n <ion-col class=\"noLeftPadding\">\n <div class=\"cpsButtons cpsTop selGreen {{ confirm2TopState }} textOnly\" (click)=\"setAirway('clear')\">\n <strong>CLEAR</strong>\n </div>\n <div class=\"cpsButtons cpsBottom selRed {{\n confirm2BottomState\n }} textOnly\" (click)=\"setAirway('blocked')\">\n <strong>BLOCKED</strong>\n </div>\n </ion-col>\n <ion-col class=\"noLeftPadding\">\n <div class=\"cpsButtons cpsTop selGreen {{ confirm3TopState }} textOnly\" (click)=\"setBreathing('regular')\">\n <strong>REGULAR</strong>\n </div>\n <div class=\"cpsButtons cpsBottom selRed {{\n confirm3BottomState\n }} textOnly\" (click)=\"setBreathing('irregular')\">\n <strong>IRREGULAR</strong>\n </div>\n </ion-col>\n <ion-col class=\"noColPadding\">\n <div class=\"cpsButtons cpsTop cpsLastCol selGreen {{\n confirm4TopState\n }} textOnly\" (click)=\"setCirculation('pale')\">\n <strong>PALE</strong>\n </div>\n <div class=\"cpsButtons cpsBottom cpsLastCol selRed {{\n confirm4BottomState\n }} textOnly\" (click)=\"setCirculation('flushed')\">\n <strong>FLUSHED</strong>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"avpuSpacer\">\n <ion-col>&nbsp;</ion-col>\n </ion-row>\n <ion-row class=\"awakeHeight\">\n <ion-col class=\"noLeftPadding noRowPadding\" (click)=\"confirmAVPU()\">\n <div class=\"cpsConfirmed cpsButton1Start\">\n <div class=\"{{confirmBtn1}}\">CONFIRM?</div>\n <div class=\"{{confirmedBtn1}}\">CONFIRMED</div>\n <img src=\"assets/imgs/proceedTick.png\" class=\"proceedTick {{ confirm1Tick }}\" />\n </div>\n </ion-col>\n <ion-col class=\"noLeftPadding noRowPadding\" (click)=\"confirmAirway()\">\n <div class=\"cpsConfirmed {{ confirm2 }}\">\n <div class=\"{{confirmBtn2}}\">CONFIRM?</div>\n <div class=\"{{confirmedBtn2}}\">CONFIRMED</div>\n <img src=\"assets/imgs/proceedTick.png\" class=\"proceedTick {{ confirm2Tick }}\" />\n </div>\n </ion-col>\n <ion-col class=\"noLeftPadding noRowPadding\" (click)=\"confirmBreathing()\">\n <div class=\"cpsConfirmed {{ confirm3 }}\">\n <div class=\"{{confirmBtn3}}\">CONFIRM?</div>\n <div class=\"{{confirmedBtn3}}\">CONFIRMED</div>\n <img src=\"assets/imgs/proceedTick.png\" class=\"proceedTick {{ confirm3Tick }}\" />\n </div>\n </ion-col>\n <ion-col class=\"noColPadding noRowPadding\" (click)=\"confirmCirculation()\">\n <div class=\"cpsConfirmed {{ confirm4 }}\">\n <div class=\"{{confirmBtn4}}\">CONFIRM?</div>\n <div class=\"{{confirmedBtn4}}\">CONFIRMED</div>\n <img src=\"assets/imgs/proceedTick.png\" class=\"proceedTick lastButton {{ confirm4Tick }}\" />\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"avpuSpacer\">\n <ion-col>&nbsp;</ion-col>\n </ion-row>\n <ion-row class=\"awakeHeight\">\n <ion-col size=\"9\" class=\"noColPadding noRowPadding\">\n <div class=\"abcAwake {{ confirmConsciousness }}\">\n Has the {{personLabelUpper}} been <strong>unconscious</strong>?\n <div class=\"buttonConsciousness {{ confirmConsciousness }} {{\n consciousnessStateColour\n }}\" (click)=\"selectConsciousness()\" [innerHtml]=\"consciousnessConfirmState\"></div>\n </div>\n </ion-col>\n <ion-col size=\"3\" class=\"noRightPadding noRowPadding\">\n <div class=\"abcProceed {{ confirmFinal }}\" (click)=\"openMain()\">\n <strong>PROCEED</strong>\n <img src=\"assets/imgs/proceedTick.png\" class=\"proceedTick {{ confirmFinalTick }}\" />\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n <div class=\"rightPattern\"></div>\n <div class=\"aiber-ion-footer\">\n <img src=\"assets/imgs/bottom-wedge.png\" class=\"bottomWedge\" />\n </div>\n</ion-content>";
/***/
},
/***/
"./src/app/app-routing.module.ts":
/*!***************************************!*\
!*** ./src/app/app-routing.module.ts ***!
\***************************************/
/*! exports provided: AppRoutingModule */
/***/
function srcAppAppRoutingModuleTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "AppRoutingModule", function () {
return AppRoutingModule;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
/* harmony import */
var _home_home_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./home/home.page */
"./src/app/home/home.page.ts");
var routes = [{
path: "",
redirectTo: "home",
pathMatch: "full"
}, //{ path: "home", loadChildren: "./home/home.module#HomePageModule" },
{
path: "home",
component: _home_home_page__WEBPACK_IMPORTED_MODULE_3__["HomePage"]
}, {
path: "main/:avpuState/:airwayState/:breathingState/:circulationState/:consciousnessState",
loadChildren: "./main/main.module#MainPageModule"
}, {
path: "main",
loadChildren: "./main/main.module#MainPageModule"
}];
var AppRoutingModule = function AppRoutingModule() {
_classCallCheck(this, AppRoutingModule);
};
AppRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forRoot(routes, {
preloadingStrategy: _angular_router__WEBPACK_IMPORTED_MODULE_2__["PreloadAllModules"]
})],
exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
})], AppRoutingModule);
/***/
},
/***/
"./src/app/app.component.scss":
/*!************************************!*\
!*** ./src/app/app.component.scss ***!
\************************************/
/*! exports provided: default */
/***/
function srcAppAppComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "@font-face {\n font-family: \"oswaldregular\";\n src: url('oswald-regular-webfont.woff2') format(\"woff2\"), url('oswald-regular-webfont.woff') format(\"woff\");\n font-weight: normal;\n font-style: normal;\n}\n@font-face {\n font-family: \"tondoregular\";\n src: url('tondo_std-webfont.woff2') format(\"woff2\"), url('tondo_std-webfont.woff') format(\"woff\");\n font-weight: normal;\n font-style: normal;\n}\n@font-face {\n font-family: \"tondobold\";\n src: url('tondo_std_bold-webfont.woff') format(\"woff2\"), url('tondo_std_bold-webfont.woff2') format(\"woff\");\n font-weight: bold;\n font-style: bold;\n}\n@font-face {\n font-family: \"barlow\";\n src: url('BarlowCondensed-Regular-webfont.woff') format(\"woff\");\n font-weight: normal;\n font-style: normal;\n}\n@font-face {\n font-family: \"barlowCondensed\";\n src: url('BarlowCondensed-SemiBold.otf') format(\"woff\");\n font-weight: normal;\n font-style: normal;\n}\n@font-face {\n font-family: \"bebas\";\n src: url('Bebas-Neue-Pro-Regular.otf') format(\"woff\");\n font-weight: normal;\n font-style: normal;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNEJBQUE7RUFDQSwyR0FBQTtFQUVBLG1CQUFBO0VBQ0Esa0JBQUE7QUFBRjtBQUdBO0VBQ0UsMkJBQUE7RUFDQSxpR0FBQTtFQUVBLG1CQUFBO0VBQ0Esa0JBQUE7QUFGRjtBQUtBO0VBQ0Usd0JBQUE7RUFDQSwyR0FBQTtFQUVBLGlCQUFBO0VBQ0EsZ0JBQUE7QUFKRjtBQU9BO0VBQ0UscUJBQUE7RUFDQSwrREFBQTtFQUVBLG1CQUFBO0VBQ0Esa0JBQUE7QUFORjtBQVNBO0VBQ0UsOEJBQUE7RUFDQSx1REFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUFQRjtBQVVBO0VBQ0Usb0JBQUE7RUFDQSxxREFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUFSRiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJvc3dhbGRyZWd1bGFyXCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL29zd2FsZC1yZWd1bGFyLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL29zd2FsZC1yZWd1bGFyLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJ0b25kb3JlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoXCIuLi9hc3NldHMvZm9udHMvdG9uZG9fc3RkLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3RvbmRvX3N0ZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwidG9uZG9ib2xkXCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3RvbmRvX3N0ZF9ib2xkLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB1cmwoXCIuLi9hc3NldHMvZm9udHMvdG9uZG9fc3RkX2JvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogYm9sZDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImJhcmxvd1wiO1xuICBzcmM6IHVybChcIi4uL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtUmVndWxhci13ZWJmb250LndvZmZcIilcbiAgICBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJiYXJsb3dDb25kZW5zZWRcIjtcbiAgc3JjOiB1cmwoXCIuLi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkLm90ZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBzcmM6IHVybChcIi4uL2Fzc2V0cy9mb250cy9CZWJhcy1OZXVlLVByby1SZWd1bGFyLm90ZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/app.component.ts":
/*!**********************************!*\
!*** ./src/app/app.component.ts ***!
\**********************************/
/*! exports provided: AppComponent */
/***/
function srcAppAppComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "AppComponent", function () {
return AppComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var _ionic_angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @ionic/angular */
"./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
/* harmony import */
var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @ionic-native/splash-screen/ngx */
"./node_modules/@ionic-native/splash-screen/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! @ionic-native/status-bar/ngx */
"./node_modules/@ionic-native/status-bar/__ivy_ngcc__/ngx/index.js");
var AppComponent = /*#__PURE__*/function () {
function AppComponent(platform, splashScreen, statusBar) {
_classCallCheck(this, AppComponent);
this.platform = platform;
this.splashScreen = splashScreen;
this.statusBar = statusBar;
this.initializeApp();
}
_createClass(AppComponent, [{
key: "initializeApp",
value: function initializeApp() {
var _this = this;
this.platform.ready().then(function () {
_this.statusBar.styleDefault();
_this.splashScreen.hide();
});
}
}]);
return AppComponent;
}();
AppComponent.ctorParameters = function () {
return [{
type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["Platform"]
}, {
type: _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_3__["SplashScreen"]
}, {
type: _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_4__["StatusBar"]
}];
};
AppComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-root',
template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(
/*! raw-loader!./app.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html"))["default"],
styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(
/*! ./app.component.scss */
"./src/app/app.component.scss"))["default"]]
})], AppComponent);
/***/
},
/***/
"./src/app/app.module.ts":
/*!*******************************!*\
!*** ./src/app/app.module.ts ***!
\*******************************/
/*! exports provided: AppModule */
/***/
function srcAppAppModuleTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "AppModule", function () {
return AppModule;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./app.component */
"./src/app/app.component.ts");
/* harmony import */
var _ionic_native_app_launcher_ngx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @ionic-native/app-launcher/ngx */
"./node_modules/@ionic-native/app-launcher/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _app_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./app-routing.module */
"./src/app/app-routing.module.ts");
/* harmony import */
var _ionic_native_app_version_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! @ionic-native/app-version/ngx */
"./node_modules/@ionic-native/app-version/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_battery_status_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! @ionic-native/battery-status/ngx */
"./node_modules/@ionic-native/battery-status/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! @angular/platform-browser */
"./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js");
/* harmony import */
var _services_database_database_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ./services/database/database.service */
"./src/app/services/database/database.service.ts");
/* harmony import */
var _ionic_native_device_ngx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! @ionic-native/device/ngx */
"./node_modules/@ionic-native/device/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_file_ngx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! @ionic-native/file/ngx */
"./node_modules/@ionic-native/file/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! @ionic-native/geolocation/ngx */
"./node_modules/@ionic-native/geolocation/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _services_getlocation_getlocation_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! ./services/getlocation/getlocation.service */
"./src/app/services/getlocation/getlocation.service.ts");
/* harmony import */
var _home_home_page__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
/*! ./home/home.page */
"./src/app/home/home.page.ts");
/* harmony import */
var _ionic_native_http_ngx__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(
/*! @ionic-native/http/ngx */
"./node_modules/@ionic-native/http/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _angular_common_http__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(
/*! @angular/common/http */
"./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js");
/* harmony import */
var _ionic_angular__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(
/*! @ionic/angular */
"./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
/* harmony import */
var _ionic_storage__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(
/*! @ionic/storage */
"./node_modules/@ionic/storage/__ivy_ngcc__/fesm2015/ionic-storage.js");
/* harmony import */
var _ionic_native_keyboard_ngx__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(
/*! @ionic-native/keyboard/ngx */
"./node_modules/@ionic-native/keyboard/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(
/*! @ionic-native/network/ngx */
"./node_modules/@ionic-native/network/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
/* harmony import */
var _ionic_native_screen_orientation_ngx__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(
/*! @ionic-native/screen-orientation/ngx */
"./node_modules/@ionic-native/screen-orientation/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(
/*! @ionic-native/splash-screen/ngx */
"./node_modules/@ionic-native/splash-screen/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_sqlite_ngx__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(
/*! @ionic-native/sqlite/ngx */
"./node_modules/@ionic-native/sqlite/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_sqlite_porter_ngx__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(
/*! @ionic-native/sqlite-porter/ngx */
"./node_modules/@ionic-native/sqlite-porter/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(
/*! @ionic-native/status-bar/ngx */
"./node_modules/@ionic-native/status-bar/__ivy_ngcc__/ngx/index.js");
/**
* v1.0.0 - 22/09/2020 - FIRST RELEASE
* v1.0.1 - 30/09/2020 - Patched after first test cycle
* v1.0.2 - 06/11/2020 - Patched after User Validation
*/
var AppModule = function AppModule() {
_classCallCheck(this, AppModule);
};
AppModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_19__["NgModule"])({
declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__["AppComponent"], _home_home_page__WEBPACK_IMPORTED_MODULE_12__["HomePage"]],
entryComponents: [_home_home_page__WEBPACK_IMPORTED_MODULE_12__["HomePage"]],
imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__["BrowserModule"], _ionic_angular__WEBPACK_IMPORTED_MODULE_15__["IonicModule"].forRoot({
scrollPadding: false,
scrollAssist: false
}), _ionic_storage__WEBPACK_IMPORTED_MODULE_16__["IonicStorageModule"].forRoot(), //HttpModule,
_app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_14__["HttpClientModule"]],
providers: [_ionic_native_app_version_ngx__WEBPACK_IMPORTED_MODULE_4__["AppVersion"], _ionic_native_app_launcher_ngx__WEBPACK_IMPORTED_MODULE_2__["AppLauncher"], _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_10__["Geolocation"], _services_getlocation_getlocation_service__WEBPACK_IMPORTED_MODULE_11__["GetlocationService"], _services_database_database_service__WEBPACK_IMPORTED_MODULE_7__["DatabaseService"], _ionic_native_http_ngx__WEBPACK_IMPORTED_MODULE_13__["HTTP"], _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_18__["Network"], _ionic_native_sqlite_ngx__WEBPACK_IMPORTED_MODULE_23__["SQLite"], _ionic_native_sqlite_porter_ngx__WEBPACK_IMPORTED_MODULE_24__["SQLitePorter"], _ionic_native_device_ngx__WEBPACK_IMPORTED_MODULE_8__["Device"], _ionic_native_screen_orientation_ngx__WEBPACK_IMPORTED_MODULE_21__["ScreenOrientation"], _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_25__["StatusBar"], _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_22__["SplashScreen"], _ionic_native_battery_status_ngx__WEBPACK_IMPORTED_MODULE_5__["BatteryStatus"], _ionic_native_file_ngx__WEBPACK_IMPORTED_MODULE_9__["File"], _ionic_native_keyboard_ngx__WEBPACK_IMPORTED_MODULE_17__["Keyboard"], {
provide: _angular_router__WEBPACK_IMPORTED_MODULE_20__["RouteReuseStrategy"],
useClass: _ionic_angular__WEBPACK_IMPORTED_MODULE_15__["IonicRouteStrategy"]
}],
bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__["AppComponent"]]
})], AppModule);
/***/
},
/***/
"./src/app/home/home.page.scss":
/*!*************************************!*\
!*** ./src/app/home/home.page.scss ***!
\*************************************/
/*! exports provided: default */
/***/
function srcAppHomeHomePageScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = ".ceMark {\n padding-top: 45px;\n}\n\n.aboutAiber {\n position: absolute;\n right: 127px;\n top: 20px;\n height: 56px;\n}\n\n.aboutZ {\n z-index: 10000 !important;\n}\n\n.stopScroll {\n --overflow: hidden !important;\n}\n\n.aboutModal {\n top: 24% !important;\n width: 70% !important;\n height: 52% !important;\n text-align: center;\n font-family: \"arial\" !important;\n font-size: 18px;\n}\n\n.aboutModal h1 {\n font-family: \"bebas\" !important;\n}\n\n.aboutHolder {\n margin: 20px auto 0 auto !important;\n width: 100%;\n}\n\n.aboutInfo {\n width: 100%;\n text-align: left !important;\n}\n\n.aboutLeft {\n text-align: left !important;\n}\n\n.stylePage {\n border: 1px solid purple;\n}\n\n.scroll-content {\n padding: 0px !important;\n margin: 0px !important;\n}\n\nbody {\n font-family: \"bebas\" !important;\n color: #555656 !important;\n}\n\n.aiber-ion-header {\n position: absolute;\n top: 0;\n width: 100%;\n height: 91px;\n background-color: #555656 !important;\n color: white;\n}\n\nion-content {\n position: absolute;\n top: 0px;\n height: 100%;\n padding: 0 !important;\n}\n\n.aiber-inner-content {\n position: absolute;\n top: 130px;\n height: 612px;\n width: 1015px;\n left: 32px;\n}\n\n.aiber-ion-footer {\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 96px;\n background-color: #555656 !important;\n color: white;\n}\n\nion-slides {\n height: 270px !important;\n}\n\nion-slide {\n padding: 0 !important;\n width: 100% !important;\n}\n\n.headerHolder {\n position: relative;\n width: 100%;\n padding: 18px 0 0 0;\n text-align: center;\n}\n\n.fasSlides {\n height: 485px !important;\n}\n\n.fasMenuItems {\n text-align: left;\n padding-top: 42px !important;\n font-size: 26px !important;\n}\n\n.fasModal h1 {\n font-family: \"bebas\" !important;\n}\n\n.fasMenuItemsBlank {\n padding-top: 30px !important;\n}\n\n.fasScreenImgs {\n height: 240px !important;\n}\n\n.smaller {\n height: 200px !important;\n}\n\n.nopadding {\n padding-left: 8px !important;\n}\n\n.innerSlide {\n height: 485px !important;\n width: 700px;\n margin: 0 auto !important;\n overflow-y: scroll;\n}\n\n.innerSlide h1 {\n font-size: 56px;\n margin-top: 0 !important;\n}\n\n.smallerH1 {\n font-size: 26px !important;\n text-align: justify !important;\n margin-bottom: 20px !important;\n line-height: 39px !important;\n font-family: \"bebas\" !important;\n width: 100%;\n}\n\n.centreText {\n text-align: center !important;\n}\n\n.swipe {\n padding: 0 !important;\n margin: 0 !important;\n position: absolute;\n bottom: 20px;\n left: 350px;\n width: 100px !important;\n height: 100px !important;\n}\n\n.swipePositionedRight {\n padding: 0 !important;\n margin: 0 !important;\n position: absolute;\n bottom: 20px;\n right: 50px;\n width: 100px;\n}\n\n.headerLogo {\n height: 55px;\n position: absolute;\n left: 56px;\n top: 20px;\n}\n\n.topWedge {\n position: absolute;\n top: 0;\n right: 0;\n height: 90px;\n}\n\n.footerHolder {\n position: relative;\n width: 100%;\n}\n\n.bottomWedge {\n position: absolute;\n bottom: 0px;\n left: 0px;\n height: 100%;\n}\n\n.leftPattern {\n position: absolute;\n height: 69.5%;\n width: 3%;\n top: 100px;\n background-image: url('pattern.png');\n background-size: 100%;\n background-repeat: no-repeat;\n background-position-x: center;\n background-position-y: center;\n}\n\n.showModal {\n display: block;\n}\n\n.hideModal {\n display: none;\n}\n\n.content {\n background: transparent;\n}\n\n.overlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n opacity: 0.8;\n background-color: #333;\n}\n\n.modal_content {\n position: absolute;\n top: 12.5%;\n left: 0;\n right: 0;\n width: 80%;\n height: auto;\n padding: 10px;\n margin: 0 auto;\n color: #333;\n background: #e8e8e8;\n background: linear-gradient(to bottom, #fff 0%, #e8e8e8 100%);\n border-radius: 5px;\n box-shadow: 0 2px 3px rgba(51, 51, 51, 0.35);\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n overflow: hidden;\n}\n\n.fasZ {\n z-index: 50000 !important;\n}\n\n.consciousnessZ {\n z-index: 10000 !important;\n}\n\n.fasModal {\n text-align: center !important;\n padding-top: 30px;\n}\n\n.consciousnessModal {\n top: 21% !important;\n width: 50% !important;\n height: 58% !important;\n text-align: center !important;\n padding-top: 0px;\n}\n\n.consciousnessModal h1 {\n font-family: \"bebas\" !important;\n font-size: 32px;\n}\n\n.consciousnessHolder {\n margin: 20px auto 0 auto !important;\n width: 362px;\n height: 40px;\n}\n\n.wideButton {\n width: 160px !important;\n font-family: \"bebas\" !important;\n border-radius: 0 !important;\n height: 53px;\n font-size: 32px;\n margin: 0 !important;\n padding-top: 3px;\n}\n\n.buttonLeft {\n float: left;\n}\n\n.buttonRight {\n float: right;\n}\n\n.wideTallButton {\n width: 180px !important;\n font-family: \"bebas\" !important;\n border-radius: 0 !important;\n height: 52px;\n font-size: 20px;\n left: 253px;\n}\n\n.m30 {\n margin-right: 30px;\n}\n\n.howLong {\n position: relative;\n margin: 20px auto 0 auto;\n text-align: left !important;\n width: 420px;\n height: 250px;\n}\n\n.text-input {\n margin: 4px 8px !important;\n text-align: center !important;\n}\n\n.howLongInput {\n position: absolute !important;\n font-size: 20px;\n width: 100%;\n height: 50px;\n padding-top: 10px;\n font-family: \"bebas\" !important;\n text-align: center;\n}\n\n.howLongInputOR {\n font-size: 20px;\n width: 100%;\n height: 36px;\n padding-top: 4px;\n font-family: \"bebas\" !important;\n text-align: center;\n}\n\n.howLongInputBox {\n position: absolute !important;\n left: 260px;\n width: 100px;\n border: 1px solid black;\n text-align: center !important;\n font-size: 20px;\n padding: 0 !important;\n margin: 0;\n height: 50px !important;\n font-family: \"bebas\" !important;\n}\n\n.howLongMinutes {\n position: absolute !important;\n top: 40px !important;\n left: 9px;\n}\n\n.howLongMinutes ion-col {\n padding: 5px !important;\n margin: 0 !important;\n}\n\n.consciousnessEmpty {\n background-color: white !important;\n color: #555656 !important;\n width: 160px !important;\n font-family: \"bebas\" !important;\n border-radius: 0 !important;\n height: 56px;\n font-size: 32px;\n border: 1px solid #555656 !important;\n}\n\n.okButton {\n height: 50px;\n font-family: \"bebas\" !important;\n border-radius: 0 !important;\n width: 50px;\n background-color: #ed1c24;\n color: white;\n font-size: 28px;\n padding-top: 6px;\n}\n\n.okButtonWide {\n height: 56px;\n font-family: \"bebas\" !important;\n border-radius: 0 !important;\n width: 188px;\n background-color: #ed1c24;\n color: white;\n font-size: 28px;\n padding-top: 10px;\n}\n\n.greyedOut {\n color: white;\n background-color: #555656 !important;\n opacity: 0.5;\n}\n\n.disableDiv {\n pointer-events: none !important;\n opacity: 0.5;\n}\n\n.closeButton {\n position: absolute;\n top: 10px;\n right: 20px;\n height: 50px;\n width: 50px;\n}\n\n.avpuABCGrid {\n position: absolute;\n left: 3%;\n width: 94%;\n height: 73%;\n top: 14px;\n}\n\n.ccsSize {\n height: 50px;\n}\n\n.checkPatientStatusBar {\n position: absolute;\n left: 0;\n top: 0%;\n width: 100%;\n height: 100%;\n text-align: center;\n font-family: \"bebas\";\n font-size: 44px;\n letter-spacing: 4px;\n padding: 0px 0 0 0;\n background-image: url('Check-Patient-Status-Gradient-BG.png');\n background-size: 82px;\n background-repeat: repeat-x;\n color: #555656 !important;\n}\n\n.echoButton {\n position: absolute;\n left: 56px;\n top: 20px;\n height: 52px;\n font-weight: bold;\n}\n\n.firstAidSymbol {\n position: absolute;\n left: 290px;\n top: 32px;\n height: 46px;\n}\n\n.firstAidSymbolTop {\n position: absolute;\n right: 56px;\n top: 20px;\n height: 52px;\n}\n\n.buttonGrid {\n border: 1px solid red;\n position: absolute;\n top: 15%;\n padding: 0 !important;\n width: 100%;\n}\n\nion-col {\n text-align: center;\n}\n\n.col {\n padding: 0 8px 0 0;\n}\n\n.buttonCol {\n height: 10%;\n}\n\n.noLeftPadding {\n padding-left: 0 !important;\n}\n\n.noColPadding {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.noRightPadding {\n padding-right: 0 !important;\n}\n\n.noRowPadding {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.noTopPadding {\n padding-top: 0 !important;\n}\n\n.cpsLastCol {\n width: 100% !important;\n}\n\n.colInner {\n padding-top: 8px !important;\n height: 64px;\n background-image: url('ABC-buttons-gradient-BG.png');\n background-size: 5px;\n background-repeat: repeat-x;\n color: #555656 !important;\n font-family: \"bebas\";\n font-size: 42px;\n letter-spacing: 2px;\n width: 100%;\n}\n\n.avpuABCHeight {\n height: 270px;\n}\n\n.cpsButtonsAVPU {\n padding: 20px;\n height: 270px !important;\n color: white !important;\n font-family: \"bebas\";\n font-size: 30px;\n letter-spacing: 0px;\n}\n\n.cpsButtons {\n height: 133px;\n color: white !important;\n font-family: \"bebas\";\n font-size: 24px;\n letter-spacing: 2px;\n}\n\n.cpsTop {\n position: absolute;\n left: 0;\n top: 0;\n width: 98%;\n}\n\n.cpsBottom {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 98%;\n}\n\n.cpsButton1Start {\n background: linear-gradient(137deg, #00b4dc 0%, #1390cf 50%);\n}\n\n.cpsConfirmed {\n width: 100% !important;\n color: white;\n height: 64px;\n text-align: left;\n padding-top: 12px !important;\n padding-left: 30px !important;\n font-family: \"bebas\";\n font-size: 32px;\n letter-spacing: 2px;\n font-weight: bold;\n}\n\n.cpsConfirmedCol {\n width: 100% !important;\n background: #00b4dc;\n background: linear-gradient(137deg, #00b4dc 0%, #1390cf 50%);\n margin-right: 8px;\n}\n\n.avatar {\n position: absolute;\n bottom: 0;\n height: 100%;\n width: 100%;\n left: 0;\n}\n\n.swipeUpLeft {\n position: absolute;\n top: 40%;\n left: 4%;\n width: 15%;\n height: auto;\n z-index: 1;\n}\n\n.avatarImage {\n height: 200px;\n position: absolute;\n bottom: 0;\n left: 0px;\n width: 100% !important;\n}\n\n.avpuText {\n position: absolute;\n top: 5px;\n left: 0 !important;\n width: 100%;\n text-align: center;\n z-index: 20;\n line-height: 30px;\n}\n\n.avpuTextSingleLine {\n padding-top: 16px;\n}\n\n.swipeUpRight {\n position: absolute;\n top: 40%;\n right: 7%;\n width: 15%;\n height: auto;\n}\n\n.selGreen {\n background-color: #00a350;\n}\n\n.selRed {\n background-color: #ec1d27;\n}\n\n.selVoice {\n background-color: #3972b7;\n}\n\n.avpuA {\n background-color: #00a651 !important;\n}\n\n.avpuV {\n background-color: #3972b7 !important;\n}\n\n.avpuP {\n background-color: #f4922c !important;\n}\n\n.avpuU {\n background-color: #ed1c24 !important;\n}\n\n.textOnly {\n padding-top: 38px;\n font-size: 50px !important;\n}\n\n.OK {\n background-color: #00a350 !important;\n}\n\n.NotOK {\n background-color: #ec1d27 !important;\n}\n\n.bgOK {\n background-color: #00a350;\n color: white;\n}\n\n.bgWarn {\n background-color: #fdc300;\n}\n\n.bgNotOK {\n background-color: #ec1d27;\n color: white;\n}\n\n.whiteText {\n color: white !important;\n}\n\n.consciousnessOK {\n background-color: #00a350 !important;\n color: white !important;\n}\n\n.consciousnessNotOK {\n background-color: #ec1d27 !important;\n color: white !important;\n}\n\n.deselect {\n background-color: #555656 !important;\n}\n\n.deselectTick {\n display: none !important;\n}\n\n.deselectConfirmed {\n color: #666666 !important;\n}\n\n.deselectConsciousness {\n background-color: #555656 !important;\n background-image: none !important;\n}\n\n.proceedTickDeselect {\n opacity: 0.3;\n}\n\n.abcAwake {\n width: 100% !important;\n height: 64px;\n text-align: left;\n padding: 12px 0 8px 20px !important;\n font-family: \"bebas\";\n font-size: 30px;\n letter-spacing: 1px;\n background-image: url('ABC-how-many-minutes-gradient-BG.png');\n background-size: 3px;\n background-repeat: repeat-x;\n color: #555656;\n}\n\n.buttonConsciousness {\n position: absolute;\n right: 4px;\n top: 4px;\n padding: 8px 0;\n width: 230px;\n height: 56px;\n text-align: center;\n background-color: white;\n color: #555656;\n}\n\n.abcProceed {\n /*background: rgb(0, 180, 220);\n background: linear-gradient(\n 137deg,\n rgba(0, 180, 220, 1) 0%,\n rgba(19, 144, 207, 1) 50%\n );*/\n color: white;\n height: 64px;\n text-align: left;\n padding: 12px 0 0 30px !important;\n font-family: \"bebas\";\n font-size: 32px;\n letter-spacing: 2px;\n width: 100%;\n}\n\n.avpuSpacer {\n height: 5px !important;\n}\n\n.awakeHeight {\n height: 64px;\n}\n\n.awakeColHolder {\n padding: 0 3px 0 0 !important;\n}\n\n.proceedColHolder {\n padding: 0 0 0 6px !important;\n}\n\n.proceedTick {\n position: absolute;\n top: 14px;\n right: 15px;\n height: 36px;\n}\n\n.lastButton {\n right: 8px !important;\n}\n\n.rightPattern {\n position: absolute;\n height: 69.5%;\n width: 3%;\n top: 100px;\n right: 0;\n background-image: url('pattern.png');\n background-size: 100%;\n background-repeat: no-repeat;\n background-position-x: center;\n background-position-y: center;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZS9ob21lLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtFQUVBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBQUFGOztBQUdBO0VBQ0UseUJBQUE7QUFBRjs7QUFHQTtFQUNFLDZCQUFBO0FBQUY7O0FBR0E7RUFDRSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUVBLCtCQUFBO0VBQ0EsZUFBQTtBQURGOztBQUlBO0VBQ0UsK0JBQUE7QUFERjs7QUFJQTtFQUVFLG1DQUFBO0VBQ0EsV0FBQTtBQUZGOztBQUtBO0VBQ0UsV0FBQTtFQUNBLDJCQUFBO0FBRkY7O0FBS0E7RUFDRSwyQkFBQTtBQUZGOztBQUtBO0VBQ0Usd0JBQUE7QUFGRjs7QUFLQTtFQUNFLHVCQUFBO0VBQ0Esc0JBQUE7QUFGRjs7QUFLQTtFQUNFLCtCQUFBO0VBQ0EseUJBQUE7QUFGRjs7QUFXQTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esb0NBQUE7RUFDQSxZQUFBO0FBUkY7O0FBb0JBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUVBLHFCQUFBO0FBbEJGOztBQXVCQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0VBQ0EsVUFBQTtBQXBCRjs7QUE0QkE7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG9DQUFBO0VBQ0EsWUFBQTtBQXpCRjs7QUE0QkE7RUFDRSx3QkFBQTtBQXpCRjs7QUE0QkE7RUFFRSxxQkFBQTtFQUNBLHNCQUFBO0FBMUJGOztBQTZCQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUExQkY7O0FBOEJBO0VBRUUsd0JBQUE7QUE1QkY7O0FBK0JBO0VBQ0UsZ0JBQUE7RUFFQSw0QkFB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NkJBQUE7QUFsSEYiLCJmaWxlIjoic3JjL2FwcC9ob21lL2hvbWUucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNlTWFya3tcbiAgcGFkZGluZy10b3A6IDQ1cHg7XG59XG5cbi5hYm91dEFpYmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvL2xlZnQ6IDU2cHg7XG4gIHJpZ2h0OiAxMjdweDtcbiAgdG9wOiAyMHB4O1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5hYm91dFoge1xuICB6LWluZGV4OiAxMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uc3RvcFNjcm9sbCB7XG4gIC0tb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uYWJvdXRNb2RhbCB7XG4gIHRvcDogMjQlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1MiUgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL3BhZGRpbmctdG9wOiAzMHB4O1xuICBmb250LWZhbWlseTogXCJhcmlhbFwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmFib3V0TW9kYWwgaDEge1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG59XG5cbi5hYm91dEhvbGRlciB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBtYXJnaW46IDIwcHggYXV0byAwIGF1dG8gIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hYm91dEluZm8ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uYWJvdXRMZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uc3R5bGVQYWdlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcHVycGxlO1xufVxuXG4uc2Nyb2xsLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbn1cblxuLy8gaW9uLWhlYWRlciB7XG4vLyAgIG1pbi1oZWlnaHQ6IDExLjglO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4vLyAgIGNvbG9yOiB3aGl0ZTtcbi8vIH1cblxuLmFpYmVyLWlvbi1oZWFkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi8vIGlvbi1jb250ZW50IHtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICB0b3A6IDEwMHB4O1xuLy8gICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4vLyAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbi8vICAgLy9tYXJnaW46IDAgIWltcG9ydGFudDtcbi8vICAgLy9oZWlnaHQ6IDYxMHB4ICFpbXBvcnRhbnQ7XG4vLyB9XG5cbmlvbi1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgLy9tYXJnaW46IDAgIWltcG9ydGFudDtcbiAgLy9oZWlnaHQ6IDYxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5haWJlci1pbm5lci1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEzMHB4O1xuICBoZWlnaHQ6IDYxMnB4O1xuICB3aWR0aDogMTAxNXB4O1xuICBsZWZ0OiAzMnB4O1xufVxuLy8gaW9uLWZvb3RlciB7XG4vLyAgIG1pbi1oZWlnaHQ6IDExLjglO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4vLyAgIGNvbG9yOiB3aGl0ZTtcbi8vIH1cblxuLmFpYmVyLWlvbi1mb290ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmlvbi1zbGlkZXMge1xuICBoZWlnaHQ6IDI3MHB4ICFpbXBvcnRhbnQ7XG59XG5cbmlvbi1zbGlkZSB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVySG9sZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMThweCAwIDAgMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHllbGxvdztcbn1cblxuLmZhc1NsaWRlcyB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBoZWlnaHQ6IDQ4NXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mYXNNZW51SXRlbXMge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgcGFkZGluZy10b3A6IDQycHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mYXNNb2RhbCBoMSB7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbn1cblxuLmZhc01lbnVJdGVtc0JsYW5rIHtcbiAgcGFkZGluZy10b3A6IDMwcHggIWltcG9ydGFudDtcbn1cblxuLmZhc1NjcmVlbkltZ3Mge1xuICBoZWlnaHQ6IDI0MHB4ICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uc21hbGxlciB7XG4gIGhlaWdodDogMjAwcHggIWltcG9ydGFudDtcbn1cblxuLm5vcGFkZGluZyB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xufVxuXG4uaW5uZXJTbGlkZSB7XG4gIGhlaWdodDogNDg1cHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDcwMHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uaW5uZXJTbGlkZSBoMSB7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4uc21hbGxlckgxIHtcbiAgZm9udC1zaXplOiAyNnB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMzlweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNlbnRyZVRleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnN3aXBlIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIGxlZnQ6IDM1MHB4O1xuICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIGdyZWVuO1xufVxuXG4uc3dpcGVQb3NpdGlvbmVkUmlnaHQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjBweDtcbiAgcmlnaHQ6IDUwcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBncmVlbjtcbn1cblxuLmhlYWRlckxvZ28ge1xuICBoZWlnaHQ6IDU1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTZweDtcbiAgdG9wOiAyMHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xufVxuXG4udG9wV2VkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogOTBweDtcbn1cblxuLmZvb3RlckhvbGRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vcGFkZGluZzogMTNweCAwIDAgMDtcbiAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ib3R0b21XZWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubGVmdFBhdHRlcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBoZWlnaHQ6IDY5LjUlO1xuICB3aWR0aDogMyU7XG4gIHRvcDogMTAwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWdzL3BhdHRlcm4ucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbn1cblxuLnNob3dNb2RhbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaGlkZU1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLy8gZGlzcGxheS1tdWx0aS1zaXplLWhhbmRsaW5nXG4vLyBUaGUgZm9sbG93aW5nIHNjaGVtZSBvZiBDU1MgaGFuZGxlc1xuLy8gYm90aCA5LjdcIiBhbmQgMTAuMlwiIGlQYWQgZGlzcGxheXNcbi8vIGNvcnJlbGF0aW5nIHRvIGJvdGggNnRoIGFuZCA3dGggZ2VuZXJhdGlvblxuLy8gaVBhZHMgcmVzcGVjdGl2ZWx5LlxuXG4ub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiA5OTk5O1xuICBvcGFjaXR5OiAwLjg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG5cbi5tb2RhbF9jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEyLjUlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiAwJSwgI2U4ZThlOCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmIDAlLCAjZThlOGU4IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmIDAlLCAjZThlOGU4IDEwMCUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDUxLCA1MSwgNTEsIDAuMzUpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZhc1oge1xuICB6LWluZGV4OiA1MDAwMCAhaW1wb3J0YW50O1xufVxuXG4uY29uc2Npb3VzbmVzc1oge1xuICB6LWluZGV4OiAxMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uZmFzTW9kYWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG59XG5cbi5jb25zY2lvdXNuZXNzTW9kYWwge1xuICB0b3A6IDIxJSAhaW1wb3J0YW50O1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNTglICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY29uc2Npb3VzbmVzc01vZGFsIGgxIHtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDMycHg7XG59XG5cbi5jb25zY2lvdXNuZXNzSG9sZGVyIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIG1hcmdpbjogMjBweCBhdXRvIDAgYXV0byAhaW1wb3J0YW50O1xuICB3aWR0aDogMzYycHg7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLndpZGVCdXR0b24ge1xuICB3aWR0aDogMTYwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNTNweDtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDNweDtcbn1cblxuLmJ1dHRvbkxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmJ1dHRvblJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ud2lkZVRhbGxCdXR0b24ge1xuICB3aWR0aDogMTgwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNTJweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsZWZ0OiAyNTNweDtcbn1cblxuLm0zMCB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbn1cblxuLmhvd0xvbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMjBweCBhdXRvIDAgYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgd2lkdGg6IDQyMHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuXG4udGV4dC1pbnB1dCB7XG4gIG1hcmdpbjogNHB4IDhweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmhvd0xvbmdJbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ob3dMb25nSW5wdXRPUiB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uaG93TG9uZ0lucHV0Qm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDI2MHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbn1cblxuLmhvd0xvbmdNaW51dGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogNDBweCAhaW1wb3J0YW50O1xuICBsZWZ0OiA5cHg7XG59XG5cbi5ob3dMb25nTWludXRlcyBpb24tY29sIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLmNvbnNjaW91c25lc3NFbXB0eSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxNjBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBmb250LXNpemU6IDMycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1NTU2NTYgIWltcG9ydGFudDtcbn1cblxuLm9rQnV0dG9uIHtcbiAgLy9wb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vcmlnaHQ6IDA7XG4gIC8vdG9wOiAwO1xuICAvL21hcmdpbjogMDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFjMjQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xufVxuXG4ub2tCdXR0b25XaWRlIHtcbiAgLy9wb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vcmlnaHQ6IDA7XG4gIC8vdG9wOiAwO1xuICAvL21hcmdpbjogMDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE4OHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxYzI0O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5ncmV5ZWRPdXQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uZGlzYWJsZURpdiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmNsb3NlQnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiA1MHB4O1xufVxuXG4uYXZwdUFCQ0dyaWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDMlO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgd2lkdGg6IDk0JTtcbiAgaGVpZ2h0OiA3MyU7XG4gIHRvcDogMTRweDtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLmNjc1NpemUge1xuICAvL2hlaWdodDogMTUlO1xuICAvL2hlaWdodDogMTAlO1xuICBoZWlnaHQ6IDUwcHg7XG59XG5cbi5jaGVja1BhdGllbnRTdGF0dXNCYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICAvL2ZvbnQtc2l6ZTogMjhweDsgQmFybG93IGFuZCBPc3dhbGQgaGVpZ2h0XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDRweDtcbiAgLy9wYWRkaW5nOiAyMnB4IDAgMCAwO1xuICAvL3BhZGRpbmc6IDdweCAwIDAgMDsgT3N3YWxkIHBhZGRpbmdcbiAgcGFkZGluZzogMHB4IDAgMCAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1ncy9DaGVjay1QYXRpZW50LVN0YXR1cy1HcmFkaWVudC1CRy5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogODJweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBjb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xufVxuXG4uZWNob0J1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTZweDtcbiAgdG9wOiAyMHB4O1xuICBoZWlnaHQ6IDUycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZmlyc3RBaWRTeW1ib2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDI5MHB4O1xuICB0b3A6IDMycHg7XG4gIGhlaWdodDogNDZweDtcbn1cblxuLmZpcnN0QWlkU3ltYm9sVG9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNTZweDtcbiAgdG9wOiAyMHB4O1xuICBoZWlnaHQ6IDUycHg7XG59XG5cbi5idXR0b25HcmlkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTUlO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5pb24tY29sIHtcbiAgLy9tYXJnaW46IDAgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNvbCB7XG4gIHBhZGRpbmc6IDAgOHB4IDAgMDtcbn1cblxuLmJ1dHRvbkNvbCB7XG4gIGhlaWdodDogMTAlO1xufVxuXG4ubm9MZWZ0UGFkZGluZyB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm9Db2xQYWRkaW5nIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm5vUmlnaHRQYWRkaW5nIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm9Sb3dQYWRkaW5nIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm5vVG9wUGFkZGluZyB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jcHNMYXN0Q29sIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmNvbElubmVyIHtcbiAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIGJsdWU7XG4gIGhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltZ3MvQUJDLWJ1dHRvbnMtZ3JhZGllbnQtQkcucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDVweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBjb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDQycHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYXZwdUFCQ0hlaWdodCB7XG4gIC8vaGVpZ2h0OiAyMzBweDtcbiAgaGVpZ2h0OiAyNzBweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4uY3BzQnV0dG9uc0FWUFUge1xuICBwYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMjMwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNzBweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi5jcHNCdXR0b25zIHtcbiAgLy9wYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMTExcHg7XG4gIGhlaWdodDogMTMzcHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbn1cblxuLmNwc1RvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogOTglO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNwc0JvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogOTglO1xufVxuXG4uY3BzQnV0dG9uMVN0YXJ0IHtcbiAgLy9iYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM3ZGVnLFxuICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTtcbn1cblxuLmNwc0NvbmZpcm1lZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogIzRkNWVhYjtcbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC8vcGFkZGluZzogMTJweCA4cHggMCAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY3BzQ29uZmlybWVkQ29sIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5LCAxNDQsIDIwNywgMSk7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOSwgMTQ0LCAyMDcsIDEpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM3ZGVnLFxuICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbi8vIEFWQVRBUiBTVFlMRVNcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblxuLmF2YXRhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICAvL2JvcmRlcjogMnB4IHNvbGlkIHllbGxvdztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLnN3aXBlVXBMZWZ0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogNCU7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5hdmF0YXJJbWFnZSB7XG4gIGhlaWdodDogMjAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uYXZwdVRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgYmx1ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMjA7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuXG4uYXZwdVRleHRTaW5nbGVMaW5lIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG59XG5cbi5zd2lwZVVwUmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDAlO1xuICByaWdodDogNyU7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5zZWxHcmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGEzNTA7XG59XG5cbi5zZWxSZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3O1xufVxuXG4uc2VsVm9pY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk3MmI3O1xufVxuXG4uYXZwdUEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNjUxICFpbXBvcnRhbnQ7XG59XG5cbi5hdnB1ViB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTcyYjcgIWltcG9ydGFudDtcbn1cblxuLmF2cHVQIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0OTIyYyAhaW1wb3J0YW50O1xufVxuXG4uYXZwdVUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxYzI0ICFpbXBvcnRhbnQ7XG59XG5cbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbi8vIEVORCBPRiBBVkFUQVIgU1RZTEVTXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbi50ZXh0T25seSB7XG4gIHBhZGRpbmctdG9wOiAzOHB4O1xuICBmb250LXNpemU6IDUwcHggIWltcG9ydGFudDtcbn1cblxuLk9LIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MCAhaW1wb3J0YW50O1xufVxuXG4uTm90T0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3ICFpbXBvcnRhbnQ7XG59XG5cbi5iZ09LIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYmdXYXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYzMwMDtcbn1cblxuLmJnTm90T0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi53aGl0ZVRleHQge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmNvbnNjaW91c25lc3NPSyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGEzNTAgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5jb25zY2lvdXNuZXNzTm90T0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uZGVzZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdFRpY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdENvbmZpcm1lZCB7XG4gIC8vY29sb3I6ICM4ODg4ODggIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NjY2NjYgIWltcG9ydGFudDtcbn1cblxuLmRlc2VsZWN0Q29uc2Npb3VzbmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAvL2NvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4ucHJvY2VlZFRpY2tEZXNlbGVjdCB7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLmFiY0F3YWtlIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA2NHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAxMnB4IDAgOHB4IDIwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1ncy9BQkMtaG93LW1hbnktbWludXRlcy1ncmFkaWVudC1CRy5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogM3B4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGNvbG9yOiAjNTU1NjU2O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHllbGxvdztcbn1cblxuLmJ1dHRvbkNvbnNjaW91c25lc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0cHg7XG4gIHRvcDogNHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIHdpZHRoOiAyMzBweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzU1NTY1Njtcbn1cblxuLmFiY1Byb2NlZWQge1xuICAvL2JhY2tncm91bmQtY29sb3I6ICM0ZDVlYWI7XG4gIC8qYmFja2dyb3VuZDogcmdiKDAsIDE4MCwgMjIwKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzN2RlZyxcbiAgICByZ2JhKDAsIDE4MCwgMjIwLCAxKSAwJSxcbiAgICByZ2JhKDE5LCAxNDQsIDIwNywgMSkgNTAlXG4gICk7Ki9cbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDEycHggMCAwIDMwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hdnB1U3BhY2VyIHtcbiAgaGVpZ2h0OiA1cHggIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4uYXdha2VIZWlnaHQge1xuICBoZWlnaHQ6IDY0cHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uYXdha2VDb2xIb2xkZXIge1xuICBwYWRkaW5nOiAwIDNweCAwIDAgIWltcG9ydGFudDtcbn1cblxuLnByb2NlZWRDb2xIb2xkZXIge1xuICBwYWRkaW5nOiAwIDAgMCA2cHggIWltcG9ydGFudDtcbn1cblxuLnByb2NlZWRUaWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0cHg7XG4gIHJpZ2h0OiAxNXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbn1cblxuLmxhc3RCdXR0b24ge1xuICByaWdodDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5yaWdodFBhdHRlcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBoZWlnaHQ6IDY5LjUlO1xuICB3aWR0aDogMyU7XG4gIHRvcDogMTAwcHg7XG4gIHJpZ2h0OiAwO1xuICAvL2JhY2tncm91bmQtY29sb3I6IHBpbms7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWdzL3BhdHRlcm4ucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbn1cbiJdfQ== */";
/***/
},
/***/
"./src/app/home/home.page.ts":
/*!***********************************!*\
!*** ./src/app/home/home.page.ts ***!
\***********************************/
/*! exports provided: HomePage */
/***/
function srcAppHomeHomePageTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "HomePage", function () {
return HomePage;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _shared_app_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ../shared/app.global */
"./src/app/shared/app.global.ts");
/* harmony import */
var _ionic_native_app_version_ngx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @ionic-native/app-version/ngx */
"./node_modules/@ionic-native/app-version/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_battery_status_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @ionic-native/battery-status/ngx */
"./node_modules/@ionic-native/battery-status/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var _services_database_database_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../services/database/database.service */
"./src/app/services/database/database.service.ts");
/* harmony import */
var _services_getlocation_getlocation_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../services/getlocation/getlocation.service */
"./src/app/services/getlocation/getlocation.service.ts");
/* harmony import */
var _ionic_angular__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! @ionic/angular */
"./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
/* harmony import */
var _ionic_native_screen_orientation_ngx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! @ionic-native/screen-orientation/ngx */
"./node_modules/@ionic-native/screen-orientation/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_device_ngx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! @ionic-native/device/ngx */
"./node_modules/@ionic-native/device/__ivy_ngcc__/ngx/index.js");
/**
* v1.0.0 - 22/09/2020 - FIRST RELEASE
* v1.0.1 - 30/09/2020 - Patched after first test cycle
* v1.0.2 - 06/11/2020 - Patched after User Validation
*/
var HomePage = /*#__PURE__*/function () {
function HomePage(navCtrl, screenOrientation, database, appVersion, batteryStatus, getLocation, platform, router, _global, device) {
var _this2 = this;
_classCallCheck(this, HomePage);
this.navCtrl = navCtrl;
this.screenOrientation = screenOrientation;
this.database = database;
this.appVersion = appVersion;
this.batteryStatus = batteryStatus;
this.getLocation = getLocation;
this.platform = platform;
this.router = router;
this._global = _global;
this.device = device;
this.numTaps = 0;
this.modalVis = "hideModal";
this.consciousnessVis = "hideModal";
this.consciousnessConfirmState = "SELECT";
this.consciousnessStateColour = "";
this.showInputBox = "hideModal";
this.minutesUnconscious = 0;
this.greyMeOut = "";
this.avpuState = "ALERT";
this.airwayState = "";
this.breathingState = "";
this.circulationState = "";
this.consciousnessState = "";
this.consciousnessSelectYes = "consciousnessEmpty";
this.consciousnessSelectNo = "consciousnessEmpty";
this.consciousnessSpacing = "";
this.consciousnessMinutes = "";
this.consciousnessClass = "";
this.confirm1 = ""; //confirm1state: string = "";
this.confirmBtn1 = "showModal";
this.confirmedBtn1 = "hideModal";
this.confirm2 = "deselect deselectConfirmed ";
this.confirm2TopState = "deselect deselectConfirmed ";
this.confirm2BottomState = "deselect deselectConfirmed ";
this.confirmBtn2 = "showModal";
this.confirmedBtn2 = "hideModal";
this.confirm3 = "deselect deselectConfirmed ";
this.confirm3TopState = "deselect deselectConfirmed ";
this.confirm3BottomState = "deselect deselectConfirmed ";
this.confirmBtn3 = "showModal";
this.confirmedBtn3 = "hideModal";
this.confirm4 = "deselect deselectConfirmed ";
this.confirm4TopState = "deselect deselectConfirmed ";
this.confirm4BottomState = "deselect deselectConfirmed ";
this.confirmBtn4 = "showModal";
this.confirmedBtn4 = "hideModal";
this.confirmConsciousness = "deselectConsciousness deselectConfirmed";
this.confirmFinal = "deselect deselectConfirmed ";
this.confirm1Tick = "deselectTick ";
this.confirm2Tick = "deselectTick ";
this.confirm3Tick = "deselectTick ";
this.confirm4Tick = "deselectTick ";
this.confirmFinalTick = "deselectTick ";
this.unresponsiveFlag = true;
this.cdFlag = false;
this.burnFlag = false;
this.adultChokingFlag = false;
this.avpuSlidesOpts = {
direction: "vertical",
initialSlide: 0,
height: 270
};
this.proceedable = true;
this.aboutVis = "hideModal";
this.aiberVersion = "";
this.platform.ready().then(function () {
//Force the iPad to display in LANDSCAPE only
_this2.screenOrientation.lock(_this2.screenOrientation.ORIENTATIONS.LANDSCAPE).then(function (data) {//console.log("data from screenorientation is: " + data);
});
_this2.personLabel = _global.appConfig.personLabel;
_this2.personLabelUpper = _global.appConfig.personLabel.toUpperCase();
_this2.supportLocation = _global.appConfig.supportLocation;
_this2.staffType = _global.appConfig.staffType;
_this2.findMe();
_this2.appVersion.getVersionNumber().then(function (version) {
//alert("Aiber Version: " + version);
_this2.aiberVersion = version;
}); //Ensure device is running iOS12.4 and above
if (_this2.device.version < "12.4") {
alert("This software is designed to operate on iOS from version 12.4 onwards. Your system is currently " + _this2.device.version + ". Please update your iOS version.");
_this2.proceedable = false; //prevent app from continuing to function
}
});
}
_createClass(HomePage, [{
key: "setAVPU",
value: function setAVPU() {
var _this3 = this;
this.avpuSlides.getActiveIndex().then(function (currentIndex) {
//console.log("This is the currentIndex: " + currentIndex);
switch (currentIndex) {
case 0:
_this3.avpuState = "ALERT";
break;
case 1:
_this3.avpuState = "RESPONDS<br>TO VOICE";
break;
case 2:
_this3.avpuState = "RESPONDS<br>TO PAIN";
break;
case 3:
_this3.avpuState = "UNRESPONSIVE";
break;
}
});
} //ngAfterViewInit() {
}, {
key: "ionViewDidEnter",
value: function ionViewDidEnter() {
var _this4 = this;
console.log("Getting to ionViewDidEnter");
this.appVersion.getVersionNumber().then(function (version) {
//alert("Aiber Version: " + version);
_this4.aiberVersion = version;
});
console.log("Back to home!");
this.subscription = this.batteryStatus.onChange().subscribe(function (status) {
//alert("Battery status: " + status.level);
_this4.theBattery = status.level; //this.database.updateBattery(this.theBattery);
});
this.modalVis = "hideModal";
this.consciousnessVis = "hideModal";
this.consciousnessConfirmState = "SELECT";
this.consciousnessStateColour = "";
this.showInputBox = "hideModal";
this.minutesUnconscious = 0;
this.consciousnessSelectYes = "consciousnessEmpty";
this.consciousnessSelectNo = "consciousnessEmpty";
this.avpuState = "ALERT";
this.airwayState = "";
this.breathingState = "";
this.circulationState = "";
this.consciousnessState = "";
this.confirm1 = "deselect deselectConfirmed "; //this.confirm1state = "deselect deselectConfirmed ";
this.confirm2 = "deselect deselectConfirmed ";
this.confirm2TopState = "deselect deselectConfirmed ";
this.confirm2BottomState = "deselect deselectConfirmed ";
this.confirm3 = "deselect deselectConfirmed ";
this.confirm3TopState = "deselect deselectConfirmed ";
this.confirm3BottomState = "deselect deselectConfirmed ";
this.confirm4 = "deselect deselectConfirmed ";
this.confirm4TopState = "deselect deselectConfirmed ";
this.confirm4BottomState = "deselect deselectConfirmed ";
this.confirmConsciousness = "deselectConsciousness deselectConfirmed";
this.confirmFinal = "deselect deselectConfirmed ";
this.confirm1Tick = "deselectTick ";
this.confirm2Tick = "deselectTick ";
this.confirm3Tick = "deselectTick ";
this.confirm4Tick = "deselectTick ";
this.confirmBtn1 = "showModal";
this.confirmedBtn1 = "hideModal";
this.confirmBtn2 = "showModal";
this.confirmedBtn2 = "hideModal";
this.confirmBtn3 = "showModal";
this.confirmedBtn3 = "hideModal";
this.confirmBtn4 = "showModal";
this.confirmedBtn4 = "hideModal";
this.confirmFinalTick = "deselectTick ";
this.avpuSlides.slideTo(0, 0).then(function () {
_this4.findMe();
});
}
}, {
key: "echoTest",
value: function echoTest() {//console.log("Echo heard");
} // page-home-final-proceed
// This section passes the AVPU screen contents
// to the database and opens the MAIN screen.
// This only happens if all AVPU inputs have been
// completed, which will enable the final "PROCEED"
// button.
}, {
key: "openMain",
value: function openMain() {
if (this.confirmFinal === "cpsConfirmedCol" && this.confirmFinalTick === "") {
//Start session
this.database.startSession(this.avpuState, this.airwayState, this.breathingState, this.circulationState, this.consciousnessState); //console.log("About to move screen");
this.router.navigate(["main/" + this.avpuState + "/" + this.airwayState + "/" + this.breathingState + "/" + this.circulationState + "/" + this.consciousnessState]);
}
}
}, {
key: "findMe",
value: function findMe() {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.getLocation.getMyLocation().then(function (data) {////console.warn("Location data: " + JSON.stringify(data));
})["catch"](function (error) {////console.error("Location error: " + error);
});
case 2:
this.theCoords = _context.sent;
case 3:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
}
}, {
key: "updateTaps",
value: function updateTaps() {
this.numTaps++;
if (this.numTaps > 5) {
this.appVersion.getVersionNumber().then(function (version) {
alert("MIME Pro Version: " + version);
});
this.numTaps = 0;
}
}
}, {
key: "showAboutInfo",
value: function showAboutInfo() {
var _this5 = this;
console.log("Info icon clicked");
this.appVersion.getVersionNumber().then(function (version) {
_this5.aiberVersion = version;
_this5.aboutVis = "showModal";
});
}
}, {
key: "closeAboutInfo",
value: function closeAboutInfo() {
this.aboutVis = "hideModal";
}
}, {
key: "confirmAVPU",
value: function confirmAVPU() {
//Show AVPU as confirmed, then enable Airway controls
//debugger;
this.confirm1 = "";
this.confirm1Tick = "";
this.confirmedBtn1 = "showModal";
this.confirmBtn1 = "hideModal"; //this.confirm2 = "deselect deselectConfirmed";
if (this.confirm2TopState.indexOf("deselectConfirmed") !== -1 || this.confirm2BottomState.indexOf("deselectConfirmed") !== -1) {
this.confirm2TopState = "deselect ";
this.confirm2BottomState = "deselect ";
}
}
}, {
key: "setAirway",
value: function setAirway(airwayState) {
if (this.confirm1 === "" && this.confirm1Tick === "") {
this.airwayState = airwayState;
switch (airwayState) {
case "clear":
this.confirm2TopState = "";
this.confirm2BottomState = "deselect ";
break;
case "blocked":
this.confirm2TopState = "deselect ";
this.confirm2BottomState = "";
break;
}
this.confirm2 = "cpsConfirmedCol";
if (this.confirm2Tick !== "") {
this.confirm2Tick = "deselectTick ";
}
}
}
}, {
key: "confirmAirway",
value: function confirmAirway() {
//Show Airway as confirmed, then enable Breathing controls
if (this.confirm2 === "cpsConfirmedCol") {
this.confirm2Tick = "";
this.confirmedBtn2 = "showModal";
this.confirmBtn2 = "hideModal";
if (this.confirm3TopState.indexOf("deselectConfirmed") !== -1 || this.confirm3BottomState.indexOf("deselectConfirmed") !== -1) {
this.confirm3TopState = "deselect ";
this.confirm3BottomState = "deselect ";
}
}
}
}, {
key: "setBreathing",
value: function setBreathing(breathingState) {
if (this.confirm2 === "cpsConfirmedCol" && this.confirm2Tick === "") {
this.breathingState = breathingState;
switch (breathingState) {
case "regular":
this.confirm3TopState = "";
this.confirm3BottomState = "deselect ";
break;
case "irregular":
this.confirm3TopState = "deselect ";
this.confirm3BottomState = "";
break;
}
this.confirm3 = "cpsConfirmedCol";
if (this.confirm3Tick !== "") {
this.confirm3Tick = "deselectTick ";
}
}
}
}, {
key: "confirmBreathing",
value: function confirmBreathing() {
//Show Breathing as confirmed, then enable Circulation controls
if (this.confirm3 === "cpsConfirmedCol") {
this.confirm3Tick = "";
this.confirmedBtn3 = "showModal";
this.confirmBtn3 = "hideModal";
if (this.confirm4TopState.indexOf("deselectConfirmed") !== -1 || this.confirm4BottomState.indexOf("deselectConfirmed") !== -1) {
this.confirm4TopState = "deselect ";
this.confirm4BottomState = "deselect ";
}
}
}
}, {
key: "setCirculation",
value: function setCirculation(circulationState) {
if (this.confirm3 === "cpsConfirmedCol" && this.confirm3Tick === "") {
this.circulationState = circulationState;
switch (circulationState) {
case "pale":
this.confirm4TopState = "";
this.confirm4BottomState = "deselect ";
break;
case "flushed":
this.confirm4TopState = "deselect ";
this.confirm4BottomState = "";
break;
}
this.confirm4 = "cpsConfirmedCol";
if (this.confirm4Tick !== "") {
this.confirm4Tick = "deselectTick ";
}
}
}
}, {
key: "confirmCirculation",
value: function confirmCirculation() {
//Show Circulation as confirmed, then enable proceed controls
if (this.confirm4 === "cpsConfirmedCol") {
this.confirm4Tick = "";
this.confirmedBtn4 = "showModal";
this.confirmBtn4 = "hideModal"; //this.confirmFinal = "";
//this.confirmFinalTick = "";
this.confirmConsciousness = "";
}
}
}, {
key: "confirmConscious",
value: function confirmConscious() {
//Show Circulation as confirmed, then enable proceed controls
this.confirm4 = "cpsConfirmedCol";
this.confirm4Tick = "";
this.confirmConsciousness = "";
}
}, {
key: "selectConsciousness",
value: function selectConsciousness() {
////console.log(this.consciousnessState);
if (this.confirm4 === "cpsConfirmedCol" && this.confirm4Tick === "") {
if (this.consciousnessState.indexOf("YES") !== -1) {
this.showInputBox = "";
this.greyMeOut = "";
} else if (this.consciousnessState === "no" || this.consciousnessState === "") {
this.showInputBox = "disableDiv";
this.greyMeOut = "greyedOut";
}
this.consciousnessVis = "showModal";
}
}
}, {
key: "setConsciousness",
value: function setConsciousness(consciousnessState) {
switch (consciousnessState) {
case "yes":
this.showInputBox = "";
this.greyMeOut = "";
this.consciousnessState = consciousnessState;
this.consciousnessSelectYes = "bgNotOK";
this.consciousnessSelectNo = "consciousnessEmpty";
break;
case "no":
this.consciousnessState = consciousnessState;
this.showInputBox = "disableDiv";
this.greyMeOut = "greyedOut";
this.consciousnessConfirmState = "NO";
this.consciousnessSelectYes = "consciousnessEmpty";
this.consciousnessSelectNo = "bgOK";
this.toggleConsciousness();
this.confirmFinal = "cpsConfirmedCol";
this.confirmFinalTick = "";
this.confirmConsciousness = "";
this.consciousnessStateColour = "consciousnessOK";
break;
}
}
}, {
key: "saveMinutes",
value: function saveMinutes(minutesUnconscious) {
/*if (this.minutesUnconscious === 0) {
alert("Must be more than zero minutes, otherwise select 'No'");
} else {*/
//Figure out and strip off "unit" (minutes, seconds, etc.)
var uncUnit = ""; //alert(minutesUnconscious.indexOf("m"));
if (minutesUnconscious.indexOf("m") !== -1) {
//This is minutes
uncUnit = "mins";
minutesUnconscious = minutesUnconscious.slice(0, -1);
} else {
//This is seconds
uncUnit = "secs";
minutesUnconscious = minutesUnconscious.slice(0, -1);
}
this.showInputBox = "hideModal";
if (minutesUnconscious.indexOf("+") === -1) {
this.consciousnessSpacing = "";
this.consciousnessConfirmState = "YES (under " + minutesUnconscious + " " + uncUnit + ")";
} else {
this.consciousnessSpacing = "narrowerText";
var finalMinutes = "";
switch (minutesUnconscious) {
case "+30":
finalMinutes = "over 30mins";
break;
case "+60":
finalMinutes = "over 1hr";
break;
}
this.consciousnessConfirmState = "YES (" + finalMinutes + ")";
}
this.consciousnessMinutes = minutesUnconscious;
this.consciousnessState = this.consciousnessConfirmState;
this.consciousnessStateColour = "consciousnessNotOK";
this.consciousnessClass = "bgNotOK";
this.toggleConsciousness();
this.confirmFinal = "cpsConfirmedCol";
this.confirmFinalTick = "";
this.confirmConsciousness = ""; //}
}
}, {
key: "toggleFAS",
value: function toggleFAS() {
if (this.modalVis === "showModal") {
this.modalVis = "hideModal";
} else {
if (this.consciousnessVis === "hideModal") {
this.modalVis = "showModal";
}
}
this.fasSlides.update();
this.fasSlides.slideTo(0);
this.fasSlides.lockSwipes(true);
this.fasSlides.update();
}
}, {
key: "showUnresponsive",
value: function showUnresponsive() {
this.cdFlag = false;
this.burnFlag = false;
this.adultChokingFlag = false;
this.unresponsiveFlag = true;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
}
}, {
key: "showCDHolder",
value: function showCDHolder() {
this.cdFlag = true;
this.adultChokingFlag = false;
this.burnFlag = false;
this.unresponsiveFlag = false;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
this.fasSlides.lockSwipeToNext(true);
}
}, {
key: "showBurns",
value: function showBurns() {
this.cdFlag = false;
this.adultChokingFlag = false;
this.burnFlag = true;
this.unresponsiveFlag = false;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
this.fasSlides.lockSwipeToNext(false);
}
}, {
key: "showAdultChoking",
value: function showAdultChoking() {
this.cdFlag = false;
this.adultChokingFlag = true;
this.burnFlag = false;
this.unresponsiveFlag = false;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
this.fasSlides.lockSwipeToNext(false);
}
}, {
key: "openUANB",
value: function openUANB() {
this.cdFlag = false;
this.adultChokingFlag = false;
this.burnFlag = false;
this.unresponsiveFlag = true;
this.fasSlides.slideTo(2);
}
}, {
key: "fasLockSwipes",
value: function fasLockSwipes() {
var _this6 = this;
this.fasSlides.isBeginning().then(function (data) {
//console.log("Data: " + data);
if (data) {
setTimeout(function () {
_this6.fasSlides.lockSwipes(true).then(function () {//blah
});
}, 500);
}
});
}
}, {
key: "toggleConsciousness",
value: function toggleConsciousness() {
if (this.consciousnessVis === "showModal") {
this.consciousnessVis = "hideModal";
} else {
this.consciousnessVis = "showModal";
}
}
}]);
return HomePage;
}();
HomePage.ctorParameters = function () {
return [{
type: _ionic_angular__WEBPACK_IMPORTED_MODULE_7__["NavController"]
}, {
type: _ionic_native_screen_orientation_ngx__WEBPACK_IMPORTED_MODULE_9__["ScreenOrientation"]
}, {
type: _services_database_database_service__WEBPACK_IMPORTED_MODULE_5__["DatabaseService"]
}, {
type: _ionic_native_app_version_ngx__WEBPACK_IMPORTED_MODULE_2__["AppVersion"]
}, {
type: _ionic_native_battery_status_ngx__WEBPACK_IMPORTED_MODULE_3__["BatteryStatus"]
}, {
type: _services_getlocation_getlocation_service__WEBPACK_IMPORTED_MODULE_6__["GetlocationService"]
}, {
type: _ionic_angular__WEBPACK_IMPORTED_MODULE_7__["Platform"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_8__["Router"]
}, {
type: _shared_app_global__WEBPACK_IMPORTED_MODULE_1__["AppGlobals"]
}, {
type: _ionic_native_device_ngx__WEBPACK_IMPORTED_MODULE_10__["Device"]
}];
};
HomePage.propDecorators = {
fasSlides: [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ViewChild"],
args: ["fasSlider", {
"static": true
}]
}],
avpuSlides: [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ViewChild"],
args: ["avpuSlides", {
"static": true
}]
}]
};
HomePage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_4__["Component"])({
selector: "app-home",
template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(
/*! raw-loader!./home.page.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/home/home.page.html"))["default"],
providers: [_shared_app_global__WEBPACK_IMPORTED_MODULE_1__["AppGlobals"]],
styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(
/*! ./home.page.scss */
"./src/app/home/home.page.scss"))["default"]]
})], HomePage);
/***/
},
/***/
"./src/app/services/database/database.service.ts":
/*!*******************************************************!*\
!*** ./src/app/services/database/database.service.ts ***!
\*******************************************************/
/*! exports provided: DatabaseService */
/***/
function srcAppServicesDatabaseDatabaseServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "DatabaseService", function () {
return DatabaseService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var rxjs_add_operator_do__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! rxjs/add/operator/do */
"./node_modules/rxjs/add/operator/do.js");
/* harmony import */
var rxjs_add_operator_do__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rxjs_add_operator_do__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */
var rxjs_add_operator_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! rxjs/add/operator/map */
"./node_modules/rxjs/add/operator/map.js");
/* harmony import */
var rxjs_add_operator_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rxjs_add_operator_map__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */
var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! rxjs/operators */
"./node_modules/rxjs/_esm2015/operators/index.js");
/* harmony import */
var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! rxjs */
"./node_modules/rxjs/_esm2015/index.js");
/* harmony import */
var _ionic_native_device_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! @ionic-native/device/ngx */
"./node_modules/@ionic-native/device/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _getlocation_getlocation_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../getlocation/getlocation.service */
"./src/app/services/getlocation/getlocation.service.ts");
/* harmony import */
var _angular_common_http__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! @angular/common/http */
"./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! @ionic-native/network/ngx */
"./node_modules/@ionic-native/network/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_angular__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! @ionic/angular */
"./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
/* harmony import */
var _ionic_native_sqlite_ngx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! @ionic-native/sqlite/ngx */
"./node_modules/@ionic-native/sqlite/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_native_sqlite_porter_ngx__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
/*! @ionic-native/sqlite-porter/ngx */
"./node_modules/@ionic-native/sqlite-porter/__ivy_ngcc__/ngx/index.js");
/* harmony import */
var _ionic_storage__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(
/*! @ionic/storage */
"./node_modules/@ionic/storage/__ivy_ngcc__/fesm2015/ionic-storage.js");
/**
* v1.0.0 - 22/09/2020 - FIRST RELEASE
* v1.0.1 - 30/09/2020 - Patched after first test cycle
* v1.0.2 - 06/11/2020 - Patched after User Validation
*/
var DatabaseService = /*#__PURE__*/function () {
function DatabaseService(device, getmylocation, http, network, platform, sqlite, sqlitePorter, storage) {
var _this7 = this;
_classCallCheck(this, DatabaseService);
this.device = device;
this.getmylocation = getmylocation;
this.http = http;
this.network = network;
this.platform = platform;
this.sqlite = sqlite;
this.sqlitePorter = sqlitePorter;
this.storage = storage;
this.dbReady = new rxjs__WEBPACK_IMPORTED_MODULE_4__["BehaviorSubject"](false);
this.theSQL = ""; //theSessionID: number;
this.theSessionID = "";
this.theCasComplaint = "";
this.gpsLat = "57.697297";
this.gpsLong = "-3.984215";
this.systemTime = new Date().toISOString().substring(11).replace("Z", "");
this.aiberChat = ""; // API path
this.host = "https://newaiberapiv2.azurewebsites.net/"; // LIVE host
//host = "http://192.168.1.157:45455/"; // LOCAL host
this.base_path = this.host + "v2/api/incidentsv2/submit";
this.start_base_path = this.host + "v2/api/incidentsv2/startincident";
this.chat_base_path = this.host + "v2/api/incidentsv2/chat";
this.groundtyping_base_path = this.host + "v2/api/incidentsv2/checktypingground";
this.groundchat_base_path = this.host + "v2/api/incidentsv2/getgroundchat";
this.casualty_base_path = this.host + "v2/api/incidentsv2/updatecasualty";
this.netConn = false;
this.sessionStartedOK = false;
this.startAVPU = "";
this.startA = "";
this.startB = "";
this.startC = "";
this.startCon = "";
this.startStreamed = 0;
this.casualty = [{
complaint: "",
history: "",
gender: "",
dob: "",
age: null,
alcohol: "",
allergies: "",
allergydetails: "",
medicinetaken: "",
medhist: "",
flight: "",
seat: "",
arrivalairport: "",
lastmeal: "",
detailsadded: "",
detailssent: "",
detailsack: ""
}];
this.netStatusIcon = "cloud-wait";
this.netWarningText = "There is currently no network available; please continue using Aiber as normal. When a network is available, Aiber will automatically connect and process any unsent data.";
this.dataStreamed = ""; // ****** END OF QUEUE FUNCTIONS ******
// *******************************
// ****** API FUNCTIONS ******
// *******************************
// Http Options
this.httpOptions = {
headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_7__["HttpHeaders"]({
"Content-Type": "application/json",
"cache-control": "no-cache",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Origin, Content-Type, X-Auth-Token, Accept, Authorization, X-Request-With, Access-Control-Request-Method, Access-Control-Request-Headers",
"Access-Control-Allow-Credentials": "true",
"Access-Control-Allow-Methods": "GET, POST, DELETE, PUT, OPTIONS, TRACE, PATCH, CONNECT"
})
};
this.platform.ready().then(function () {
//console.log("The platform is ready!");
_this7.sqlite.create({
name: "aiber.db",
location: "default"
}).then(function (db) {
_this7.database = db;
_this7.http.get("assets/aiber.sql", {
responseType: "text"
}).subscribe(function (sql) {
_this7.sqlitePorter.importSqlToDb(_this7.database, sql).then(function (_) {
console.log("Getting to 116 on database.service.ts");
_this7.clearDatabase();
_this7.startStreamed = 0;
_this7.dataStreamed = "";
_this7.dbReady.next(true);
})["catch"](function (e) {
return console.error(e);
});
});
});
});
}
/* Queue workings and premises:
- On first entry to MAIN screen in Aiber, we subscribe to two events:
* Network Connect - fires when the network is connected AFTER a disconnect (does not fire if there is a network connection on first subscription, only fires on CHANGE of this status). After this event fires, we will wait up to 3 seconds to let the system identify the network type. After this type is identified as Wifi, the queue will be started/restarted.
* Network Disconnect - fires when network is disconnected AFTER being connected (does not fire if there is no network connection on first subscription, only fires on CHANGE of this status). After this event fires, we will stop the queue.
- On first entry to MAIN screen in Aiber, we check the network type:
* Type = Wifi - that means we're connected and the queue can be started.
* Type = None - that means we're not connected and the queue will not be started.
- Regardless of network status, Aiber stores items locally and those are considered "queued" until three things happen:
* Incident "start" items are saved, as these five items are processed by one specific API to start an event. Until these are saved, any subsequent saves will be rejected as "no incident found to match these".
* Item is successfully "sent" to the cloud (i.e. a 200 response code returned by the sending API is received).
* Item is successfully "acknowledged" (confirmed as received) by the cloud (i.e. we get a 200 response code plus the actual item returned by the API request to read the item).
*/
// ***********************************************
// QUEUE MANAGER FUNCTIONS
// Comments serv-db-qm-1 to serv-db-qm-8 below
// ***********************************************
// serv-db-qm-1
// First Run mechanism handles subscribing to network events
// such as connect/disconnect and provision of network type (wifi, etc.).
// Also handles update of network status icon at top of Aiber screen.
_createClass(DatabaseService, [{
key: "firstRun",
value: function firstRun() {
var _this8 = this;
console.log("Inside firstRun()");
if (!this.sessionStartedOK) {
this.startQueue();
}
return new Promise(function (resolve, reject) {
var connectSubscription = _this8.network.onConnect().subscribe(function () {
//console.log("network connected!");
_this8.netStatusIcon = "cloud-wait";
setTimeout(function () {
console.log("Network Type: ", _this8.network.type);
_this8.netConn = true;
_this8.netStatusIcon = "cloud-ok";
_this8.startQueue();
}, 3000);
});
var disconnectSubscription = _this8.network.onDisconnect().subscribe(function () {
//console.log("network was disconnected!");
_this8.netConn = false;
_this8.netStatusIcon = "cloud-not-ok";
_this8.stopQueue();
}); //console.log("Network type is: " + this.network.type);
if (_this8.network.type === "wifi") {
_this8.netConn = true;
_this8.netStatusIcon = "cloud-ok";
}
resolve();
});
} // serv-db-qm-2
// Queue start mechanism which checks for network availability and
// then begins processing the queue in sequence:
// 1 - unsent items
// 2 - acknowledgements
// 3 - typing states (ground and local)
// Automatically runs every 3 seconds
}, {
key: "startQueue",
value: function startQueue() {
var _this9 = this;
if (this.netConn && this.sessionStartedOK && this.network.type == "wifi") {
//Engage a timer interval of 3 seconds
this.queue = setInterval(function () {
//Check for network
//if network OK:
if (_this9.netConn) {
//Remove network warnings
_this9.displayNetworkWarning(false).then(function () {
if (_this9.sessionStartedOK) {
//console.log("Session was started OK!");
//Send unsent items
_this9.sendUnsentItems().then(function () {
// //Fetch unacknowledged item acknowledgements
// this.acknowledgeItems().then(() => {
// //Update remote system with local typing status
// this.updateLocalTypingStatus().then(() => {
// //Update local system with remote typing status
// this.updateRemoteTypingStatus().then(() => {
// //Do whatever is next...
console.log("Queue running!"); // });
// });
// });
});
}
});
}
}, 3000);
} else {
//Network not OK
//if no chat active, network issue warning is displayed (first, as a modal popup for the user to acknowledge, thereafter as an icon indicating network issues)
//if chat is active, no modal popup will be shown, but a message will be inserted into local chat to explain that the network has issues and that chat will be sent when connection is once again available
//console.log("Network not OK");
//console.log("Network Type: ", this.network.type);
if ( //this.netConn &&
//this.network.type === "wifi" &&
!this.sessionStartedOK) {
if (!this.startupQueue) {
console.log("Starting Startup Queue");
this.startupQueue = setInterval(function () {
//Incident start not yet sent, keep trying every five seconds
if (!_this9.sessionStartedOK && _this9.startStreamed === 0) {
_this9.streamStart(_this9.startAVPU, _this9.startA, _this9.startB, _this9.startC, _this9.startCon);
}
console.log("startup queue running");
}, 5000);
}
}
}
} // serv-db-qm-3
// Queue stopping mechanism. Called if Aiber "put to sleep" instead of being
// switched off. Saves network polls draining battery in the background.
}, {
key: "stopQueue",
value: function stopQueue() {
clearInterval(this.queue);
} // serv-db-qm-4
// Network warning mechanism
}, {
key: "displayNetworkWarning",
value: function displayNetworkWarning(showWarning) {
var _this10 = this;
return new Promise(function (resolve, reject) {
if (showWarning) {
alert(_this10.netWarningText);
} else {//console.log("No network warnings!");
}
resolve();
});
} // serv-db-qm-5
// Unsent item sending mechanism
}, {
key: "sendUnsentItems",
value: function sendUnsentItems() {
var _this11 = this;
return new Promise(function (resolve, reject) {
if (_this11.sessionStartedOK) {
var updateSQL = ""; //Get results set for those items
//with no "sent" date
_this11.theSQL = //"SELECT * FROM reportdetail WHERE entrylogged IS NOT NULL AND (reportsent IS NULL AND reportack IS NULL) ORDER BY repdetailid";
"SELECT * FROM reportdetail WHERE entrylogged IS NOT NULL AND reportack IS NULL ORDER BY repdetailid"; //console.log("Unsent: " + this.theSQL);
return _this11.database.executeSql(_this11.theSQL, []).then(function (data) {
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
//Send via API call
console.log("API data being sent:", data.rows.item(i).messagetype, data.rows.item(i).entryname, data.rows.item(i).entryvalue, data.rows.item(i).entryvalue2, data.rows.item(i).repdetailid);
console.log("repdetailid:", data.rows.item(i).repdetailid); //update table to say that records have been sent...
updateSQL = "UPDATE reportdetail SET reportsent=? WHERE repdetailid=?";
return _this11.database.executeSql(updateSQL, [_this11.getUnixTime(), data.rows.item(i).repdetailid]).then(function (outcome) {
console.log("updated repdetailid, streaming now...");
_this11.streamData(data.rows.item(i).messagetype, data.rows.item(i).entryname, data.rows.item(i).entryvalue, data.rows.item(i).entryvalue2, data.rows.item(i).repdetailid).then(function () {
console.log("Back to 290");
});
}, function (err) {
console.log("Error in reportdetail update:", err);
return [];
});
}
resolve();
} else {
resolve();
}
}, function (err) {
//console.log("unSentItems error: " + JSON.stringify(err));
reject("Error!");
return [];
});
resolve();
}
});
} // serv-db-qm-6
// Item acknowledgement mechanism - this mechanism polls the ground to
// ensure that all items sent have actually been received.
}, {
key: "acknowledgeItems",
value: function acknowledgeItems() {
var _this12 = this;
return new Promise(function (resolve, reject) {
_this12.getAck();
resolve();
});
} // serv-db-qm-7
// Local typing status mechanism - tells ground when the Aiber user
// is typing and when they stop typing
}, {
key: "updateLocalTypingStatus",
value: function updateLocalTypingStatus() {
var _this13 = this;
return new Promise(function (resolve, reject) {
_this13.updateLocalTyping();
resolve();
});
} // serv-db-qm-8
// Remote typing status mechanism - determines when the ground user
// is typing and when they stop typing
}, {
key: "updateRemoteTypingStatus",
value: function updateRemoteTypingStatus() {
var _this14 = this;
return new Promise(function (resolve, reject) {
_this14.updateRemoteTyping();
resolve();
});
} // Handle API errors
}, {
key: "handleError",
value: function handleError(error) {
if (error.error instanceof ErrorEvent) {
// A client-side or network error occurred. Handle it accordingly.
console.error("An error occurred:", error.error.message);
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
console.error("Backend returned code ".concat(error.status, ", ") + "body was: ".concat(JSON.stringify(error, ["message", "NSError", "arguments", "type", "name"])));
} // return an observable with a user-facing error message
return Object(rxjs__WEBPACK_IMPORTED_MODULE_4__["throwError"])("An error occurred: " + error.statusText);
} // Create a new item
}, {
key: "getGroundTyping",
value: function getGroundTyping(item) {
//console.log("id being sent: ", item);
return this.http.post(this.groundtyping_base_path, item, this.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["retry"])(2), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
}, {
key: "getGroundChat",
value: function getGroundChat(item) {
//console.log("id being sent: ", item);
return this.http.post(this.groundchat_base_path, item, this.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["retry"])(2), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
}, {
key: "streamObs",
value: function streamObs(item) {
//console.log("Session Obs Item [344]", item);
return this.http.post(this.base_path, item, this.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["retry"])(2), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
}, {
key: "streamSessionStart",
value: function streamSessionStart(item) {
return this.http.post(this.start_base_path, item, this.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
}, {
key: "sendChat",
value: function sendChat(item) {
//console.log(item);
return this.http.post(this.chat_base_path, item, this.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["retry"])(2), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
}, {
key: "sendCasualty",
value: function sendCasualty(item) {
//console.log(item);
return this.http.post(this.casualty_base_path, item, this.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["retry"])(2), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
}, {
key: "saveChat",
value: function saveChat(chat) {
this.database.executeSql("INSERT INTO chats (incidentid, aibermsg, msgtime, deleted) VALUES(?,?,?,?)", [this.theSessionID, chat, this.getUnixTime(), 0]).then(function () {//saved!
});
}
}, {
key: "streamChat",
value: function streamChat(chat) {
var _this15 = this;
var msgTime; //console.log("streamChat called!");
this.storage.get("sessionTime").then(function (data) {
_this15.incidentTime = data;
_this15.aiberChat = chat;
msgTime = _this15.getUnixTime();
var sJSON = '{ "incidentid" : "' + _this15.theSessionID + '", "aibermsg" : "' + _this15.aiberChat + '", "controlmsg" : "", "msgtime": ' + msgTime + ', "msgrecd" : 0, "msgread": 0}'; //console.log("[database.service.ts:88] " + sJSON);
_this15.sendChat(JSON.parse(sJSON)).subscribe(function (data) {//console.log("Chat Data streamed!");
});
});
}
}, {
key: "streamCasualty",
value: function streamCasualty() {
var _this16 = this;
var msgTime; //console.log("streamChat called!");
this.storage.get("sessionTime").then(function (data) {
_this16.incidentTime = data;
if (!_this16.casualty[0].age) {
_this16.casualty[0].age = 0;
}
var casualtyJSON = '{"incidentid":"' + _this16.theSessionID + '", "gender": "' + _this16.casualty[0].gender + '", "dob":"' + _this16.casualty[0].dob + '", "age": ' + _this16.casualty[0].age + ', "alcohol":"' + _this16.casualty[0].alcohol + '", "allergies":"' + _this16.casualty[0].allergies + '", "allergydetails":"' + _this16.casualty[0].allergydetails + '", "medicinetaken":"' + _this16.casualty[0].medicinetaken + '", "medhist":"' + _this16.casualty[0].medhist + '", "flight":"' + _this16.casualty[0].flight + '", "seat":"' + _this16.casualty[0].seat + '", "arrivalairport":"' + _this16.casualty[0].arrivalairport + '", "lastmeal":"' + _this16.casualty[0].lastmeal + '", "detailsadded":' + _this16.casualty[0].detailsadded + ', "complaint":"' + _this16.casualty[0].complaint + '", "history":"' + _this16.casualty[0].history + '", "deleted":0}'; //console.log("[database.service.ts:430] " + casualtyJSON);
_this16.sendCasualty(JSON.parse(casualtyJSON)).subscribe(function (data) {//console.log("Casualty Data streamed!");
});
});
}
}, {
key: "streamStart",
value: function streamStart(avpu, a, b, c, u) {
var _this17 = this;
return new Promise(function (resolve, reject) {
var reportTime;
var avpuStatus = "";
var aStatus = "";
var bStatus = "";
var cStatus = "";
var uStatus = "";
switch (avpu) {
case "ALERT":
avpuStatus = "-ok";
break;
case "RESPONDS TO VOICE":
avpuStatus = "";
break;
case "RESPONDS TO PAIN":
avpuStatus = "-warn";
break;
case "UNRESPONSIVE":
avpuStatus = "-not-ok";
break;
}
if (a.indexOf("CLEAR") !== -1) {
aStatus = "-ok";
} else {
aStatus = "-not-ok";
}
if (b.indexOf("IRREGULAR") === -1) {
bStatus = "-ok";
} else {
bStatus = "-not-ok";
}
if (c.indexOf("PALE") !== -1) {
cStatus = "-ok";
} else {
cStatus = "-not-ok";
}
if (u.indexOf("YES") === -1) {
uStatus = "-ok";
} else {
uStatus = "-not-ok";
}
_this17.storage.get("sessionTime").then(function (data) {
_this17.incidentTime = data; // console.log(
// "[database.service.ts:82] incidentTime: " + this.incidentTime
// );
reportTime = _this17.getUnixTime();
var sJSON = '{ "incidentid" : "' + _this17.theSessionID + '", "username" : "TRTest", "incidenttime" : ' + _this17.incidentTime + ', "reporttime" : ' + reportTime + ', "latitude" : "' + _this17.gpsLat + '", "longitude" : "' + _this17.gpsLong + '", "AVPU" : "' + avpu + '", "avpustatus" : "' + avpuStatus + '", "A" : "' + a + '", "astatus" :"' + aStatus + '", "B" : "' + b + '", "bstatus" :"' + bStatus + '", "C" : "' + c + '", "cstatus" :"' + cStatus + '", "U" : "' + u + '", "ustatus" :"' + uStatus + '", "battery" : 100, "pluggedin" : 1 , "reportlog" : "test1"}';
console.log("JSON streamStart [628]:", sJSON); //this.firstRun().then(() => {
if (_this17.startStreamed === 0) {
_this17.startStreamed = _this17.startStreamed + 1;
console.log("Getting into streamSessionStart, startStreamed = ", _this17.startStreamed);
_this17.streamSessionStart(JSON.parse(sJSON)).subscribe(function (data) {
clearInterval(_this17.startupQueue);
console.log("Incident Start Data streamed!"); // Update start items as sent
_this17.database.executeSql("UPDATE reportdetail SET processing=?, reportsent=?, reportack=? WHERE reportid=?", [_this17.startStreamed, _this17.getUnixTime(), _this17.getUnixTime(), _this17.theSessionID]).then(function () {
_this17.sessionStartedOK = true;
_this17.startQueue();
});
}, function (err) {
_this17.sessionStartedOK = false;
_this17.startStreamed = 0;
_this17.startQueue();
console.log("Session start not streamed!", err);
});
} //});
});
});
}
}, {
key: "streamData",
value: function streamData(mType, eType, eVal1, eVal2, repdetailid) {
var _this18 = this;
console.log("streamData [634]: ", "mType: " + mType, "eType: " + eType, "eVal1: " + eVal1, "eVal2: " + eVal2, "repdetailid: " + repdetailid);
return new Promise(function (resolve, reject) {
var reportTime;
var avpuStatus = "";
var aStatus = "";
var bStatus = "";
var cStatus = "";
var uStatus = "";
var sandsStatus = "";
var treatmentStatus = "";
_this18.storage.get("sessionTime").then(function (data) {
_this18.incidentTime = data;
reportTime = _this18.getUnixTime();
switch (eType.toUpperCase()) {
case "AVPU":
switch (eVal1) {
case "ALERT":
avpuStatus = "-ok";
break;
case "RESPONDS TO VOICE":
avpuStatus = "";
break;
case "RESPONDS TO PAIN":
avpuStatus = "-warn";
break;
case "UNRESPONSIVE":
avpuStatus = "-not-ok";
break;
}
eVal2 = avpuStatus;
break;
case "AIRWAY":
if (eVal1.indexOf("CLEAR") !== -1) {
aStatus = "-ok";
} else {
aStatus = "-not-ok";
}
eVal1 = "AIRWAY<br>" + eVal1;
eVal2 = aStatus;
break;
case "BREATHING":
if (eVal1.indexOf("IRREGULAR") === -1) {
bStatus = "-ok";
} else {
bStatus = "-not-ok";
}
eVal1 = "BREATHING<br>" + eVal1;
eVal2 = bStatus;
break;
case "CIRCULATION":
if (eVal1.indexOf("PALE") !== -1) {
cStatus = "-ok";
} else {
cStatus = "-not-ok";
}
eVal1 = "CIRCULATION<br>" + eVal1;
eVal2 = cStatus;
break;
case "UNCONSCIOUS":
eType = eType.toUpperCase();
if (eVal1.indexOf("NO") !== -1) {
uStatus = "-ok";
} else {
uStatus = "-not-ok";
}
eVal1 = "UNCONSCIOUS<br>" + eVal1;
eVal2 = uStatus;
break;
case "AED":
case "WERE SHOCKS GIVEN?":
case "OXYGEN":
case "BAG VALVE MASK":
case "CLEAR AIRWAY":
case "CONTROL OF BLEEDING":
case "CPR":
case "WAS PULSE RESTORED?":
case "WAS RESPIRATION RESTORED?":
case "WAS CONSCIOUSNESS REGAINED?":
case "HEAD TILT/CHIN LIFT":
case "JAW THRUST":
case "MEDICINE GIVEN":
case "MOVE PATIENT":
case "OROPHARYNGEAL AIRWAY":
case "SUCTION":
//Treatments
eType = eType.toUpperCase();
if (eVal1.indexOf("YES") !== -1) {//eVal1 = ""
}
break;
case "HEART RATE":
case "RESPIRATORY RATE":
case "OXYGEN SATURATION":
case "BLOOD PRESSURE":
case "TEMPERATURE":
console.log("eType:", eType, "eVal1:", eVal1);
eVal1 = eVal1;
break;
default:
console.log(eVal1);
eVal1 = eType.toUpperCase() + "<br>" + eVal1;
}
eVal2 = !eVal2 ? "" : eVal2;
var sJSON = '{ "incidentid" : "' + _this18.theSessionID + '", "username" : "TRTest", "incidenttime" : ' + _this18.incidentTime + ', "reporttime" : ' + reportTime + ', "latitude" : "' + _this18.gpsLat + '", "longitude" : "' + _this18.gpsLong + '", "message_type" : "' + mType + '", "entry_type" : "' + eType + '", "entry_val1" : "' + eVal1 + '", "entry_val2" : "' + eVal2 + '", "battery" : 100, "pluggedin" : 1 , "reportlog" : "test1"}'; //Duplication prevention - Adding string which contains the transaction currently being requested to be queued/sent minus the reporttime (time the transaction was queued to be sent).
//This is then compared to the last transaction sent and if the same, is ignored.
var sCompare = '{ "incidentid" : "' + _this18.theSessionID + '", "username" : "TRTest", "incidenttime" : ' + _this18.incidentTime + ', "reporttime" : ' + _this18.gpsLat + '", "longitude" : "' + _this18.gpsLong + '", "message_type" : "' + mType + '", "entry_type" : "' + eType + '", "entry_val1" : "' + eVal1 + '", "entry_val2" : "' + eVal2 + '", "battery" : 100, "pluggedin" : 1 , "reportlog" : "test1"}';
console.log("[database.service.ts:765] " + sJSON);
if (_this18.dataStreamed !== sCompare) {
_this18.dataStreamed = sCompare;
_this18.streamObs(JSON.parse(sJSON)).subscribe(function (data) {
console.log("Getting inside streamObs, startStreamed = ", _this18.dataStreamed);
resolve();
console.log("streamObs data returned:", data);
if (repdetailid) {
_this18.database.executeSql("UPDATE reportdetail SET processing=?, reportack=? WHERE repdetailid=?", [_this18.dataStreamed, _this18.getUnixTime(), repdetailid]).then(function () {
_this18.sessionStartedOK = true;
_this18.startQueue();
});
}
console.log("Data streamed!");
}, function (err) {
_this18.dataStreamed = "";
console.log("Not streamed:", err);
});
}
});
});
} // logECG() {
// this.streamData("C", "ECG", "1");
// }
}, {
key: "getAck",
value: function getAck() {}
}, {
key: "updateLocalTyping",
value: function updateLocalTyping() {}
}, {
key: "updateRemoteTyping",
value: function updateRemoteTyping() {} // ****** END OF API FUNCTIONS ******
// *******************************
// ****** DATABASE FUNCTIONS ******
// *******************************
}, {
key: "getDatabaseState",
value: function getDatabaseState() {
return this.dbReady.asObservable();
}
}, {
key: "processGroundChat",
value: function processGroundChat(chat) {
var _this19 = this;
return new Promise(function (resolve, reject) {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this19, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
var _this20 = this;
var i;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
i = 0;
case 1:
if (!(i < chat.groundChats.length)) {
_context2.next = 7;
break;
}
_context2.next = 4;
return this.database.executeSql("SELECT * FROM chats WHERE msgjson=?", [JSON.stringify(chat.groundChats[i])]).then(function (data) {
if (data.rows.length === 0) {
//Insert it into the chats table on Aiber\
_this20.database.executeSql("INSERT INTO chats (incidentid, controlmsg, msgtime, msgjson, deleted) VALUES(?,?,?,?,?)", [chat.groundChats[i].incidentid, chat.groundChats[i].controlmsg, chat.groundChats[i].msgtime, JSON.stringify(chat.groundChats[i]), 0]); // .then(() => {
// console.log(`Chat ${i} has been inserted!`);
// });
}
});
case 4:
i++;
_context2.next = 1;
break;
case 7:
resolve();
case 8:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
});
}
}, {
key: "getAllChat",
value: function getAllChat() {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
return _context3.abrupt("return", this.database.executeSql("SELECT * FROM chats WHERE incidentid=? AND controlmsg IS NOT NULL AND deleted=0 ORDER BY msgtime", [this.theSessionID]).then(function (data) {
return data;
}));
case 1:
case "end":
return _context3.stop();
}
}
}, _callee3, this);
}));
}
}, {
key: "getATMISTObs",
value: function getATMISTObs() {
this.theSQL = "SELECT * FROM reportdetail WHERE reportid='" + this.theSessionID + "' AND entrytype='injuries' AND deleted=0 ORDER BY entrylogged"; //console.log("Signs: " + this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var atmistInjuries = [];
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
atmistInjuries.push({
atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),
atmistSign: data.rows.item(i).entryname,
atmistValue: data.rows.item(i).entryvalue,
atmistSignLine: data.rows.item(i).entrylogged.substr(11) + " " + data.rows.item(i).entryname + ": " + data.rows.item(i).entryvalue
});
}
}
return atmistInjuries;
}, function (err) {
//console.log("getATMISTSigns error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "clearDatabase",
value: function clearDatabase() {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
this.theSQL = ["DELETE FROM casualtydetails", "DELETE FROM reports", "DELETE FROM reportdetail", "DELETE FROM chats"];
this.database.sqlBatch(this.theSQL).then(function () {
console.warn("clearDatabase completed");
});
_context4.next = 4;
return true;
case 4:
return _context4.abrupt("return", _context4.sent);
case 5:
case "end":
return _context4.stop();
}
}
}, _callee4, this);
}));
}
}, {
key: "getUnixTime",
value: function getUnixTime() {
var ud = new Date();
var unixTime = ud.getTime() / 1000 | 0;
return unixTime;
}
}, {
key: "getTimeFromUnixTime",
value: function getTimeFromUnixTime(unixTimestamp) {
var dateObj = new Date(unixTimestamp * 1000); //TODO - make ALL dates and times UTC
//so, remove the line immediately below this
//which is currently adding one hour for BST
//dateObj.setHours(dateObj.getHours() + 1);
var returnString = this.addZero(dateObj.getHours()) + ":" + this.addZero(dateObj.getMinutes()) + ":" + this.addZero(dateObj.getSeconds());
return returnString;
}
}, {
key: "addZero",
value: function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
}, {
key: "getCurrentTime",
value: function getCurrentTime() {
var d = new Date(); //console.log(d);
var theDate = "";
var theMonth;
theDate = d.getFullYear() + "-";
theMonth = d.getMonth();
theMonth++; //Javascript months are zero based, so January is 0, March is 2, etc. so we have to add 1 to get the Gregorian month number
if (theMonth < 10) {
theDate += "0" + theMonth + "-";
} else {
theDate += theMonth + "-";
}
if (d.getDate() < 10) {
theDate += "0" + d.getDate();
} else {
theDate += d.getDate();
}
theDate += " ";
if (d.getHours() < 10) {
theDate += "0" + d.getHours();
} else {
theDate += d.getHours();
}
theDate += ":";
if (d.getMinutes() < 10) {
theDate += "0" + d.getMinutes();
} else {
theDate += d.getMinutes();
}
theDate += ":";
if (d.getSeconds() < 10) {
theDate += "0" + d.getSeconds();
} else {
theDate += d.getSeconds();
}
return theDate;
}
}, {
key: "updateCasualtyDetails",
value: function updateCasualtyDetails() {
var _this21 = this;
//console.log("Updated casualty details [710]", this.casualty[0]);
var theSaveTime = this.getUnixTime(); //console.log(theSaveTime);
this.casualty[0].detailsadded = theSaveTime.toString();
this.database.executeSql("UPDATE casualtydetails SET gender=?, dob=?, age=?, alcohol=?, allergies=?, allergydetails=?, medicinetaken=?, medhist=?, flight=?, seat=?, arrivalairport=?, lastmeal=?, detailsadded=? WHERE reportid=?", [this.casualty[0].gender, this.casualty[0].dob, this.casualty[0].age, this.casualty[0].alcohol, this.casualty[0].allergies, this.casualty[0].allergydetails, this.casualty[0].medicinetaken, this.casualty[0].medhist, this.casualty[0].flight, this.casualty[0].seat, this.casualty[0].arrivalairport, this.casualty[0].lastmeal, this.casualty[0].detailsadded, this.theSessionID]).then(function (result) {
_this21.database.executeSql("UPDATE reports SET complaint=? WHERE sessionid=?", [_this21.casualty[0].complaint, _this21.theSessionID]).then(function () {
_this21.database.executeSql("UPDATE reports SET history=? WHERE sessionid=?", [_this21.casualty[0].history, _this21.theSessionID]).then(function () {
//stream casualty details
_this21.streamCasualty();
});
});
});
}
}, {
key: "startSession",
value: function startSession(avpu, a, b, c, con) {
var _this22 = this;
//Store these in case the start doesn't get through.
this.startAVPU = avpu;
this.startA = a;
this.startB = b;
this.startC = c;
this.startCon = con; //console.log(this.getCurrentTime());
var theTime = this.getCurrentTime();
this.theBattery = 999;
var theSessionTime = this.getUnixTime();
this.theSessionID = this.device.uuid + "-" + theSessionTime;
this.storage.set("sessionID", this.theSessionID);
this.storage.set("sessionTime", theSessionTime);
this.storage.get("sessionID").then(function (data) {//console.log("[database.service.ts:226] SessionID:" + data);
//console.log("[database.service.ts:228] SessionID:" + this.theSessionID);
});
this.storage.get("sessionTime").then(function (data) {
_this22.incidentTime = data; //console.log("[database.service.ts:233] SessionTime:" + data);
}); //Now save the first set of information, AVPU, ABC, Consciousness, etc.
this.theSQL = "INSERT INTO reports(sessionid, loggedat, batterystatus, gpslat, gpslong, deleted) VALUES('" + this.theSessionID + "', '" + theTime + "', " + this.theBattery + ", '" + this.gpsLat + "', '" + this.gpsLong + "', 0)"; //console.log(this.theSQL);
this.database.executeSql(this.theSQL, []).then(function (data) {
_this22.database.executeSql("INSERT into casualtydetails (reportid) VALUES(?)", [_this22.theSessionID]).then(function () {
_this22.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [_this22.theSessionID, "S", "injuries", "AVPU", avpu.replace("<br>", " "), theTime, 0]).then(function () {
_this22.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [_this22.theSessionID, "C", "injuries", "Airway", a.toUpperCase(), theTime, 0]).then(function () {
_this22.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [_this22.theSessionID, "C", "injuries", "Breathing", b.toUpperCase(), theTime, 0]).then(function () {
_this22.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [_this22.theSessionID, "C", "injuries", "Circulation", c.toUpperCase(), theTime, 0]).then(function () {
_this22.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [_this22.theSessionID, "C", "injuries", "Has been unconscious?", con.toUpperCase(), theTime, 0]).then(function () {
var avpuStatus = "";
var aStatus = "";
var bStatus = "";
var cStatus = "";
var uStatus = ""; //AVPU status
//switch(avpu.replace("<br>"))
// console.log(
// "Line 867 about to fire streamStart with: " +
// avpu.replace("<br>", " "),
// "AIRWAY<br>" + a.toUpperCase(),
// "BREATHING<br>" + b.toUpperCase(),
// "CIRCULATION<br>" + c.toUpperCase(),
// "UNCONSCIOUS<br>" + con.toUpperCase()
// );
// this.streamStart(
// avpu.replace("<br>", " "),
// "AIRWAY<br>" + a.toUpperCase(),
// "BREATHING<br>" + b.toUpperCase(),
// "CIRCULATION<br>" + c.toUpperCase(),
// "UNCONSCIOUS<br>" + con.toUpperCase()
// );
});
});
});
});
});
});
}, function (err) {
console.log("Error: ", err);
return err;
});
}
}, {
key: "fixSQL",
value: function fixSQL(incomingSQL) {
return new Promise(function (resolve, reject) {
incomingSQL = incomingSQL.replace(/\'/g, "''"); //return ;
resolve(incomingSQL);
});
}
}, {
key: "saveHistory",
value: function saveHistory(hOI) {
var _this23 = this;
hOI = this.fixSQL(hOI).then(function (history) {
var sSQL = "UPDATE reports SET history='" + history + "' WHERE sessionid='" + _this23.theSessionID + "'"; //console.log(sSQL);
_this23.database.executeSql(sSQL, []);
});
}
}, {
key: "updateBattery",
value: function updateBattery(batteryLevel) {
var sSQL = "UPDATE reports SET batterystatus=" + batteryLevel + " WHERE sessionid='" + this.theSessionID + "'"; //console.log(sSQL);
this.database.executeSql(sSQL, []);
}
}, {
key: "saveAVPU",
value: function saveAVPU(avpu) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "sands", "AVPU", avpu, theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "AVPU", avpu);
});
return;
}
}, {
key: "saveABC",
value: function saveABC(abc, abcVal, statusVal) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "sands", abc, abcVal.replace(abc.toUpperCase(), "").replace("<br>", "").toUpperCase(), theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", abc, abcVal, statusVal);
});
return;
}
}, {
key: "saveVital",
value: function saveVital(vital, vitalVal, statusVal) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entryvalue2, entrylogged, deleted) VALUES(?,?,?,?,?,?,?,?)", [this.theSessionID, "C", "sands", vital, vitalVal, statusVal, theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", vital, vitalVal, statusVal);
});
return;
}
}, {
key: "saveSandS",
value: function saveSandS(sands, sandsVal, statusVal) {
var theTime = this.getCurrentTime();
console.log("From saveSandS [1228]:", sands, sandsVal, statusVal);
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entryvalue2, entrylogged, deleted) VALUES(?,?,?,?,?,?,?,?)", [this.theSessionID, "C", "sands", this.toTitleCase(sands), sandsVal.replace(sands.toUpperCase(), "").replace("<br>", "").toUpperCase(), statusVal, theTime, 0]).then(function () {
if (sands === "UNCONSCIOUS" && sandsVal === "NO") {
sandsVal = "NOT UNCONSCIOUS"; // Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", sands, sandsVal, statusVal);
} else {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", sands, sandsVal, statusVal);
}
});
return;
}
}, {
key: "saveWitnessed",
value: function saveWitnessed(witnessed) {}
}, {
key: "toTitleCase",
value: function toTitleCase(incoming) {
var outgoing = ""; //Check it's not a word in the reserved list
if (incoming !== "CPR" && incoming !== "AVPU" && incoming !== "AED") {
var firstChar = incoming.substr(0, 1).toUpperCase();
var restOfString = incoming.slice(1).toLowerCase();
outgoing = firstChar + restOfString;
} else {
outgoing = incoming;
}
return outgoing;
}
}, {
key: "saveTreatment",
value: function saveTreatment(treatment, treatmentVal) {
var theTime = this.getCurrentTime();
var theTreatment = "";
if (treatmentVal === "tgSelected") {
theTreatment = "administered";
} else {
theTreatment = "removed";
}
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "treatment", this.toTitleCase(treatment), theTreatment.toUpperCase(), theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", treatment, theTreatment.toUpperCase());
});
return;
}
}, {
key: "saveAEDShocks",
value: function saveAEDShocks(shocks) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "treatment", "Were shocks given?", shocks.toUpperCase(), theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Were shocks given?", shocks.toUpperCase());
});
return;
}
}, {
key: "savePulseRestored",
value: function savePulseRestored(pulse) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "treatment", "Was pulse restored?", pulse.toUpperCase(), theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Was pulse restored?", pulse.toUpperCase());
});
return;
}
}, {
key: "saveRespirationRestored",
value: function saveRespirationRestored(resps) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "treatment", "Was respiration restored?", resps.toUpperCase(), theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Was respiration restored?", resps.toUpperCase());
});
return;
}
}, {
key: "saveConsciousnessRegained",
value: function saveConsciousnessRegained(conc) {
var theTime = this.getCurrentTime();
this.database.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [this.theSessionID, "C", "treatment", "Was consciousness regained?", conc.toUpperCase(), theTime, 0]).then(function () {// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Was consciousness regained?", conc.toUpperCase());
});
return;
}
}, {
key: "saveCasualty",
value: function saveCasualty(casComplaint, casFName, casLName, casDOB, casAge, casGender, casHomeAddress, casFlight, casSeat, casAirport, casLastMeal, casAlcohol, casAllergyAnswer, casAllergyDetails, casMedicine, casMedicalHistory) {
var _this24 = this;
var theTime = this.getCurrentTime(); //First thing; before saving the casualty's details, check to see if they've already been saved and if so, update the existing record.
this.theSQL = "SELECT * FROM casualtydetails WHERE deleted=0 AND reportid='" + this.theSessionID + "'"; //console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
if (data.rows.length > 0) {
//If there is a row, then there is a patient, so update the record
//console.log("Updating existing details");
var internalSQL = "UPDATE casualtydetails SET fname='" + casFName + "', lname='" + casLName + "', address='" + casHomeAddress + "', gender='" + casGender + "', dob='" + casDOB + "', age=" + casAge + ", alcohol='" + casAlcohol + "', allergies='" + casAllergyAnswer + "', allergydetails='" + casAllergyDetails + "', medicinetaken='" + casMedicine + "', medhist='" + casMedicalHistory + "', flight='" + casFlight + "', seat='" + casSeat + "', arrivalairport='" + casAirport + "', lastmeal='" + casLastMeal + "', detailsadded='" + theTime + "' WHERE reportid='" + _this24.theSessionID + "'"; //console.log("internalSQL: " + internalSQL);
_this24.database.executeSql(internalSQL, []).then(function () {
//update the complaint on the report
var theSQL = "UPDATE reports SET complaint='" + casComplaint + "' WHERE sessionid='" + _this24.theSessionID + "'"; //console.log("The SQL from the update is: " + theSQL);
_this24.database.executeSql(theSQL, []).then(function () {
return;
});
return;
});
} else {
//There is no patient saved; insert the details
//console.log("Inserting new details");
_this24.database.executeSql("INSERT INTO casualtydetails (reportid, fname, lname, address, gender, dob, age, alcohol, allergies, allergydetails, medicinetaken, medhist, flight, seat, arrivalairport, lastmeal, detailsadded, deleted) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", [_this24.theSessionID, casFName, casLName, casHomeAddress, casGender, casDOB, casAge, casAlcohol, casAllergyAnswer, casAllergyDetails, casMedicine, casMedicalHistory, casFlight, casSeat, casAirport, casLastMeal, theTime, 0]).then(function () {
//update the complaint on the report
var theSQL = "UPDATE reports SET complaint='" + casComplaint + "' WHERE sessionid='" + _this24.theSessionID + "'"; //console.log("The SQL from the insert is: " + theSQL);
_this24.database.executeSql(theSQL, []).then(function () {
return;
});
return;
});
}
}, function (err) {
/*console.log(
"Error from saving casualty details: " + JSON.stringify(err)
);*/
return [];
});
}
}, {
key: "clearSession",
value: function clearSession() {
this.theSessionID = null;
}
}, {
key: "getCasualtyDetails",
value: function getCasualtyDetails() {
var _this25 = this;
this.theSQL = "SELECT * FROM reports WHERE sessionid='" + this.theSessionID + "'"; //console.log("theSQL: ", this.theSQL);
this.database.executeSql(this.theSQL, []).then(function (data) {
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
_this25.theCasComplaint = data.rows.item(i).complaint;
}
}
return;
}, function (err) {
//console.log("getCasualtyDetails error: " + JSON.stringify(err));
return [];
});
this.theSQL = "SELECT * FROM casualtydetails WHERE reportid='" + this.theSessionID + "'"; //console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var casDetails = [];
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
casDetails.push({
casFName: data.rows.item(i).fname,
casLName: data.rows.item(i).lname,
casHomeAddress: data.rows.item(i).address,
casGender: data.rows.item(i).gender,
casDOB: data.rows.item(i).dob,
casAge: data.rows.item(i).age,
casAlcohol: data.rows.item(i).alcohol,
casAllergyAnswer: data.rows.item(i).allergies,
casAllergyDetails: data.rows.item(i).allergydetails,
casMedicine: data.rows.item(i).medicinetaken,
casMedicalHistory: data.rows.item(i).medhist,
casFlight: data.rows.item(i).flight,
casSeat: data.rows.item(i).seat,
casAirport: data.rows.item(i).arrivalairport,
casLastMeal: data.rows.item(i).lastmeal,
casComplaint: _this25.theCasComplaint
});
}
}
return casDetails;
}, function (err) {
//console.log("getCasualtyDetails error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "getCasualtyAge",
value: function getCasualtyAge() {
this.theSQL = "SELECT * FROM casualtydetails WHERE reportid='" + this.theSessionID + "'"; //console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var casDetails = [];
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
casDetails.push({
casAge: data.rows.item(i).age,
casFirstName: data.rows.item(i).fname,
casLastName: data.rows.item(i).lname,
casFullName: data.rows.item(i).fname + " " + data.rows.item(i).lname,
casGender: data.rows.item(i).gender
});
}
}
return casDetails;
}, function (err) {
//console.log("getCasAge error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "formatDateProperly",
value: function formatDateProperly(incoming) {
var theYear = incoming.substr(0, 4);
var theMonth = incoming.substr(5, 2);
var theDate = incoming.substr(8, 2);
var theHour = incoming.substr(11, 2);
var theMinute = incoming.substr(14, 2);
var theSecond = incoming.substr(17, 2);
var outgoing = theDate + "/" + theMonth + "/" + theYear + " ";
outgoing += theHour + ":" + theMinute + ":" + theSecond;
return outgoing;
}
}, {
key: "formatDateNLG",
value: function formatDateNLG(incoming) {
var theYear = incoming.substr(0, 4);
var theMonth = incoming.substr(5, 2);
var theDate = incoming.substr(8, 2);
var theHour = incoming.substr(11, 2);
var theMinute = incoming.substr(14, 2);
var theSecond = incoming.substr(17, 2);
var outgoing = theHour + ":" + theMinute + " (" + theDate + "/";
outgoing += theMonth + "/" + theYear + ")";
return outgoing;
}
}, {
key: "getATMISTAVPU",
value: function getATMISTAVPU() {
this.theSQL = "SELECT * FROM reportdetail WHERE reportid='" + this.theSessionID + "' ORDER BY entrylogged"; //console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var avpudetail = [];
if (data.rows.length > 0) {
avpudetail.push({
atmistAVPU: data.rows.item(0).entryvalue,
atmistA: data.rows.item(1).entryvalue,
atmistB: data.rows.item(2).entryvalue,
atmistC: data.rows.item(3).entryvalue,
atmistCons: data.rows.item(4).entryvalue
});
}
return avpudetail;
}, function (err) {
//console.log("getATMISTAVPU error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "getATMISTTOI",
value: function getATMISTTOI() {
var _this26 = this;
this.theSQL = "SELECT * FROM reports WHERE sessionid='" + this.theSessionID + "' ORDER BY loggedat"; //console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var reportdetail = [];
if (data.rows.length > 0) {
var theProperTOI = _this26.formatDateProperly(data.rows.item(0).loggedat);
var theNLGTOI = _this26.formatDateNLG(data.rows.item(0).loggedat);
reportdetail.push({
atmistTOI: theProperTOI,
atmistNLGTOI: theNLGTOI,
atmistComplaint: data.rows.item(0).complaint,
atmistInjuries: data.rows.item(0).history
});
}
return reportdetail;
}, function (err) {
//console.log("getATMISTTOI error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "getATMISTInjuries",
value: function getATMISTInjuries() {
this.theSQL = "SELECT * FROM reportdetail WHERE reportid='" + this.theSessionID + "' AND entrytype='injuries' AND deleted=0 ORDER BY entrylogged"; //console.log("Signs: " + this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var atmistInjuries = [];
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
atmistInjuries.push({
atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),
atmistSign: data.rows.item(i).entryname,
atmistValue: data.rows.item(i).entryvalue,
atmistSignLine: data.rows.item(i).entrylogged.substr(11) + " " + data.rows.item(i).entryname + ": " + data.rows.item(i).entryvalue
});
}
}
return atmistInjuries;
}, function (err) {
//console.log("getATMISTSigns error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "getATMISTSigns",
value: function getATMISTSigns() {
this.theSQL = "SELECT * FROM reportdetail WHERE reportid='" + this.theSessionID + "' AND entrytype='sands' AND deleted=0 ORDER BY entrylogged"; //console.log("Signs: " + this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var atmistSigns = [];
var atmistValue = "";
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
atmistValue = "";
if (data.rows.item(i).entryvalue.indexOf(".") !== -1) {
atmistValue = data.rows.item(i).entrylogged.substr(11) + " " + data.rows.item(i).entryname + ": " + data.rows.item(i).entryvalue.replace(".", "<sup>.</sup>");
} else {
atmistValue = data.rows.item(i).entrylogged.substr(11) + " " + data.rows.item(i).entryname + ": " + data.rows.item(i).entryvalue;
}
atmistSigns.push({
atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),
atmistSign: data.rows.item(i).entryname,
atmistValue: data.rows.item(i).entryvalue,
atmistSignLine: atmistValue
});
}
}
return atmistSigns;
}, function (err) {
//console.log("getATMISTSigns error: " + JSON.stringify(err));
return [];
});
}
}, {
key: "getATMISTTreatment",
value: function getATMISTTreatment() {
this.theSQL = "SELECT * FROM reportdetail WHERE reportid='" + this.theSessionID + "' AND entrytype='treatment' AND deleted=0 ORDER BY entrylogged"; //console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then(function (data) {
var atmistTreatment = [];
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
atmistTreatment.push({
atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),
atmistTreatment: data.rows.item(i).entryname,
atmistValue: data.rows.item(i).entryvalue
});
}
} else {
atmistTreatment.push({
atmistEntryLogged: "",
atmistTreatment: "No treatmeants logged yet",
atmistValue: ""
});
}
return atmistTreatment;
}, function (err) {
//console.log("getATMISTTreatment error: " + JSON.stringify(err));
return [];
});
}
}]);
return DatabaseService;
}();
DatabaseService.ctorParameters = function () {
return [{
type: _ionic_native_device_ngx__WEBPACK_IMPORTED_MODULE_5__["Device"]
}, {
type: _getlocation_getlocation_service__WEBPACK_IMPORTED_MODULE_6__["GetlocationService"]
}, {
type: _angular_common_http__WEBPACK_IMPORTED_MODULE_7__["HttpClient"]
}, {
type: _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_9__["Network"]
}, {
type: _ionic_angular__WEBPACK_IMPORTED_MODULE_10__["Platform"]
}, {
type: _ionic_native_sqlite_ngx__WEBPACK_IMPORTED_MODULE_11__["SQLite"]
}, {
type: _ionic_native_sqlite_porter_ngx__WEBPACK_IMPORTED_MODULE_12__["SQLitePorter"]
}, {
type: _ionic_storage__WEBPACK_IMPORTED_MODULE_13__["Storage"]
}];
};
DatabaseService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_8__["Injectable"])({
providedIn: "root"
})], DatabaseService);
/***/
},
/***/
"./src/app/services/getlocation/getlocation.service.ts":
/*!*************************************************************!*\
!*** ./src/app/services/getlocation/getlocation.service.ts ***!
\*************************************************************/
/*! exports provided: GetlocationService */
/***/
function srcAppServicesGetlocationGetlocationServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "GetlocationService", function () {
return GetlocationService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var rxjs_add_operator_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! rxjs/add/operator/map */
"./node_modules/rxjs/add/operator/map.js");
/* harmony import */
var rxjs_add_operator_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rxjs_add_operator_map__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */
var _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @ionic-native/geolocation/ngx */
"./node_modules/@ionic-native/geolocation/__ivy_ngcc__/ngx/index.js");
/**
* v1.0.0 - 22/09/2020 - FIRST RELEASE
* v1.0.1 - 30/09/2020 - Patched after first test cycle
* v1.0.2 - 06/11/2020 - Patched after User Validation
*/
var GetlocationService = /*#__PURE__*/function () {
function GetlocationService(geolocation) {
_classCallCheck(this, GetlocationService);
this.geolocation = geolocation;
this.myLat = 0;
this.myLong = 0;
}
_createClass(GetlocationService, [{
key: "getMyLocation",
value: function getMyLocation() {
var _this27 = this;
//First job, get my current GPS location
//console.log("Getting location");
return this.geolocation.getCurrentPosition({
timeout: 1000
}).then(function (resp) {
//console.log("Getting here!");
_this27.myLat = resp.coords.latitude;
_this27.myLong = resp.coords.longitude; //for debug in simulator, hardcode these
//this.myLat = 57.697780;
//this.myLong = -3.987871;
//console.log("31:My Co-ords are: " + this.myLat + " | " + this.myLong);
//alert("31:My Co-ords are: " + this.myLat + " | " + this.myLong);
_this27.myCoords = {
theLAT: _this27.myLat,
theLONG: _this27.myLong
};
return _this27.myCoords;
})["catch"](function (e) {
//console.log("Error from getMyLocation!");
//console.log(e.message);
_this27.myLat = 57.69778;
_this27.myLong = -3.987871; //console.log("40:My Co-ords are: " + this.myLat + " | " + this.myLong);
//alert("40:My Co-ords are: " + this.myLat + " | " + this.myLong);
_this27.myCoords = {
theLAT: _this27.myLat,
theLONG: _this27.myLong
};
return _this27.myCoords;
});
}
}]);
return GetlocationService;
}();
GetlocationService.ctorParameters = function () {
return [{
type: _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_3__["Geolocation"]
}];
};
GetlocationService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
providedIn: "root"
})], GetlocationService);
/***/
},
/***/
"./src/app/shared/app.global.ts":
/*!**************************************!*\
!*** ./src/app/shared/app.global.ts ***!
\**************************************/
/*! exports provided: AppGlobals */
/***/
function srcAppSharedAppGlobalTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "AppGlobals", function () {
return AppGlobals;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/**
* v1.0.0 - 22/09/2020 - FIRST RELEASE
* v1.0.1 - 30/09/2020 - Patched after first test cycle
* v1.0.2 - 06/11/2020 - Patched after User Validation
*/
var AppGlobals = function AppGlobals() {
_classCallCheck(this, AppGlobals);
this.appConfig = {
personLabel: "PAX",
personLocation: "seat",
supportLocation: "ground",
personDestinationCentre: "airport",
staffType: "cabin crew"
};
};
AppGlobals = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()], AppGlobals);
/***/
},
/***/
"./src/environments/environment.ts":
/*!*****************************************!*\
!*** ./src/environments/environment.ts ***!
\*****************************************/
/*! exports provided: environment */
/***/
function srcEnvironmentsEnvironmentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "environment", function () {
return environment;
}); // This file can be replaced during build by using the `fileReplacements` array.
// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
// The list of file replacements can be found in `angular.json`.
var environment = {
production: false
};
/*
* For easier debugging in development mode, you can import the following file
* to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
*
* This import should be commented out in production mode because it will have a negative impact
* on performance if an error is thrown.
*/
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
/***/
},
/***/
"./src/main.ts":
/*!*********************!*\
!*** ./src/main.ts ***!
\*********************/
/*! no exports provided */
/***/
function srcMainTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
/* harmony import */
var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/platform-browser-dynamic */
"./node_modules/@angular/platform-browser-dynamic/__ivy_ngcc__/fesm2015/platform-browser-dynamic.js");
/* harmony import */
var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./app/app.module */
"./src/app/app.module.ts");
/* harmony import */
var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./environments/environment */
"./src/environments/environment.ts");
if (_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].production) {
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])();
}
Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"])["catch"](function (err) {
return console.log(err);
});
/***/
},
/***/
0:
/*!***************************!*\
!*** multi ./src/main.ts ***!
\***************************/
/*! no static exports found */
/***/
function _(module, exports, __webpack_require__) {
module.exports = __webpack_require__(
/*! /Users/martin/dev/aiber-martin/src/main.ts */
"./src/main.ts");
/***/
}
}, [[0, "runtime", "vendor"]]]);
})();
//# sourceMappingURL=main-es5.js.map