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

2966 lines
200 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.

(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{
/***/ "./$$_lazy_route_resource lazy recursive":
/*!******************************************************!*\
!*** ./$$_lazy_route_resource lazy namespace object ***!
\******************************************************/
/*! no static exports found */
/***/ (function(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(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(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(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(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");
const 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",
},
];
let AppRoutingModule = class 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(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(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");
let AppComponent = class AppComponent {
constructor(platform, splashScreen, statusBar) {
this.platform = platform;
this.splashScreen = splashScreen;
this.statusBar = statusBar;
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
});
}
};
AppComponent.ctorParameters = () => [
{ 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(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
*/
let AppModule = class 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(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(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
*/
let HomePage = class HomePage {
constructor(navCtrl, screenOrientation, database, appVersion, batteryStatus, getLocation, platform, router, _global, device) {
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(() => {
//Force the iPad to display in LANDSCAPE only
this.screenOrientation
.lock(this.screenOrientation.ORIENTATIONS.LANDSCAPE)
.then((data) => {
//console.log("data from screenorientation is: " + data);
});
this.personLabel = _global.appConfig.personLabel;
this.personLabelUpper = _global.appConfig.personLabel.toUpperCase();
this.supportLocation = _global.appConfig.supportLocation;
this.staffType = _global.appConfig.staffType;
this.findMe();
this.appVersion.getVersionNumber().then((version) => {
//alert("Aiber Version: " + version);
this.aiberVersion = version;
});
//Ensure device is running iOS12.4 and above
if (this.device.version < "12.4") {
alert("This software is designed to operate on iOS from version 12.4 onwards. Your system is currently " +
this.device.version +
". Please update your iOS version.");
this.proceedable = false; //prevent app from continuing to function
}
});
}
setAVPU() {
this.avpuSlides.getActiveIndex().then((currentIndex) => {
//console.log("This is the currentIndex: " + currentIndex);
switch (currentIndex) {
case 0:
this.avpuState = "ALERT";
break;
case 1:
this.avpuState = "RESPONDS<br>TO VOICE";
break;
case 2:
this.avpuState = "RESPONDS<br>TO PAIN";
break;
case 3:
this.avpuState = "UNRESPONSIVE";
break;
}
});
}
//ngAfterViewInit() {
ionViewDidEnter() {
console.log("Getting to ionViewDidEnter");
this.appVersion.getVersionNumber().then((version) => {
//alert("Aiber Version: " + version);
this.aiberVersion = version;
});
console.log("Back to home!");
this.subscription = this.batteryStatus.onChange().subscribe((status) => {
//alert("Battery status: " + status.level);
this.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(() => {
this.findMe();
});
}
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.
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,
]);
}
}
findMe() {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
this.theCoords = yield this.getLocation
.getMyLocation()
.then((data) => {
////console.warn("Location data: " + JSON.stringify(data));
})
.catch((error) => {
////console.error("Location error: " + error);
});
});
}
updateTaps() {
this.numTaps++;
if (this.numTaps > 5) {
this.appVersion.getVersionNumber().then((version) => {
alert("MIME Pro Version: " + version);
});
this.numTaps = 0;
}
}
showAboutInfo() {
console.log("Info icon clicked");
this.appVersion.getVersionNumber().then((version) => {
this.aiberVersion = version;
this.aboutVis = "showModal";
});
}
closeAboutInfo() {
this.aboutVis = "hideModal";
}
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 ";
}
}
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 ";
}
}
}
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 ";
}
}
}
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 ";
}
}
}
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 ";
}
}
}
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 ";
}
}
}
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 = "";
}
}
confirmConscious() {
//Show Circulation as confirmed, then enable proceed controls
this.confirm4 = "cpsConfirmedCol";
this.confirm4Tick = "";
this.confirmConsciousness = "";
}
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";
}
}
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;
}
}
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.)
let 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 = "";
//}
}
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();
}
showUnresponsive() {
this.cdFlag = false;
this.burnFlag = false;
this.adultChokingFlag = false;
this.unresponsiveFlag = true;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
}
showCDHolder() {
this.cdFlag = true;
this.adultChokingFlag = false;
this.burnFlag = false;
this.unresponsiveFlag = false;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
this.fasSlides.lockSwipeToNext(true);
}
showBurns() {
this.cdFlag = false;
this.adultChokingFlag = false;
this.burnFlag = true;
this.unresponsiveFlag = false;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
this.fasSlides.lockSwipeToNext(false);
}
showAdultChoking() {
this.cdFlag = false;
this.adultChokingFlag = true;
this.burnFlag = false;
this.unresponsiveFlag = false;
this.fasSlides.lockSwipes(false);
this.fasSlides.slideNext();
this.fasSlides.lockSwipeToNext(false);
}
openUANB() {
this.cdFlag = false;
this.adultChokingFlag = false;
this.burnFlag = false;
this.unresponsiveFlag = true;
this.fasSlides.slideTo(2);
}
fasLockSwipes() {
this.fasSlides.isBeginning().then((data) => {
//console.log("Data: " + data);
if (data) {
setTimeout(() => {
this.fasSlides.lockSwipes(true).then(() => {
//blah
});
}, 500);
}
});
}
toggleConsciousness() {
if (this.consciousnessVis === "showModal") {
this.consciousnessVis = "hideModal";
}
else {
this.consciousnessVis = "showModal";
}
}
};
HomePage.ctorParameters = () => [
{ 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(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
*/
let DatabaseService = class DatabaseService {
constructor(device, getmylocation, http, network, platform, sqlite, sqlitePorter, storage) {
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(() => {
//console.log("The platform is ready!");
this.sqlite
.create({
name: "aiber.db",
location: "default",
})
.then((db) => {
this.database = db;
this.http
.get("assets/aiber.sql", { responseType: "text" })
.subscribe((sql) => {
this.sqlitePorter
.importSqlToDb(this.database, sql)
.then((_) => {
console.log("Getting to 116 on database.service.ts");
this.clearDatabase();
this.startStreamed = 0;
this.dataStreamed = "";
this.dbReady.next(true);
})
.catch((e) => 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.
firstRun() {
console.log("Inside firstRun()");
if (!this.sessionStartedOK) {
this.startQueue();
}
return new Promise((resolve, reject) => {
let connectSubscription = this.network.onConnect().subscribe(() => {
//console.log("network connected!");
this.netStatusIcon = "cloud-wait";
setTimeout(() => {
console.log("Network Type: ", this.network.type);
this.netConn = true;
this.netStatusIcon = "cloud-ok";
this.startQueue();
}, 3000);
});
let disconnectSubscription = this.network.onDisconnect().subscribe(() => {
//console.log("network was disconnected!");
this.netConn = false;
this.netStatusIcon = "cloud-not-ok";
this.stopQueue();
});
//console.log("Network type is: " + this.network.type);
if (this.network.type === "wifi") {
this.netConn = true;
this.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
startQueue() {
if (this.netConn && this.sessionStartedOK && this.network.type == "wifi") {
//Engage a timer interval of 3 seconds
this.queue = setInterval(() => {
//Check for network
//if network OK:
if (this.netConn) {
//Remove network warnings
this.displayNetworkWarning(false).then(() => {
if (this.sessionStartedOK) {
//console.log("Session was started OK!");
//Send unsent items
this.sendUnsentItems().then(() => {
// //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(() => {
//Incident start not yet sent, keep trying every five seconds
if (!this.sessionStartedOK && this.startStreamed === 0) {
this.streamStart(this.startAVPU, this.startA, this.startB, this.startC, this.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.
stopQueue() {
clearInterval(this.queue);
}
// serv-db-qm-4
// Network warning mechanism
displayNetworkWarning(showWarning) {
return new Promise((resolve, reject) => {
if (showWarning) {
alert(this.netWarningText);
}
else {
//console.log("No network warnings!");
}
resolve();
});
}
// serv-db-qm-5
// Unsent item sending mechanism
sendUnsentItems() {
return new Promise((resolve, reject) => {
if (this.sessionStartedOK) {
var updateSQL = "";
//Get results set for those items
//with no "sent" date
this.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 this.database.executeSql(this.theSQL, []).then((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 this.database
.executeSql(updateSQL, [this.getUnixTime(), data.rows.item(i).repdetailid])
.then((outcome) => {
console.log("updated repdetailid, streaming now...");
this.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(() => {
console.log("Back to 290");
});
}, (err) => {
console.log("Error in reportdetail update:", err);
return [];
});
}
resolve();
}
else {
resolve();
}
}, (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.
acknowledgeItems() {
return new Promise((resolve, reject) => {
this.getAck();
resolve();
});
}
// serv-db-qm-7
// Local typing status mechanism - tells ground when the Aiber user
// is typing and when they stop typing
updateLocalTypingStatus() {
return new Promise((resolve, reject) => {
this.updateLocalTyping();
resolve();
});
}
// serv-db-qm-8
// Remote typing status mechanism - determines when the ground user
// is typing and when they stop typing
updateRemoteTypingStatus() {
return new Promise((resolve, reject) => {
this.updateRemoteTyping();
resolve();
});
}
// Handle API errors
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 ${error.status}, ` +
`body was: ${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
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));
}
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));
}
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));
}
streamSessionStart(item) {
return this.http
.post(this.start_base_path, item, this.httpOptions)
.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(this.handleError));
}
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));
}
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));
}
saveChat(chat) {
this.database
.executeSql("INSERT INTO chats (incidentid, aibermsg, msgtime, deleted) VALUES(?,?,?,?)", [this.theSessionID, chat, this.getUnixTime(), 0])
.then(() => {
//saved!
});
}
streamChat(chat) {
var msgTime;
//console.log("streamChat called!");
this.storage.get("sessionTime").then((data) => {
this.incidentTime = data;
this.aiberChat = chat;
msgTime = this.getUnixTime();
var sJSON = '{ "incidentid" : "' +
this.theSessionID +
'", "aibermsg" : "' +
this.aiberChat +
'", "controlmsg" : "", "msgtime": ' +
msgTime +
', "msgrecd" : 0, "msgread": 0}';
//console.log("[database.service.ts:88] " + sJSON);
this.sendChat(JSON.parse(sJSON)).subscribe((data) => {
//console.log("Chat Data streamed!");
});
});
}
streamCasualty() {
var msgTime;
//console.log("streamChat called!");
this.storage.get("sessionTime").then((data) => {
this.incidentTime = data;
if (!this.casualty[0].age) {
this.casualty[0].age = 0;
}
var casualtyJSON = '{"incidentid":"' +
this.theSessionID +
'", "gender": "' +
this.casualty[0].gender +
'", "dob":"' +
this.casualty[0].dob +
'", "age": ' +
this.casualty[0].age +
', "alcohol":"' +
this.casualty[0].alcohol +
'", "allergies":"' +
this.casualty[0].allergies +
'", "allergydetails":"' +
this.casualty[0].allergydetails +
'", "medicinetaken":"' +
this.casualty[0].medicinetaken +
'", "medhist":"' +
this.casualty[0].medhist +
'", "flight":"' +
this.casualty[0].flight +
'", "seat":"' +
this.casualty[0].seat +
'", "arrivalairport":"' +
this.casualty[0].arrivalairport +
'", "lastmeal":"' +
this.casualty[0].lastmeal +
'", "detailsadded":' +
this.casualty[0].detailsadded +
', "complaint":"' +
this.casualty[0].complaint +
'", "history":"' +
this.casualty[0].history +
'", "deleted":0}';
//console.log("[database.service.ts:430] " + casualtyJSON);
this.sendCasualty(JSON.parse(casualtyJSON)).subscribe((data) => {
//console.log("Casualty Data streamed!");
});
});
}
streamStart(avpu, a, b, c, u) {
return new Promise((resolve, reject) => {
var reportTime;
let avpuStatus = "";
let aStatus = "";
let bStatus = "";
let cStatus = "";
let 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";
}
this.storage.get("sessionTime").then((data) => {
this.incidentTime = data;
// console.log(
// "[database.service.ts:82] incidentTime: " + this.incidentTime
// );
reportTime = this.getUnixTime();
var sJSON = '{ "incidentid" : "' +
this.theSessionID +
'", "username" : "TRTest", "incidenttime" : ' +
this.incidentTime +
', "reporttime" : ' +
reportTime +
', "latitude" : "' +
this.gpsLat +
'", "longitude" : "' +
this.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 (this.startStreamed === 0) {
this.startStreamed = this.startStreamed + 1;
console.log("Getting into streamSessionStart, startStreamed = ", this.startStreamed);
this.streamSessionStart(JSON.parse(sJSON)).subscribe((data) => {
clearInterval(this.startupQueue);
console.log("Incident Start Data streamed!");
// Update start items as sent
this.database
.executeSql("UPDATE reportdetail SET processing=?, reportsent=?, reportack=? WHERE reportid=?", [this.startStreamed, this.getUnixTime(), this.getUnixTime(), this.theSessionID])
.then(() => {
this.sessionStartedOK = true;
this.startQueue();
});
}, (err) => {
this.sessionStartedOK = false;
this.startStreamed = 0;
this.startQueue();
console.log("Session start not streamed!", err);
});
}
//});
});
});
}
streamData(mType, eType, eVal1, eVal2, repdetailid) {
console.log("streamData [634]: ", "mType: " + mType, "eType: " + eType, "eVal1: " + eVal1, "eVal2: " + eVal2, "repdetailid: " + repdetailid);
return new Promise((resolve, reject) => {
var reportTime;
let avpuStatus = "";
let aStatus = "";
let bStatus = "";
let cStatus = "";
let uStatus = "";
let sandsStatus = "";
let treatmentStatus = "";
this.storage.get("sessionTime").then((data) => {
this.incidentTime = data;
reportTime = this.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" : "' +
this.theSessionID +
'", "username" : "TRTest", "incidenttime" : ' +
this.incidentTime +
', "reporttime" : ' +
reportTime +
', "latitude" : "' +
this.gpsLat +
'", "longitude" : "' +
this.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" : "' +
this.theSessionID +
'", "username" : "TRTest", "incidenttime" : ' +
this.incidentTime +
', "reporttime" : ' +
this.gpsLat +
'", "longitude" : "' +
this.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 (this.dataStreamed !== sCompare) {
this.dataStreamed = sCompare;
this.streamObs(JSON.parse(sJSON)).subscribe((data) => {
console.log("Getting inside streamObs, startStreamed = ", this.dataStreamed);
resolve();
console.log("streamObs data returned:", data);
if (repdetailid) {
this.database
.executeSql("UPDATE reportdetail SET processing=?, reportack=? WHERE repdetailid=?", [this.dataStreamed, this.getUnixTime(), repdetailid])
.then(() => {
this.sessionStartedOK = true;
this.startQueue();
});
}
console.log("Data streamed!");
}, (err) => {
this.dataStreamed = "";
console.log("Not streamed:", err);
});
}
});
});
}
// logECG() {
// this.streamData("C", "ECG", "1");
// }
getAck() { }
updateLocalTyping() { }
updateRemoteTyping() { }
// ****** END OF API FUNCTIONS ******
// *******************************
// ****** DATABASE FUNCTIONS ******
// *******************************
getDatabaseState() {
return this.dbReady.asObservable();
}
processGroundChat(chat) {
return new Promise((resolve, reject) => Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
for (var i = 0; i < chat.groundChats.length; i++) {
yield this.database
.executeSql("SELECT * FROM chats WHERE msgjson=?", [
JSON.stringify(chat.groundChats[i]),
])
.then((data) => {
if (data.rows.length === 0) {
//Insert it into the chats table on Aiber\
this.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!`);
// });
}
});
}
resolve();
}));
}
getAllChat() {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
return this.database
.executeSql("SELECT * FROM chats WHERE incidentid=? AND controlmsg IS NOT NULL AND deleted=0 ORDER BY msgtime", [this.theSessionID])
.then((data) => {
return data;
});
});
}
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((data) => {
let 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;
}, (err) => {
//console.log("getATMISTSigns error: " + JSON.stringify(err));
return [];
});
}
clearDatabase() {
return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
this.theSQL = [
"DELETE FROM casualtydetails",
"DELETE FROM reports",
"DELETE FROM reportdetail",
"DELETE FROM chats",
];
this.database.sqlBatch(this.theSQL).then(() => {
console.warn("clearDatabase completed");
});
return yield true;
});
}
getUnixTime() {
var ud = new Date();
var unixTime = (ud.getTime() / 1000) | 0;
return unixTime;
}
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;
}
addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
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;
}
updateCasualtyDetails() {
//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((result) => {
this.database
.executeSql("UPDATE reports SET complaint=? WHERE sessionid=?", [
this.casualty[0].complaint,
this.theSessionID,
])
.then(() => {
this.database
.executeSql("UPDATE reports SET history=? WHERE sessionid=?", [
this.casualty[0].history,
this.theSessionID,
])
.then(() => {
//stream casualty details
this.streamCasualty();
});
});
});
}
startSession(avpu, a, b, c, con) {
//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((data) => {
//console.log("[database.service.ts:226] SessionID:" + data);
//console.log("[database.service.ts:228] SessionID:" + this.theSessionID);
});
this.storage.get("sessionTime").then((data) => {
this.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((data) => {
this.database
.executeSql("INSERT into casualtydetails (reportid) VALUES(?)", [
this.theSessionID,
])
.then(() => {
this.database
.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [
this.theSessionID,
"S",
"injuries",
"AVPU",
avpu.replace("<br>", " "),
theTime,
0,
])
.then(() => {
this.database
.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [
this.theSessionID,
"C",
"injuries",
"Airway",
a.toUpperCase(),
theTime,
0,
])
.then(() => {
this.database
.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [
this.theSessionID,
"C",
"injuries",
"Breathing",
b.toUpperCase(),
theTime,
0,
])
.then(() => {
this.database
.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [
this.theSessionID,
"C",
"injuries",
"Circulation",
c.toUpperCase(),
theTime,
0,
])
.then(() => {
this.database
.executeSql("INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)", [
this.theSessionID,
"C",
"injuries",
"Has been unconscious?",
con.toUpperCase(),
theTime,
0,
])
.then(() => {
let avpuStatus = "";
let aStatus = "";
let bStatus = "";
let cStatus = "";
let 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()
// );
});
});
});
});
});
});
}, (err) => {
console.log("Error: ", err);
return err;
});
}
fixSQL(incomingSQL) {
return new Promise((resolve, reject) => {
incomingSQL = incomingSQL.replace(/\'/g, "''");
//return ;
resolve(incomingSQL);
});
}
saveHistory(hOI) {
hOI = this.fixSQL(hOI).then((history) => {
var sSQL = "UPDATE reports SET history='" +
history +
"' WHERE sessionid='" +
this.theSessionID +
"'";
//console.log(sSQL);
this.database.executeSql(sSQL, []);
});
}
updateBattery(batteryLevel) {
var sSQL = "UPDATE reports SET batterystatus=" +
batteryLevel +
" WHERE sessionid='" +
this.theSessionID +
"'";
//console.log(sSQL);
this.database.executeSql(sSQL, []);
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "AVPU", avpu);
});
return;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", abc, abcVal, statusVal);
});
return;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", vital, vitalVal, statusVal);
});
return;
}
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(() => {
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;
}
saveWitnessed(witnessed) { }
toTitleCase(incoming) {
let outgoing = "";
//Check it's not a word in the reserved list
if (incoming !== "CPR" && incoming !== "AVPU" && incoming !== "AED") {
let firstChar = incoming.substr(0, 1).toUpperCase();
let restOfString = incoming.slice(1).toLowerCase();
outgoing = firstChar + restOfString;
}
else {
outgoing = incoming;
}
return outgoing;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", treatment, theTreatment.toUpperCase());
});
return;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Were shocks given?", shocks.toUpperCase());
});
return;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Was pulse restored?", pulse.toUpperCase());
});
return;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Was respiration restored?", resps.toUpperCase());
});
return;
}
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(() => {
// Removed streaming from LIVE updates, left to QueueManager
//this.streamData("C", "Was consciousness regained?", conc.toUpperCase());
});
return;
}
saveCasualty(casComplaint, casFName, casLName, casDOB, casAge, casGender, casHomeAddress, casFlight, casSeat, casAirport, casLastMeal, casAlcohol, casAllergyAnswer, casAllergyDetails, casMedicine, casMedicalHistory) {
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((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");
let 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='" +
this.theSessionID +
"'";
//console.log("internalSQL: " + internalSQL);
this.database.executeSql(internalSQL, []).then(() => {
//update the complaint on the report
var theSQL = "UPDATE reports SET complaint='" +
casComplaint +
"' WHERE sessionid='" +
this.theSessionID +
"'";
//console.log("The SQL from the update is: " + theSQL);
this.database.executeSql(theSQL, []).then(() => {
return;
});
return;
});
}
else {
//There is no patient saved; insert the details
//console.log("Inserting new details");
this.database
.executeSql("INSERT INTO casualtydetails (reportid, fname, lname, address, gender, dob, age, alcohol, allergies, allergydetails, medicinetaken, medhist, flight, seat, arrivalairport, lastmeal, detailsadded, deleted) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", [
this.theSessionID,
casFName,
casLName,
casHomeAddress,
casGender,
casDOB,
casAge,
casAlcohol,
casAllergyAnswer,
casAllergyDetails,
casMedicine,
casMedicalHistory,
casFlight,
casSeat,
casAirport,
casLastMeal,
theTime,
0,
])
.then(() => {
//update the complaint on the report
var theSQL = "UPDATE reports SET complaint='" +
casComplaint +
"' WHERE sessionid='" +
this.theSessionID +
"'";
//console.log("The SQL from the insert is: " + theSQL);
this.database.executeSql(theSQL, []).then(() => {
return;
});
return;
});
}
}, (err) => {
/*console.log(
"Error from saving casualty details: " + JSON.stringify(err)
);*/
return [];
});
}
clearSession() {
this.theSessionID = null;
}
getCasualtyDetails() {
this.theSQL =
"SELECT * FROM reports WHERE sessionid='" + this.theSessionID + "'";
//console.log("theSQL: ", this.theSQL);
this.database.executeSql(this.theSQL, []).then((data) => {
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
this.theCasComplaint = data.rows.item(i).complaint;
}
}
return;
}, (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((data) => {
let 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: this.theCasComplaint,
});
}
}
return casDetails;
}, (err) => {
//console.log("getCasualtyDetails error: " + JSON.stringify(err));
return [];
});
}
getCasualtyAge() {
this.theSQL =
"SELECT * FROM casualtydetails WHERE reportid='" +
this.theSessionID +
"'";
//console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then((data) => {
let 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;
}, (err) => {
//console.log("getCasAge error: " + JSON.stringify(err));
return [];
});
}
formatDateProperly(incoming) {
let theYear = incoming.substr(0, 4);
let theMonth = incoming.substr(5, 2);
let theDate = incoming.substr(8, 2);
let theHour = incoming.substr(11, 2);
let theMinute = incoming.substr(14, 2);
let theSecond = incoming.substr(17, 2);
let outgoing = theDate + "/" + theMonth + "/" + theYear + " ";
outgoing += theHour + ":" + theMinute + ":" + theSecond;
return outgoing;
}
formatDateNLG(incoming) {
let theYear = incoming.substr(0, 4);
let theMonth = incoming.substr(5, 2);
let theDate = incoming.substr(8, 2);
let theHour = incoming.substr(11, 2);
let theMinute = incoming.substr(14, 2);
let theSecond = incoming.substr(17, 2);
let outgoing = theHour + ":" + theMinute + " (" + theDate + "/";
outgoing += theMonth + "/" + theYear + ")";
return outgoing;
}
getATMISTAVPU() {
this.theSQL =
"SELECT * FROM reportdetail WHERE reportid='" +
this.theSessionID +
"' ORDER BY entrylogged";
//console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then((data) => {
let 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;
}, (err) => {
//console.log("getATMISTAVPU error: " + JSON.stringify(err));
return [];
});
}
getATMISTTOI() {
this.theSQL =
"SELECT * FROM reports WHERE sessionid='" +
this.theSessionID +
"' ORDER BY loggedat";
//console.log(this.theSQL);
return this.database.executeSql(this.theSQL, []).then((data) => {
let reportdetail = [];
if (data.rows.length > 0) {
var theProperTOI = this.formatDateProperly(data.rows.item(0).loggedat);
var theNLGTOI = this.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;
}, (err) => {
//console.log("getATMISTTOI error: " + JSON.stringify(err));
return [];
});
}
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((data) => {
let 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;
}, (err) => {
//console.log("getATMISTSigns error: " + JSON.stringify(err));
return [];
});
}
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((data) => {
let atmistSigns = [];
let 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;
}, (err) => {
//console.log("getATMISTSigns error: " + JSON.stringify(err));
return [];
});
}
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((data) => {
let 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;
}, (err) => {
//console.log("getATMISTTreatment error: " + JSON.stringify(err));
return [];
});
}
};
DatabaseService.ctorParameters = () => [
{ 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(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
*/
let GetlocationService = class GetlocationService {
constructor(geolocation) {
this.geolocation = geolocation;
this.myLat = 0;
this.myLong = 0;
}
getMyLocation() {
//First job, get my current GPS location
//console.log("Getting location");
return this.geolocation
.getCurrentPosition({ timeout: 1000 })
.then((resp) => {
//console.log("Getting here!");
this.myLat = resp.coords.latitude;
this.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);
this.myCoords = { theLAT: this.myLat, theLONG: this.myLong };
return this.myCoords;
})
.catch((e) => {
//console.log("Error from getMyLocation!");
//console.log(e.message);
this.myLat = 57.69778;
this.myLong = -3.987871;
//console.log("40:My Co-ords are: " + this.myLat + " | " + this.myLong);
//alert("40:My Co-ords are: " + this.myLat + " | " + this.myLong);
this.myCoords = { theLAT: this.myLat, theLONG: this.myLong };
return this.myCoords;
});
}
};
GetlocationService.ctorParameters = () => [
{ 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(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
*/
let AppGlobals = class AppGlobals {
constructor() {
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(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`.
const 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(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(err => 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-es2015.js.map