1 line
189 KiB
Plaintext
1 line
189 KiB
Plaintext
{"version":3,"sources":["webpack:///node_modules/basic-trend/dist/index.js","webpack:///src/app/components/avpu-swipe/avpu-swipe.component.html","webpack:///src/app/components/cps-confirm-button/cps-confirm-button.component.html","webpack:///src/app/components/cps-top-bottom/cps-top-bottom.component.html","webpack:///src/app/components/num-pad/num-pad.component.html","webpack:///src/app/components/vital-signs-bp/vital-signs-bp.component.html","webpack:///src/app/components/vital-signs/vital-signs.component.html","webpack:///src/app/home/home.page.html","webpack:///src/app/components/avpu-swipe/avpu-swipe.component.scss","webpack:///src/app/components/avpu-swipe/avpu-swipe.component.ts","webpack:///src/app/components/avpu-swipe/avpu-swipe.module.ts","webpack:///src/app/components/cps-confirm-button/cps-confirm-button.component.scss","webpack:///src/app/components/cps-confirm-button/cps-confirm-button.component.ts","webpack:///src/app/components/cps-confirm-button/cps-confirm-button.module.ts","webpack:///src/app/components/cps-top-bottom/cps-top-bottom.component.scss","webpack:///src/app/components/cps-top-bottom/cps-top-bottom.component.ts","webpack:///src/app/components/cps-top-bottom/cps-top-bottom.module.ts","webpack:///src/app/components/num-pad/num-pad.component.scss","webpack:///src/app/components/num-pad/num-pad.component.ts","webpack:///src/app/components/num-pad/num-pad.module.ts","webpack:///src/app/components/vital-signs-bp/vital-signs-bp.component.scss","webpack:///src/app/components/vital-signs-bp/vital-signs-bp.component.ts","webpack:///src/app/components/vital-signs-bp/vital-signs-bp.module.ts","webpack:///src/app/components/vital-signs/vital-signs.component.scss","webpack:///src/app/components/vital-signs/vital-signs.component.ts","webpack:///src/app/components/vital-signs/vital-signs.module.ts","webpack:///src/app/home/home-routing.module.ts","webpack:///src/app/home/home.module.ts","webpack:///src/app/home/home.page.scss","webpack:///src/app/home/home.page.ts"],"names":["Object","defineProperty","exports","value","trend","data","diff","increasing","decreasing","equals","map","item","index","array","difference","push","length","_default","AVPUSwipeComponent","setAction","avpuSlidesOpts","direction","initialSlide","height","avpuStateText","avpuState","avpuSlides","getActiveIndex","then","currentIndex","console","log","warn","emit","selector","template","AVPUSwipeComponentModule","imports","declarations","CpsConfirmButtonComponent","doConfirm","thisID","confirmMode","confirmBtn","confirmedBtn","confirmTick","imgSrc","status","buttonActive","watchFor","changes","hasOwnProperty","currentValue","CpsConfirmButtonComponentModule","CpsTopBottomComponent","updateAction","confirm2TopState","confirm2BottomState","dependsOn","doUpdateAction","config","topVal","bottomVal","toUpperCase","newAction","CpsTopBottomComponentModule","NumPadComponent","alertCtrl","vitalValue","dotVisible","slashVisible","longButton","units","Map","change","theUnit","vital","theMin","theMax","the2ndMin","the2ndMax","get","theValue","parseFloat","replace","create","header","subHeader","message","buttons","alert","present","indexOf","theSystolic","parseInt","split","theDiastolic","digit","substr","NumPadComponentModule","VitalSignsBpComponent","sysHistory","diaHistory","vitalTitle","imageID","vitalUnits","vitalType","vitalImage","vitalUnits2","visibleSecond","vitalTheme","theme","clearTimeout","timerId","timer","sequence","reading","currentTrend","trendClass","newReading","isFirstChange","splitVal","vital2Value","newSysHistory","timestamp","newDiaHistory","timeSince","history","vitalTextClass","checkVitals","vital2TextClass","vitalIconClass","recalculateTrend","doUpdate","setTimeout","updateTimer","VitalSignsBpComponentModule","VitalSignsComponent","onRequestUpdate","requestInput","sand","clearVitals","doRequestInput","padVisible","keyboardVis","hour","Math","floor","suffix","vitalSign","override","myHR","myBR","mySATS","mySys","myDia","myTEMP","output","assign","newHistory","VitalSignsComponentModule","routes","path","component","HomePageRoutingModule","forChild","HomePageModule","HomePage","emptyString","testString","boolTrue","boolFalse","topBottomConfig","hrConfig","brConfig","satsConfig","tempConfig","bpConfig","topBottomChainVal","blankVitalsReturnData","vitalsReturnData","brVitalsReturnData","satsVitalsReturnData","tempVitalsReturnData","bpVitalsReturnData","vitalRequested","e","testHR","newHRValue","Date","now","testBR","newBRValue","testSATS","newSATSValue","testTEMP","newTEMPValue","testBP","newBPValue","event"],"mappings":"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","file":"home-home-module-es5.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.trend = void 0;\n\nvar trend = function trend(data) {\n var diff = {\n increasing: [],\n decreasing: [],\n equals: []\n };\n data.map(function (item, index, array) {\n if (index > 0) {\n var difference = item - array[index - 1];\n if (difference === 0) diff.equals.push(difference);else if (difference > 0) diff.increasing.push(difference);else diff.decreasing.push(difference);\n }\n\n return item;\n });\n if (diff.increasing.length > diff.decreasing.length + diff.equals.length) return 1;\n if (diff.decreasing.length > diff.increasing.length + diff.equals.length) return -1;\n if (diff.equals.length > diff.increasing.length + diff.decreasing.length) return 0;\n return 0;\n};\n\nexports.trend = trend;\nvar _default = trend;\nexports[\"default\"] = _default;","export default \"<ion-slides [options]=\\\"avpuSlidesOpts\\\" #avpuSlides (ionSlideDidChange)=\\\"swipeChange($event)\\\">\\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>\";","export default \"<div class=\\\"cpsConfirmed\\\" [ngClass]=\\\"confirmMode\\\" (click)=\\\"doConfirmation()\\\">\\n <div class=\\\"{{confirmBtn}}\\\">CONFIRM?</div>\\n <div class=\\\"{{confirmedBtn}}\\\">CONFIRMED</div>\\n <img src=\\\"{{imgSrc}}\\\" class=\\\"proceedTick {{ confirmTick }}\\\" />\\n</div>\";","export default \"<div class=\\\"cpsButtons cpsTop selGreen {{ confirm2TopState }} textOnly\\\" (click)=\\\"clickTop()\\\">\\n <strong>{{ topLabel() }}</strong>\\n</div>\\n<div class=\\\"cpsButtons cpsBottom selRed {{ confirm2BottomState }} textOnly\\\" (click)=\\\"clickBottom()\\\">\\n <strong>{{ bottomLabel() }}</strong>\\n</div>\\n\";","export default \"<div class=\\\"myNumpad\\\">\\n <div class=\\\"overlay\\\" (click)=\\\"closeNumPad()\\\"></div>\\n <div class=\\\"numPadModal\\\">\\n <img\\n src=\\\"assets/imgs/close.png\\\"\\n class=\\\"closeButton\\\"\\n (click)=\\\"closeNumPad()\\\"\\n />\\n <div class=\\\"numPadValue\\\" [innerHtml]=\\\"vitalValue\\\"></div>\\n <div class=\\\"numPadUnit\\\" [innerHtml]=\\\"theUnit\\\"></div>\\n <div class=\\\"numPadHolder\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('1')\\\">\\n 1\\n </button>\\n </ion-col>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('2')\\\">\\n 2\\n </button>\\n </ion-col>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('3')\\\">\\n 3\\n </button>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('4')\\\">\\n 4\\n </button>\\n </ion-col>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('5')\\\">\\n 5\\n </button>\\n </ion-col>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('6')\\\">\\n 6\\n </button>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('7')\\\">\\n 7\\n </button>\\n </ion-col>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('8')\\\">\\n 8\\n </button>\\n </ion-col>\\n <ion-col>\\n <button ion-button class=\\\"numPadButton\\\" (click)=\\\"handleInput('9')\\\">\\n 9\\n </button>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"8\\\" *ngIf=\\\"!slashVisible && !dotVisible\\\">\\n <button\\n ion-button\\n class=\\\"numPadButton extendButton\\\"\\n (click)=\\\"handleInput('0')\\\"\\n >\\n 0\\n </button>\\n </ion-col>\\n <ion-col *ngIf=\\\"slashVisible || dotVisible\\\">\\n <button\\n ion-button\\n class=\\\"numPadButton {{ longButton }}\\\"\\n (click)=\\\"handleInput('0')\\\"\\n >\\n 0\\n </button>\\n </ion-col>\\n <ion-col *ngIf=\\\"slashVisible || dotVisible\\\">\\n <button\\n *ngIf=\\\"dotVisible\\\"\\n ion-button\\n class=\\\"numPadButton\\\"\\n (click)=\\\"handleInput('.')\\\"\\n >\\n .\\n </button>\\n <button\\n *ngIf=\\\"slashVisible\\\"\\n ion-button\\n class=\\\"numPadButton\\\"\\n (click)=\\\"handleInput('/')\\\"\\n >\\n /\\n </button>\\n </ion-col>\\n <ion-col size=\\\"4\\\">\\n <button\\n ion-button\\n class=\\\"numPadButton\\\"\\n (click)=\\\"handleInput('backspace')\\\"\\n >\\n <ion-icon name=\\\"backspace\\\"></ion-icon>\\n </button>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n <div class=\\\"rightButton\\\" (click)=\\\"emitEvent()\\\">\\n <img src=\\\"assets/imgs/proceedTick.png\\\" class=\\\"numPadTick\\\" />\\n </div>\\n </div>\\n</div>\\n\";","export default \"<div class=\\\"vitalInner\\\" [attr.data-theme]=\\\"vitalTheme\\\" (click)=\\\"requestReading()\\\">\\n <div [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"align--left vitalTitle\\\" [innerHtml]=\\\"vitalTitle\\\"></div>\\n\\n <ion-row>\\n <ion-col size=\\\"4\\\">\\n <div class=\\\"smallValsSys {{ vitalTextClass }}\\\">{{vitalUnits}}</div>\\n </ion-col>\\n <ion-col size=\\\"4\\\">\\n <div class=\\\"smallValsDia {{ vital2TextClass }}\\\">{{vitalUnits2}}</div>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"4\\\">\\n <div class=\\\"bpSys {{ vitalTextClass }}\\\" [innerHtml]=\\\"vitalValue\\\"></div>\\n </ion-col>\\n <ion-col size=\\\"4\\\">\\n <div class=\\\"bpDia {{ vital2TextClass }}\\\" [innerHtml]=\\\"vital2Value\\\"></div>\\n </ion-col>\\n </ion-row>\\n\\n <div class=\\\"hrImg\\\">\\n <img *ngIf=\\\"thisIcon()\\\" [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"{{ vitalIconClass }}\\\" [src]=\\\"thisIcon()\\\" />\\n </div>\\n\\n <div class=\\\"lowerPart\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col class=\\\"\\\" size=\\\"3\\\">\\n <img\\n [attr.data-theme]=\\\"vitalTheme\\\"\\n class=\\\"\\\"\\n style=\\\"vertical-align: text-bottom\\\"\\n [ngClass]=\\\"trendClass\\\"\\n src=\\\"assets/imgs/arrow-se.png\\\"\\n />\\n </ion-col>\\n <ion-col [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"timeSince\\\" style=\\\"vertical-align: bottom\\\" size=\\\"6\\\">\\n {{ timeSince }}\\n </ion-col>\\n <ion-col class=\\\"\\\" size=\\\"3\\\">\\n <img [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"badCloud\\\" style=\\\"vertical-align: text-bottom\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n</div>\\n\";","export default \"<div class=\\\"vitalInner\\\" [attr.data-theme]=\\\"vitalTheme\\\" (click)=\\\"requestReading()\\\">\\n <div [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"align--left vitalTitle\\\" [innerHtml]=\\\"vitalTitle\\\"></div>\\n <div [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"vitalValue {{ vitalTextClass }}\\\" [innerHtml]=\\\"vitalValue\\\"></div>\\n <div [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"vitalUnit {{ vitalTextClass }}\\\">{{ vitalUnits }}</div>\\n\\n <div class=\\\"hrImg\\\">\\n <img *ngIf=\\\"thisIcon()\\\" [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"{{ vitalIconClass }}\\\" [src]=\\\"thisIcon()\\\" />\\n </div>\\n\\n <div class=\\\"lowerPart\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col class=\\\"\\\" size=\\\"3\\\">\\n <img\\n [attr.data-theme]=\\\"vitalTheme\\\"\\n class=\\\"\\\"\\n style=\\\"vertical-align: text-bottom\\\"\\n [ngClass]=\\\"trendClass\\\"\\n src=\\\"assets/imgs/arrow-se.png\\\"\\n />\\n </ion-col>\\n <ion-col [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"timeSince\\\" style=\\\"vertical-align: bottom\\\" size=\\\"6\\\">\\n {{ timeSince }}\\n </ion-col>\\n <ion-col class=\\\"\\\" size=\\\"3\\\">\\n <img [attr.data-theme]=\\\"vitalTheme\\\" class=\\\"badCloud\\\" style=\\\"vertical-align: text-bottom\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n</div>\\n\";","export default \"<ion-header>\\n <ion-toolbar>\\n <ion-title>Aiber Test</ion-title>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content class=\\\"ion-padding-horizontal\\\">\\n <h1>Aiber Test Components</h1>\\n\\n <!--\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle>Component name</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row>\\n <ion-col>Stuff here</ion-col>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n-->\\n <app-num-pad *ngIf=\\\"padVisible\\\" [vital]=\\\"vitalRequested\\\" (change)=\\\"vitalCapture($event)\\\"></app-num-pad>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> vital-signs + num-pad chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"vitalHeaders\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"2\\\">\\n <app-vital-signs\\n [thisID]=\\\"'`BP`'\\\"\\n [config]=\\\"bpConfig\\\"\\n [newReading]=\\\"newBPValue\\\"\\n [theme]=\\\"vitalTheme\\\"\\n (onRequestUpdate)=\\\"captureBPVitalsUpdate($event)\\\"\\n (requestInput)=\\\"bpRequestInput($event)\\\"\\n ></app-vital-signs>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n <ion-row>\\n <ion-item>\\n <ion-label>New Reading</ion-label>\\n <ion-input [(ngModel)]=\\\"testBP\\\" type=\\\"input\\\" placeholder=\\\"36\\\"></ion-input>\\n <ion-button (click)=\\\"testSetBP()\\\">Set</ion-button>\\n </ion-item>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <ion-item>\\n <ion-label>Dark Mode</ion-label>\\n <ion-checkbox [(ngModel)]=\\\"vitalTheme\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n </ion-row>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>vitalTitle:</strong> {{tempVitalsReturnData.vitalTitle}}</p>\\n <p><strong>vitalType:</strong> {{tempVitalsReturnData.vitalType}}</p>\\n <p><strong>vitalUnits:</strong> {{tempVitalsReturnData.vitalUnits}}</p>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>imageID:</strong> {{tempVitalsReturnData.imageID}}</p>\\n <p><strong>reading:</strong> {{tempVitalsReturnData.reading}}</p>\\n <p><strong>timestamp:</strong> {{tempVitalsReturnData.timestamp}}</p>\\n <p><strong>vitalTheme:</strong> {{vitalTheme}}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote></blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> vital-signs-bp + num-pad chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"vitalHeaders\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"2\\\">\\n <app-vital-signs-bp\\n [thisID]=\\\"'`BP`'\\\"\\n [config]=\\\"bpConfig\\\"\\n [newReading]=\\\"newBPValue\\\"\\n [theme]=\\\"vitalTheme\\\"\\n (onRequestUpdate)=\\\"captureBPVitalsUpdate($event)\\\"\\n (requestInput)=\\\"bpRequestInput($event)\\\"\\n ></app-vital-signs-bp>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n <ion-row>\\n <ion-item>\\n <ion-label>New Reading</ion-label>\\n <ion-input [(ngModel)]=\\\"testBP\\\" type=\\\"input\\\" placeholder=\\\"36\\\"></ion-input>\\n <ion-button (click)=\\\"testSetBP()\\\">Set</ion-button>\\n </ion-item>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <ion-item>\\n <ion-label>Dark Mode</ion-label>\\n <ion-checkbox [(ngModel)]=\\\"vitalTheme\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n </ion-row>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>vitalTitle:</strong> {{bpVitalsReturnData.vitalTitle}}</p>\\n <p><strong>vitalType:</strong> {{bpVitalsReturnData.vitalType}}</p>\\n <p><strong>vitalUnits:</strong> {{bpVitalsReturnData.vitalUnits}}</p>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>imageID:</strong> {{bpVitalsReturnData.imageID}}</p>\\n <p><strong>reading:</strong> {{bpVitalsReturnData.reading}}</p>\\n <p><strong>timestamp:</strong> {{bpVitalsReturnData.timestamp}}</p>\\n <p><strong>vitalTheme:</strong> {{vitalTheme}}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote></blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> vital-signs + num-pad chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"vitalHeaders\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"2\\\">\\n <app-vital-signs\\n [thisID]=\\\"'HR'\\\"\\n [config]=\\\"hrConfig\\\"\\n [newReading]=\\\"newHRValue\\\"\\n [theme]=\\\"vitalTheme\\\"\\n (onRequestUpdate)=\\\"captureVitalsUpdate($event)\\\"\\n (requestInput)=\\\"vitalsRequestInput($event)\\\"\\n ></app-vital-signs>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n <ion-row>\\n <ion-item>\\n <ion-label>New Reading</ion-label>\\n <ion-input [(ngModel)]=\\\"testHR\\\" type=\\\"number\\\" placeholder=\\\"68\\\"></ion-input>\\n <ion-button (click)=\\\"testSetHR()\\\">Set</ion-button>\\n </ion-item>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <ion-item>\\n <ion-label>Dark Mode</ion-label>\\n <ion-checkbox [(ngModel)]=\\\"vitalTheme\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n </ion-row>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>vitalTitle:</strong> {{vitalsReturnData.vitalTitle}}</p>\\n <p><strong>vitalType:</strong> {{vitalsReturnData.vitalType}}</p>\\n <p><strong>vitalUnits:</strong> {{vitalsReturnData.vitalUnits}}</p>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>imageID:</strong> {{vitalsReturnData.imageID}}</p>\\n <p><strong>reading:</strong> {{vitalsReturnData.reading}}</p>\\n <p><strong>timestamp:</strong> {{vitalsReturnData.timestamp}}</p>\\n <p><strong>vitalTheme:</strong> {{vitalTheme}}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote></blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> vital-signs + num-pad chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"vitalHeaders\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"2\\\">\\n <app-vital-signs\\n [thisID]=\\\"'BR'\\\"\\n [config]=\\\"brConfig\\\"\\n [newReading]=\\\"newBRValue\\\"\\n [theme]=\\\"vitalTheme\\\"\\n (onRequestUpdate)=\\\"captureBRVitalsUpdate($event)\\\"\\n (requestInput)=\\\"vitalsRequestInput($event)\\\"\\n ></app-vital-signs>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n <ion-row>\\n <ion-item>\\n <ion-label>New Reading</ion-label>\\n <ion-input [(ngModel)]=\\\"testBR\\\" type=\\\"number\\\" placeholder=\\\"18\\\"></ion-input>\\n <ion-button (click)=\\\"testSetBR()\\\">Set</ion-button>\\n </ion-item>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <ion-item>\\n <ion-label>Dark Mode</ion-label>\\n <ion-checkbox [(ngModel)]=\\\"vitalTheme\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n </ion-row>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>vitalTitle:</strong> {{brVitalsReturnData.vitalTitle}}</p>\\n <p><strong>vitalType:</strong> {{brVitalsReturnData.vitalType}}</p>\\n <p><strong>vitalUnits:</strong> {{brVitalsReturnData.vitalUnits}}</p>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>imageID:</strong> {{brVitalsReturnData.imageID}}</p>\\n <p><strong>reading:</strong> {{brVitalsReturnData.reading}}</p>\\n <p><strong>timestamp:</strong> {{brVitalsReturnData.timestamp}}</p>\\n <p><strong>vitalTheme:</strong> {{vitalTheme}}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote></blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> vital-signs + num-pad chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"vitalHeaders\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"2\\\">\\n <app-vital-signs\\n [thisID]=\\\"'`SATS`'\\\"\\n [config]=\\\"satsConfig\\\"\\n [newReading]=\\\"newSATSValue\\\"\\n [theme]=\\\"vitalTheme\\\"\\n (onRequestUpdate)=\\\"captureSATSVitalsUpdate($event)\\\"\\n (requestInput)=\\\"vitalsRequestInput($event)\\\"\\n ></app-vital-signs>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n <ion-row>\\n <ion-item>\\n <ion-label>New Reading</ion-label>\\n <ion-input [(ngModel)]=\\\"testSATS\\\" type=\\\"number\\\" placeholder=\\\"96\\\"></ion-input>\\n <ion-button (click)=\\\"testSetSATS()\\\">Set</ion-button>\\n </ion-item>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <ion-item>\\n <ion-label>Dark Mode</ion-label>\\n <ion-checkbox [(ngModel)]=\\\"vitalTheme\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n </ion-row>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>vitalTitle:</strong> {{satsVitalsReturnData.vitalTitle}}</p>\\n <p><strong>vitalType:</strong> {{satsVitalsReturnData.vitalType}}</p>\\n <p><strong>vitalUnits:</strong> {{satsVitalsReturnData.vitalUnits}}</p>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>imageID:</strong> {{satsVitalsReturnData.imageID}}</p>\\n <p><strong>reading:</strong> {{satsVitalsReturnData.reading}}</p>\\n <p><strong>timestamp:</strong> {{satsVitalsReturnData.timestamp}}</p>\\n <p><strong>vitalTheme:</strong> {{vitalTheme}}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote></blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> vital-signs + num-pad chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"vitalHeaders\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"2\\\">\\n <app-vital-signs\\n [thisID]=\\\"'`TEMP`'\\\"\\n [config]=\\\"tempConfig\\\"\\n [newReading]=\\\"newTEMPValue\\\"\\n [theme]=\\\"vitalTheme\\\"\\n (onRequestUpdate)=\\\"captureTEMPVitalsUpdate($event)\\\"\\n (requestInput)=\\\"vitalsRequestInput($event)\\\"\\n ></app-vital-signs>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n <ion-row>\\n <ion-item>\\n <ion-label>New Reading</ion-label>\\n <ion-input [(ngModel)]=\\\"testTEMP\\\" type=\\\"number\\\" placeholder=\\\"36.6\\\"></ion-input>\\n <ion-button (click)=\\\"testSetTEMP()\\\">Set</ion-button>\\n </ion-item>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <ion-item>\\n <ion-label>Dark Mode</ion-label>\\n <ion-checkbox [(ngModel)]=\\\"vitalTheme\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n </ion-row>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>vitalTitle:</strong> {{tempVitalsReturnData.vitalTitle}}</p>\\n <p><strong>vitalType:</strong> {{tempVitalsReturnData.vitalType}}</p>\\n <p><strong>vitalUnits:</strong> {{tempVitalsReturnData.vitalUnits}}</p>\\n </ion-col>\\n\\n <ion-col size=\\\"3\\\" class=\\\"noLeftPadding noRowPadding\\\">\\n <p><strong>imageID:</strong> {{tempVitalsReturnData.imageID}}</p>\\n <p><strong>reading:</strong> {{tempVitalsReturnData.reading}}</p>\\n <p><strong>timestamp:</strong> {{tempVitalsReturnData.timestamp}}</p>\\n <p><strong>vitalTheme:</strong> {{vitalTheme}}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote></blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n\\n\\n\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-loop\\\"></span> app-cps-confirm-button</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"awakeHeight\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"4\\\">\\n <app-cps-confirm-button [thisID]=\\\"'confirmButtonInavtive'\\\" [watchFor]=\\\"emptyString\\\"></app-cps-confirm-button>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"4\\\">\\n <app-cps-confirm-button [thisID]=\\\"'confirmButtonActive'\\\" [watchFor]=\\\"testString\\\"></app-cps-confirm-button>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote>\\n <p><strong>@Output</strong> doConfirm</p>\\n <p><strong>@Input</strong> thisID</p>\\n <p><strong>@Input</strong> state</p>\\n <p><strong>@Input</strong> watchFor</p>\\n </blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-loop\\\"></span> app-cps-top-bottom</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"avpuABCHeight\\\">\\n <ion-col class=\\\"noLeftPadding\\\" size=\\\"4\\\">\\n <app-cps-top-bottom [thisID]=\\\"'cpsTopBottomOff'\\\" [config]=\\\"topBottomConfig\\\" [dependsOn]=\\\"boolFalse\\\"></app-cps-top-bottom>\\n </ion-col>\\n\\n <ion-col class=\\\"noLeftPadding\\\" size=\\\"4\\\">\\n <app-cps-top-bottom [thisID]=\\\"'cpsTopBottomOn'\\\" [config]=\\\"topBottomConfig\\\" [dependsOn]=\\\"boolTrue\\\"></app-cps-top-bottom>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote>\\n <p><strong>@Output</strong> updateAction</p>\\n <p><strong>@Input</strong> thisID</p>\\n <p><strong>@Input</strong> config - <em>Uses the CpsTopBottom model to specify values</em></p>\\n <p><strong>@Input</strong> dependsOn - <em>A boolean, usually connected to a previous confirm button</em></p>\\n </blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-link\\\"></span> app-cps-top-bottom - app-cps-confirm-button chain</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"avpuABCHeight\\\">\\n <ion-col class=\\\"noLeftPadding\\\" size=\\\"4\\\">\\n <app-cps-top-bottom\\n [thisID]=\\\"'cpsTopBottomOnChain'\\\"\\n [config]=\\\"topBottomConfig\\\"\\n [dependsOn]=\\\"boolTrue\\\"\\n (updateAction)=\\\"setTopBottomChain($event)\\\"\\n ></app-cps-top-bottom>\\n </ion-col>\\n\\n <ion-col size=\\\"4\\\">\\n <p>Settings</p>\\n\\n <p><strong>topBottomChainVal :</strong> {{ topBottomChainVal }}</p>\\n </ion-col>\\n </ion-row>\\n <ion-row class=\\\"awakeHeight\\\" style=\\\"margin-top: 0.5em\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" size=\\\"4\\\">\\n <app-cps-confirm-button [thisID]=\\\"'confirmButtonActiveChain'\\\" [watchFor]=\\\"topBottomChainVal\\\"></app-cps-confirm-button>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <ion-card>\\n <ion-card-header>\\n <ion-card-subtitle><span class=\\\"icons icons-loop\\\"></span> app-cps-top-bottom</ion-card-subtitle>\\n </ion-card-header>\\n <ion-card-content>\\n <ion-grid>\\n <ion-row class=\\\"avpuABCHeight\\\">\\n <ion-col class=\\\"noLeftPadding\\\" size=\\\"3\\\">\\n <app-avpu-swipe></app-avpu-swipe>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <blockquote>\\n <p><strong>@Output</strong> setAction</p>\\n </blockquote>\\n </ion-row>\\n </ion-grid>\\n </ion-card-content>\\n </ion-card>\\n\\n <!-- <app-cps-confirm-button [thisID]=\\\"'avpu'\\\" [watchFor]=\\\"paxstatus.avpu\\\" (doConfirm)=\\\"confirmAVPUV2($event)\\\"></app-cps-confirm-button>-->\\n</ion-content>\\n\";","export default \"ion-slides {\\n height: 270px !important;\\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.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.avpuA {\\n background-color: #00a350 !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: #ec1d27 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdnB1LXN3aXBlL2F2cHUtc3dpcGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2Nzcy9hdmF0YXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUFBO0FBQ0Y7O0FBRUE7RUFFRSxhQUFBO0FBQUY7O0FBSUE7RUFDRSxhQUFBO0VBRUEsd0JBQUE7RUFFQSx1QkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FBSEY7O0FDVEE7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFFQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7QURXRjs7QUNSQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUVBLFVBQUE7QURVRjs7QUNQQTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7QURVRjs7QUNOQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLGtCQUFBO0VBRUEsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0FEUUY7O0FDTEE7RUFDRSxpQkFBQTtBRFFGOztBQ0xBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FEUUY7O0FDSkE7RUFDRSxvQ0FBQTtBRE9GOztBQ0pBO0VBQ0Usb0NBQUE7QURPRjs7QUNKQTtFQUNFLG9DQUFBO0FET0Y7O0FDSkE7RUFDRSxvQ0FBQTtBRE9GIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hdnB1LXN3aXBlL2F2cHUtc3dpcGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tc2xpZGVzIHtcbiAgaGVpZ2h0OiAyNzBweCAhaW1wb3J0YW50O1xufVxuXG4uYXZwdUFCQ0hlaWdodCB7XG4gIC8vaGVpZ2h0OiAyMzBweDtcbiAgaGVpZ2h0OiAyNzBweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4uY3BzQnV0dG9uc0FWUFUge1xuICBwYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMjMwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNzBweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cblxuQGltcG9ydCAnLi4vLi4vY3NzL2F2YXRhcic7IiwiQGltcG9ydCBcInNyYy9hcHAvY3NzL2RlZmF1bHRDb2xvdXJzXCI7XG5cbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbi8vIEFWQVRBUiBTVFlMRVNcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblxuLmF2YXRhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICAvL2JvcmRlcjogMnB4IHNvbGlkIHllbGxvdztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLnN3aXBlVXBMZWZ0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogNCU7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5hdmF0YXJJbWFnZSB7XG4gIGhlaWdodDogMjAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uYXZwdVRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgYmx1ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMjA7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuXG4uYXZwdVRleHRTaW5nbGVMaW5lIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG59XG5cbi5zd2lwZVVwUmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDAlO1xuICByaWdodDogNyU7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5hdnB1QSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRncmVlbiAhaW1wb3J0YW50O1xufVxuXG4uYXZwdVYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZSAhaW1wb3J0YW50O1xufVxuXG4uYXZwdVAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlICFpbXBvcnRhbnQ7XG59XG5cbi5hdnB1VSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZWQgIWltcG9ydGFudDtcbn1cblxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gRU5EIE9GIEFWQVRBUiBTVFlMRVNcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiJdfQ== */\";","import { Component, OnInit, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { IonSlides } from '@ionic/angular';\n\n@Component({\n selector: 'app-avpu-swipe',\n templateUrl: './avpu-swipe.component.html',\n styleUrls: ['./avpu-swipe.component.scss']\n})\nexport class AVPUSwipeComponent implements OnInit {\n @ViewChild('avpuSlides', { static: true })\n avpuSlides: IonSlides;\n\n @Output() setAction: EventEmitter<string> = new EventEmitter<string>();\n\n avpuSlidesOpts = {\n direction: 'vertical',\n initialSlide: 0,\n height: 270\n };\n\n avpuStateText = ['ALERT', 'RESPONDS<br>TO VOICE', 'RESPONDS<br>TO PAIN', 'UNRESPONSIVE'];\n avpuState = 'ALERT';\n\n constructor() {}\n\n ngOnInit() {}\n\n swipeChange(): void {\n this.avpuSlides.getActiveIndex().then((currentIndex) => {\n console.log('AVPUSwipeComponent::currentIndex: ' + currentIndex);\n\n if (currentIndex > this.avpuStateText.length) {\n console.warn('AVPUSwipeComponent returned out of range');\n } else {\n this.avpuState = this.avpuStateText[currentIndex];\n this.setAction.emit(this.avpuState);\n }\n\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\nimport { AVPUSwipeComponent } from './avpu-swipe.component';\n\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule, RouterModule],\n declarations: [AVPUSwipeComponent],\n exports: [AVPUSwipeComponent]\n})\nexport class AVPUSwipeComponentModule {}\n","export default \".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.showModal {\\n display: block;\\n}\\n\\n.hideModal {\\n display: none;\\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.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.proceedTickDeselect {\\n opacity: 0.3;\\n}\\n\\n.proceedTick {\\n position: absolute;\\n top: 14px;\\n right: 15px;\\n height: 36px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY3NzL2Nwcy5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2Nwcy1jb25maXJtLWJ1dHRvbi9jcHMtY29uZmlybS1idXR0b24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2Nzcy9tb2RhbC5zY3NzIiwic3JjL2FwcC9jc3MvZGVzZWxlY3Quc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFFQSx3QkFBQTtFQUVBLHVCQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNERjs7QURJQTtFQUdFLGFBQUE7RUFFQSx1QkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FDSkY7O0FET0E7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQ0pGOztBRFFBO0VBQ0Usa0JBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNMRjs7QURRQTtFQUVFLDREQUFBO0FDTkY7O0FEYUE7RUFDRSxzQkFBQTtFQUVBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFFQSw0QkFBQTtFQUNBLDZCQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQ1pGOztBRGVBO0VBQ0Usc0JBQUE7RUFHQSxtQkFBQTtFQUNBLDREQUFBO0VBS0EsaUJBQUE7QUNsQkY7O0FDckRBO0VBQ0UsY0FBQTtBRHdERjs7QUNyREE7RUFDRSxhQUFBO0FEd0RGOztBQ3JEQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUdBLDZEQUFBO0VBQ0Esa0JBQUE7RUFDQSw0Q0FBQTtFQUNBLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSw4QkFBQTtFQUNBLGdCQUFBO0FEd0RGOztBRW5GQTtFQUNFLG9DQUFBO0FGc0ZGOztBRW5GQTtFQUNFLHdCQUFBO0FGc0ZGOztBRW5GQTtFQUVFLHlCQUFBO0FGcUZGOztBRWxGQTtFQUNFLG9DQUFBO0VBQ0EsaUNBQUE7QUZxRkY7O0FFakZBO0VBQ0UsWUFBQTtBRm9GRjs7QUFwR0E7RUFDRSxZQUFBO0FBdUdGOztBQXBHQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBdUdGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jcHMtY29uZmlybS1idXR0b24vY3BzLWNvbmZpcm0tYnV0dG9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNwc0J1dHRvbnNBVlBVIHtcbiAgcGFkZGluZzogMjBweDtcbiAgLy9oZWlnaHQ6IDIzMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjcwcHggIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4uY3BzQnV0dG9ucyB7XG4gIC8vcGFkZGluZzogMjBweDtcbiAgLy9oZWlnaHQ6IDExMXB4O1xuICBoZWlnaHQ6IDEzM3B4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG59XG5cbi5jcHNUb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDk4JTtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5jcHNCb3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDk4JTtcbn1cblxuLmNwc0J1dHRvbjFTdGFydCB7XG4gIC8vYmFja2dyb3VuZDogcmdiKDAsIDE4MCwgMjIwKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgMTM3ZGVnLFxuICAgICAgICAgICAgICAgICAgcmdiYSgwLCAxODAsIDIyMCwgMSkgMCUsXG4gICAgICAgICAgICAgICAgICByZ2JhKDE5LCAxNDQsIDIwNywgMSkgNTAlXG4gICk7XG59XG5cbi5jcHNDb25maXJtZWQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAvL2JhY2tncm91bmQtY29sb3I6ICM0ZDVlYWI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiA2NHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAvL3BhZGRpbmc6IDEycHggOHB4IDAgMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMTJweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDMwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmNwc0NvbmZpcm1lZENvbCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOSwgMTQ0LCAyMDcsIDEpO1xuICAvL2JhY2tncm91bmQtY29sb3I6IHJnYmEoMTksIDE0NCwgMjA3LCAxKTtcbiAgYmFja2dyb3VuZDogcmdiKDAsIDE4MCwgMjIwKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgMTM3ZGVnLFxuICAgICAgICAgICAgICAgICAgcmdiYSgwLCAxODAsIDIyMCwgMSkgMCUsXG4gICAgICAgICAgICAgICAgICByZ2JhKDE5LCAxNDQsIDIwNywgMSkgNTAlXG4gICk7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuIiwiQGltcG9ydCAnLi4vLi4vY3NzL2Nwcyc7XG5AaW1wb3J0ICcuLi8uLi9jc3MvbW9kYWwnO1xuQGltcG9ydCAnLi4vLi4vY3NzL2Rlc2VsZWN0JztcblxuLnByb2NlZWRUaWNrRGVzZWxlY3Qge1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbi5wcm9jZWVkVGljayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNHB4O1xuICByaWdodDogMTVweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG59XG4iLCIuc2hvd01vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5oaWRlTW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubW9kYWxfY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMi41JTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA4MCU7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmYgMCUsICNlOGU4ZTggMTAwJSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiAwJSwgI2U4ZThlOCAxMDAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiAwJSwgI2U4ZThlOCAxMDAlKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiAwIDJweCAzcHggcmdiYSg1MSwgNTEsIDUxLCAwLjM1KTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59IiwiLmRlc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xufVxuXG4uZGVzZWxlY3RUaWNrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZGVzZWxlY3RDb25maXJtZWQge1xuICAvL2NvbG9yOiAjODg4ODg4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdENvbnNjaW91c25lc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgLy9jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLnByb2NlZWRUaWNrRGVzZWxlY3Qge1xuICBvcGFjaXR5OiAwLjM7XG59XG4iXX0= */\";","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'app-cps-confirm-button',\n templateUrl: './cps-confirm-button.component.html',\n styleUrls: ['./cps-confirm-button.component.scss']\n})\nexport class CpsConfirmButtonComponent implements OnInit, OnChanges {\n @Output() doConfirm: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Input() thisID = '';\n @Input() state;\n\n @Input() watchFor: string;\n\n confirmMode = 'deselect deselectConfirmed ';\n confirmBtn = 'showModal';\n confirmedBtn = 'hideModal';\n confirmTick = 'deselectTick ';\n imgSrc = 'assets/imgs/proceedTick.png';\n status = false;\n\n buttonActive = false;\n\n constructor() {}\n\n ngOnInit() {\n console.log(`!! CpsConfirmButtonComponent::ngOnInit - ${this.thisID}`, this.watchFor);\n\n this.confirmBtn = 'showModal';\n this.confirmedBtn = 'hideModal';\n\n console.log(`!! CpsConfirmButtonComponent::ngOnInit - ${this.thisID} isnull?`);\n if (this.buttonActive) {\n this.confirmMode = 'cpsConfirmedCol';\n }\n\n console.log(`!! CpsConfirmButtonComponent::ngOnInit - ${this.thisID} buttonActive`, this.buttonActive);\n }\n\n doConfirmation(): void {\n if (this.status !== false || !this.buttonActive) {\n return;\n }\n console.log(`>> CpsConfirmButtonComponent::doConfirmation - ${this.thisID}`);\n\n this.status = true;\n\n this.confirmBtn = 'hideModal';\n this.confirmedBtn = 'showModal';\n this.confirmTick = '';\n\n console.log(`>> CpsConfirmButtonComponent::doConfirmation - ${this.thisID} emit`, this.status);\n this.doConfirm.emit(this.status);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log(`CpsConfirmButtonComponent::changes - ${this.thisID}`, changes);\n\n if (changes.hasOwnProperty('watchFor') && changes.watchFor.currentValue !== '') {\n this.buttonActive = true;\n this.confirmMode = 'cpsConfirmedCol';\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { CpsConfirmButtonComponent} from './cps-confirm-button.component';\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule, RouterModule],\n declarations: [CpsConfirmButtonComponent],\n exports: [CpsConfirmButtonComponent]\n})\nexport class CpsConfirmButtonComponentModule {}\n","export default \".textOnly {\\n padding-top: 38px;\\n font-size: 50px !important;\\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.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.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/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jcHMtdG9wLWJvdHRvbS9jcHMtdG9wLWJvdHRvbS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY3NzL3NlbENvbG91cnMuc2NzcyIsInNyYy9hcHAvY3NzL2RlZmF1bHRDb2xvdXJzLnNjc3MiLCJzcmMvYXBwL2Nzcy9jcHMuc2NzcyIsInNyYy9hcHAvY3NzL2Rlc2VsZWN0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBQTtFQUNBLDBCQUFBO0FBQ0Y7O0FDREE7RUFDRSx5QkNISztBRk9QOztBQ0RBO0VBQ0UseUJDTkc7QUZVTDs7QUNEQTtFQUNFLHlCQ1RJO0FGYU47O0FHZkE7RUFDRSxhQUFBO0VBRUEsd0JBQUE7RUFFQSx1QkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FIZ0JGOztBR2JBO0VBR0UsYUFBQTtFQUVBLHVCQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUhhRjs7QUdWQTtFQUNFLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FIYUY7O0FHVEE7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBSFlGOztBR1RBO0VBRUUsNERBQUE7QUhXRjs7QUdKQTtFQUNFLHNCQUFBO0VBRUEsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUVBLDRCQUFBO0VBQ0EsNkJBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FIS0Y7O0FHRkE7RUFDRSxzQkFBQTtFQUdBLG1CQUFBO0VBQ0EsNERBQUE7RUFLQSxpQkFBQTtBSERGOztBSXRFQTtFQUNFLG9DQUFBO0FKeUVGOztBSXRFQTtFQUNFLHdCQUFBO0FKeUVGOztBSXRFQTtFQUVFLHlCQUFBO0FKd0VGOztBSXJFQTtFQUNFLG9DQUFBO0VBQ0EsaUNBQUE7QUp3RUY7O0FJcEVBO0VBQ0UsWUFBQTtBSnVFRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3BzLXRvcC1ib3R0b20vY3BzLXRvcC1ib3R0b20uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dE9ubHkge1xuICBwYWRkaW5nLXRvcDogMzhweDtcbiAgZm9udC1zaXplOiA1MHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBpbXBvcnQgJy4uLy4uL2Nzcy9zZWxDb2xvdXJzJztcbkBpbXBvcnQgJy4uLy4uL2Nzcy9jcHMnO1xuQGltcG9ydCAnLi4vLi4vY3NzL2Rlc2VsZWN0JztcbiIsIkBpbXBvcnQgXCJzcmMvYXBwL2Nzcy9kZWZhdWx0Q29sb3Vyc1wiO1xuXG4uc2VsR3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG59XG5cbi5zZWxSZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xufVxuXG4uc2VsVm9pY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbn1cbiIsIiRncmVlbjojMDBhMzUwO1xuJHJlZDojZWMxZDI3O1xuJGJsdWU6IzM5NzJiNztcbiR5ZWxsb3c6I2ZkYzMwMDtcbiRvcmFuZ2U6I2Y0OTIyYzsiLCIuY3BzQnV0dG9uc0FWUFUge1xuICBwYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMjMwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNzBweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi5jcHNCdXR0b25zIHtcbiAgLy9wYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMTExcHg7XG4gIGhlaWdodDogMTMzcHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbn1cblxuLmNwc1RvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogOTglO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNwc0JvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogOTglO1xufVxuXG4uY3BzQnV0dG9uMVN0YXJ0IHtcbiAgLy9iYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAxMzdkZWcsXG4gICAgICAgICAgICAgICAgICByZ2JhKDAsIDE4MCwgMjIwLCAxKSAwJSxcbiAgICAgICAgICAgICAgICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTtcbn1cblxuLmNwc0NvbmZpcm1lZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogIzRkNWVhYjtcbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC8vcGFkZGluZzogMTJweCA4cHggMCAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY3BzQ29uZmlybWVkQ29sIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5LCAxNDQsIDIwNywgMSk7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOSwgMTQ0LCAyMDcsIDEpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAxMzdkZWcsXG4gICAgICAgICAgICAgICAgICByZ2JhKDAsIDE4MCwgMjIwLCAxKSAwJSxcbiAgICAgICAgICAgICAgICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG4iLCIuZGVzZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdFRpY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdENvbmZpcm1lZCB7XG4gIC8vY29sb3I6ICM4ODg4ODggIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NjY2NjYgIWltcG9ydGFudDtcbn1cblxuLmRlc2VsZWN0Q29uc2Npb3VzbmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAvL2NvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4ucHJvY2VlZFRpY2tEZXNlbGVjdCB7XG4gIG9wYWNpdHk6IDAuMztcbn1cbiJdfQ== */\";","import {Component, OnInit, Input, OnChanges, SimpleChanges, EventEmitter, Output} from '@angular/core';\nimport {CpsTopBottom} from '../../models/CpsTopBottom';\n\n@Component({\n selector: 'app-cps-top-bottom',\n templateUrl: './cps-top-bottom.component.html',\n styleUrls: ['./cps-top-bottom.component.scss']\n})\nexport class CpsTopBottomComponent implements OnInit, OnChanges {\n @Output() updateAction: EventEmitter<string> = new EventEmitter<string>();\n\n @Input() config: CpsTopBottom;\n @Input() dependsOn: boolean;\n @Input() thisID = '';\n\n confirm2TopState = 'deselect deselectConfirmed ';\n confirm2BottomState = 'deselect deselectConfirmed ';\n\n constructor() {}\n\n ngOnInit() {\n console.log(`CpsTopBottomComponent::Init - ${this.thisID}`, this.dependsOn);\n }\n\n clickTop(): void {\n if (this.dependsOn === false) {\n return;\n }\n console.log('Top clicked');\n this.confirm2TopState = '';\n this.confirm2BottomState = 'deselect ';\n this.doUpdateAction(this.config.topVal);\n }\n\n clickBottom(): void {\n if (this.dependsOn === false) {\n return;\n }\n console.log('Bottom clicked');\n this.confirm2TopState = 'deselect ';\n this.confirm2BottomState = '';\n this.doUpdateAction(this.config.bottomVal);\n }\n\n topLabel(): string {\n return this.config.topVal.toUpperCase();\n }\n\n bottomLabel(): string {\n return this.config.bottomVal.toUpperCase();\n }\n\n doUpdateAction(newAction: string) {\n this.updateAction.emit(newAction);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log(`CpsTopBottomComponent::changes - ${this.thisID}`, changes);\n\n if (changes.hasOwnProperty('dependsOn') && changes.dependsOn.currentValue === true) {\n this.confirm2TopState = 'deselect ';\n this.confirm2BottomState = 'deselect ';\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\nimport {CpsTopBottomComponent} from './cps-top-bottom.component';\n\n\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule, RouterModule],\n declarations: [CpsTopBottomComponent],\n exports: [CpsTopBottomComponent]\n})\nexport class CpsTopBottomComponentModule {}\n","export default \".overlay {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 9 !important;\\n opacity: 0.8;\\n background-color: #333333;\\n}\\n\\nion-col {\\n width: 76.67px !important;\\n}\\n\\n.numPadModal {\\n position: absolute;\\n background-color: #e8e8e8;\\n top: 173px !important;\\n left: 310px !important;\\n width: 320px !important;\\n height: 382px !important;\\n text-align: center !important;\\n padding-top: 15px;\\n z-index: 9999;\\n font-family: \\\"oswaldregular\\\" !important;\\n}\\n\\n.numPadModal h1 {\\n font-family: \\\"oswaldregular\\\" !important;\\n}\\n\\n.numPadHolder {\\n position: absolute;\\n top: 60px;\\n left: 0px;\\n width: 240px;\\n padding: 0 !important;\\n}\\n\\n.numPadValue {\\n border: 1px solid #555656;\\n border-right: 1px solid #e8e8e8 !important;\\n width: 111px;\\n position: absolute;\\n top: 10px;\\n left: 9px;\\n padding: 4px 2px 0 5px;\\n height: 50px;\\n font-size: 26px;\\n text-align: right !important;\\n color: #555656 !important;\\n}\\n\\n.numPadUnit {\\n position: absolute;\\n top: 10px;\\n right: 90px;\\n width: 111px;\\n height: 50px;\\n border: 1px solid #555656;\\n border-left: 1px solid #e8e8e8 !important;\\n text-align: left;\\n padding: 4px 0 0 2px;\\n font-size: 26px;\\n color: #555656;\\n}\\n\\n.numPadHolder .col {\\n padding-right: 0 !important;\\n}\\n\\n.numPadButton {\\n width: 70px !important;\\n height: 70px !important;\\n font-size: 22px;\\n border-radius: 0 !important;\\n background-color: #00a350;\\n color: white;\\n margin-bottom: -2px;\\n}\\n\\n.extendButton {\\n width: 147px !important;\\n}\\n\\n.rightButton {\\n position: absolute;\\n right: 10px;\\n top: 69px;\\n width: 70px;\\n height: 305px;\\n background-color: #00a350;\\n color: white;\\n font-size: 22px;\\n padding: 120px 0 0 0;\\n}\\n\\n.numPadTick {\\n position: absolute;\\n top: 134px;\\n right: 17px;\\n height: 36px;\\n}\\n\\n.wideButton {\\n width: 160px !important;\\n font-family: \\\"oswaldregular\\\" !important;\\n border-radius: 0 !important;\\n}\\n\\n.m30 {\\n margin-right: 30px;\\n}\\n\\n.numValue {\\n position: relative;\\n margin: 20px auto 0 auto;\\n text-align: left !important;\\n width: 420px;\\n}\\n\\n.text-input {\\n margin: 4px 8px !important;\\n text-align: center !important;\\n}\\n\\n.numValueInput {\\n position: absolute !important;\\n font-size: 20px;\\n width: 250px;\\n height: 42px;\\n padding-top: 6px;\\n font-family: \\\"oswaldregular\\\" !important;\\n}\\n\\n.numValueInputBox {\\n position: absolute !important;\\n left: 260px;\\n width: 100px;\\n border: 1px solid #555656;\\n text-align: center !important;\\n font-size: 20px;\\n padding: 0 !important;\\n margin: 0;\\n height: 42px !important;\\n font-family: \\\"oswaldregular\\\" !important;\\n}\\n\\n.okButton {\\n position: absolute;\\n right: 0;\\n top: 0;\\n margin: 0;\\n height: 42px;\\n font-family: \\\"oswaldregular\\\" !important;\\n border-radius: 0 !important;\\n}\\n\\n.closeButton {\\n position: absolute;\\n top: 10px;\\n right: 10px;\\n height: 32px;\\n width: 32px;\\n}\\n\\n.hidePad {\\n visibility: hidden;\\n}\\n\\n.showPad {\\n visibility: visible;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9udW0tcGFkL251bS1wYWQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSx5QkFBQTtBQUNGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtFQUNBLHdCQUFBO0VBQ0EsNkJBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSx1Q0FBQTtBQUNGOztBQUVBO0VBQ0UsdUNBQUE7QUFDRjs7QUFFQTtFQUVFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EscUJBQUE7QUFBRjs7QUFHQTtFQUNFLHlCQUFBO0VBQ0EsMENBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSw0QkFBQTtFQUNBLHlCQUFBO0FBQUY7O0FBR0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtFQUNBLHlDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FBQUY7O0FBR0E7RUFDRSwyQkFBQTtBQUFGOztBQUdBO0VBQ0Usc0JBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0FBQUY7O0FBR0E7RUFDRSx1QkFBQTtBQUFGOztBQUdBO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0FBQUY7O0FBR0E7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQUFGOztBQUlBO0VBQ0UsdUJBQUE7RUFDQSx1Q0FBQTtFQUNBLDJCQUFBO0FBREY7O0FBSUE7RUFDRSxrQkFBQTtBQURGOztBQUlBO0VBQ0Usa0JBQUE7RUFDQSx3QkFBQTtFQUVBLDJCQUFBO0VBQ0EsWUFBQTtBQUZGOztBQUtBO0VBQ0UsMEJBQUE7RUFDQSw2QkFBQTtBQUZGOztBQUtBO0VBQ0UsNkJBQUE7RUFFQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLHVDQUFBO0FBSEY7O0FBTUE7RUFDRSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSw2QkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLFNBQUE7RUFDQSx1QkFBQTtFQUNBLHVDQUFBO0FBSEY7O0FBTUE7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSx1Q0FBQTtFQUNBLDJCQUFBO0FBSEY7O0FBTUE7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7QUFIRjs7QUFNQTtFQUNFLGtCQUFBO0FBSEY7O0FBTUE7RUFDRSxtQkFBQTtBQUhGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9udW0tcGFkL251bS1wYWQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiA5ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMztcbn1cblxuaW9uLWNvbCB7XG4gIHdpZHRoOiA3Ni42N3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5udW1QYWRNb2RhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbiAgdG9wOiAxNzNweCAhaW1wb3J0YW50O1xuICBsZWZ0OiAzMTBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMzIwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzODJweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGZvbnQtZmFtaWx5OiBcIm9zd2FsZHJlZ3VsYXJcIiAhaW1wb3J0YW50O1xufVxuXG4ubnVtUGFkTW9kYWwgaDEge1xuICBmb250LWZhbWlseTogXCJvc3dhbGRyZWd1bGFyXCIgIWltcG9ydGFudDtcbn1cblxuLm51bVBhZEhvbGRlciB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNjBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMjQwcHg7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLm51bVBhZFZhbHVlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU1NTY1NjtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2U4ZThlOCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTExcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICBsZWZ0OiA5cHg7XG4gIHBhZGRpbmc6IDRweCAycHggMCA1cHg7XG4gIGhlaWdodDogNTBweDtcbiAgZm9udC1zaXplOiAyNnB4O1xuICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xufVxuXG4ubnVtUGFkVW5pdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogOTBweDtcbiAgd2lkdGg6IDExMXB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1NTU2NTY7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U4ZThlOCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiA0cHggMCAwIDJweDtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBjb2xvcjogIzU1NTY1Njtcbn1cblxuLm51bVBhZEhvbGRlciAuY29sIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ubnVtUGFkQnV0dG9uIHtcbiAgd2lkdGg6IDcwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA3MHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMzUwO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1ib3R0b206IC0ycHg7XG59XG5cbi5leHRlbmRCdXR0b24ge1xuICB3aWR0aDogMTQ3cHggIWltcG9ydGFudDtcbn1cblxuLnJpZ2h0QnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTBweDtcbiAgdG9wOiA2OXB4O1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiAzMDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmc6IDEyMHB4IDAgMCAwO1xufVxuXG4ubnVtUGFkVGljayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMzRweDtcbiAgcmlnaHQ6IDE3cHg7XG4gIGhlaWdodDogMzZweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4ud2lkZUJ1dHRvbiB7XG4gIHdpZHRoOiAxNjBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJvc3dhbGRyZWd1bGFyXCIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuXG4ubTMwIHtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xufVxuXG4ubnVtVmFsdWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMjBweCBhdXRvIDAgYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgd2lkdGg6IDQyMHB4O1xufVxuXG4udGV4dC1pbnB1dCB7XG4gIG1hcmdpbjogNHB4IDhweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLm51bVZhbHVlSW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIGZvbnQtZmFtaWx5OiBcIm9zd2FsZHJlZ3VsYXJcIiAhaW1wb3J0YW50O1xufVxuXG4ubnVtVmFsdWVJbnB1dEJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAyNjBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNTU1NjU2O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiA0MnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIm9zd2FsZHJlZ3VsYXJcIiAhaW1wb3J0YW50O1xufVxuXG4ub2tCdXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBmb250LWZhbWlseTogXCJvc3dhbGRyZWd1bGFyXCIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuXG4uY2xvc2VCdXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG59XG5cbi5oaWRlUGFkIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2hvd1BhZCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4iXX0= */\";","/**\n * v1.0.0 - 22/09/2020 - FIRST RELEASE\n * v1.0.1 - 30/09/2020 - Patched after first test cycle\n * v1.0.2 - 06/11/2020 - Patched after User Validation\n */\n\nimport { AlertController } from '@ionic/angular';\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-num-pad',\n templateUrl: './num-pad.component.html',\n styleUrls: ['./num-pad.component.scss']\n})\nexport class NumPadComponent implements OnInit {\n vitalValue = '';\n theUnit: string;\n theMax: number;\n theMin: number;\n the2ndMax: number;\n the2ndMin: number;\n dotVisible = true;\n slashVisible = false;\n longButton = '';\n\n units = new Map([\n ['BPM', 'Heart Rate'],\n ['BrPM', 'Respiratory Rate'],\n ['%', 'Oxygen Saturation'],\n ['mmHg', 'Blood Pressure'],\n ['<sup>o</sup>C', 'Body Temperature']\n ]);\n\n @Input()\n vital: string;\n\n @Output()\n change: EventEmitter<string> = new EventEmitter<string>();\n\n constructor(private alertCtrl: AlertController) {}\n\n // comp-numpad-vitals-check\n // This section checks to ensure that the\n // values supplied for all vital signs\n // are within predefined ranges and alerts\n // the user if they are not. The user must then\n // re-enter the vital sign value.\n\n ngOnInit() {\n this.theUnit = this.vital;\n console.log(this.theUnit);\n switch (this.theUnit) {\n case 'BPM':\n this.dotVisible = false;\n this.slashVisible = false;\n this.theMin = 20;\n this.theMax = 240;\n break;\n\n case 'BrPM':\n this.dotVisible = false;\n this.slashVisible = false;\n this.theMin = 0;\n this.theMax = 99;\n break;\n\n case '%':\n this.dotVisible = false;\n this.slashVisible = false;\n this.theMin = 50;\n this.theMax = 100;\n break;\n\n case 'mmHg':\n this.dotVisible = false;\n this.slashVisible = true;\n this.theMin = 20;\n this.the2ndMin = 20;\n this.theMax = 300;\n this.the2ndMax = 200;\n break;\n\n case '<sup>o</sup>C':\n this.dotVisible = true;\n this.slashVisible = false;\n this.theMin = 18;\n this.theMax = 45;\n break;\n\n default:\n this.dotVisible = true;\n this.slashVisible = false;\n break;\n }\n }\n\n async emitEvent() {\n // check and handle over/under value entries\n console.log(`theEnglish should have been ${this.units.get(this.theUnit)}`);\n const theValue = parseFloat(this.vitalValue.replace('<sup>.</sup>', '.'));\n console.log(theValue);\n if (!theValue) {\n const alert = await this.alertCtrl.create({\n header: 'Alert',\n subHeader: `You must enter a value for ${this.units.get(this.theUnit)}`,\n message: `${this.units.get(this.theUnit)} cannot be empty.`,\n buttons: ['Correct entry']\n });\n await alert.present();\n this.vitalValue = '';\n return;\n }\n if (this.theUnit !== 'mmHg') {\n // Not BP, so just check one set of values\n if (theValue < this.theMin || theValue > this.theMax) {\n // Fire warning\n const alert = await this.alertCtrl.create({\n header: 'Alert',\n subHeader: `${this.units.get(this.theUnit)} Out of range`,\n message: `${this.units.get(this.theUnit)} must be between ${this.theMin}${this.theUnit} and ${this.theMax}${this.theUnit}`,\n buttons: ['Correct entry']\n });\n await alert.present();\n this.vitalValue = '';\n return;\n } else {\n this.change.emit(this.vitalValue);\n }\n } else {\n // Check BP entries\n // Split into systolic and diastolic values\n if (this.vitalValue.indexOf('/') === -1) {\n // No pressure separator has been supplied\n const alert = await this.alertCtrl.create({\n header: 'Alert',\n subHeader: `${this.units.get(this.theUnit)} missing a value`,\n message: 'Blood pressure must be entered as sys/dia. Enter two values separated by the slash (/)',\n buttons: ['Correct entry']\n });\n await alert.present();\n this.vitalValue = '';\n return;\n }\n const theSystolic = parseInt(this.vitalValue.split('/')[0], 10);\n const theDiastolic = parseInt(this.vitalValue.split('/')[1], 10);\n if (theSystolic < this.theMin || theSystolic > this.theMax) {\n // Fire Systolic warning\n const alert = await this.alertCtrl.create({\n header: 'Alert',\n subHeader: `${this.units.get(this.theUnit)} Out of range`,\n message: `Systolic blood pressure must be between ${this.theMin}${this.theUnit} and ${this.theMax}${this.theUnit}`,\n buttons: ['Correct entry']\n });\n await alert.present();\n this.vitalValue = '';\n return;\n } else if (theDiastolic < this.the2ndMin || theDiastolic > this.the2ndMax) {\n // Fire Diastolic warning\n const alert = await this.alertCtrl.create({\n header: 'Alert',\n subHeader: `${this.units.get(this.theUnit)} Out of range`,\n message: `Diastolic blood pressure must be between ${this.the2ndMin}${this.theUnit} and ${this.the2ndMax}${this.theUnit}`,\n buttons: ['Correct entry']\n });\n await alert.present();\n this.vitalValue = '';\n return;\n } else {\n this.change.emit(this.vitalValue);\n }\n }\n }\n\n handleInput(digit: string) {\n if (digit !== 'backspace') {\n if (digit === '.') {\n this.vitalValue += `<sup>${digit}</sup>`;\n } else {\n this.vitalValue += digit;\n }\n return;\n } else {\n // handle backspace\n if (this.vitalValue !== '') {\n this.vitalValue = this.vitalValue.substr(0, this.vitalValue.length - 1);\n return;\n } else {\n this.vitalValue = '';\n return;\n }\n }\n }\n\n closeNumPad() {\n this.change.emit('closePad');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\nimport { NumPadComponent } from './num-pad.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, IonicModule, RouterModule],\n declarations: [NumPadComponent],\n exports: [NumPadComponent]\n})\nexport class NumPadComponentModule {}\n","export default \".vitalHeaders {\\n height: 150px;\\n}\\n\\n.vitalTitle {\\n text-transform: uppercase;\\n width: 70%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: clip;\\n letter-spacing: 1px;\\n margin-top: -12px;\\n}\\n\\n.vitalTitle[data-theme=dark] {\\n text-transform: uppercase;\\n color: lightgrey;\\n}\\n\\n.Normal[data-theme=dark] {\\n color: lightgrey;\\n}\\n\\n.icon-Normal[data-theme=dark] {\\n filter: invert(100%);\\n}\\n\\n.align--left {\\n text-align: left;\\n padding-left: 6px !important;\\n}\\n\\n.align--right {\\n text-align: right;\\n padding-right: 14px !important;\\n}\\n\\n.align--bottom {\\n vertical-align: bottom !important;\\n}\\n\\n.lowerPart {\\n position: absolute;\\n bottom: 0;\\n width: 100%;\\n}\\n\\n.vitalInner {\\n padding: 12px 0 0 0 !important;\\n height: 150px;\\n background: linear-gradient(180deg, #eaeaea 0%, #ffffff 20%, #ffffff 80%, #eaeaea 100%);\\n font-family: \\\"bebas\\\", serif;\\n font-size: 20px;\\n font-weight: bold;\\n letter-spacing: 2px;\\n}\\n\\n.vitalInner[data-theme=dark] {\\n padding: 12px 0 0 0 !important;\\n height: 150px;\\n background: linear-gradient(180deg, #212121 0%, #030365 50%, #212121 100%);\\n font-family: \\\"bebas\\\", serif;\\n font-size: 20px;\\n font-weight: bold;\\n letter-spacing: 2px;\\n}\\n\\n.timeSince {\\n font-size: 75%;\\n letter-spacing: -1px;\\n}\\n\\n.timeSince[data-theme=dark] {\\n font-size: 75%;\\n letter-spacing: -1px;\\n color: lightgrey;\\n}\\n\\n.vitalValue {\\n position: absolute;\\n top: 27px;\\n left: 10px;\\n width: 90%;\\n height: 36px;\\n text-align: left;\\n font-size: 36px;\\n}\\n\\n.vitalValueBP {\\n position: absolute;\\n top: 15px;\\n left: 10px;\\n width: 90%;\\n height: 36px;\\n text-align: left;\\n font-size: 36px;\\n}\\n\\n.vitalUnit {\\n position: absolute;\\n bottom: 44px;\\n left: 10px;\\n font-size: 32px !important;\\n}\\n\\n.vitalUnitBP {\\n position: absolute;\\n bottom: 44px;\\n left: 80px;\\n font-size: 32px !important;\\n}\\n\\n.hrImg {\\n position: absolute;\\n top: 5px;\\n right: 15px;\\n width: 25%;\\n height: 25%;\\n}\\n\\n.hrBluetooth {\\n position: absolute;\\n top: 5px;\\n right: 10px;\\n width: 12%;\\n height: 12%;\\n}\\n\\n.vitalToFront {\\n z-index: 110000 !important;\\n}\\n\\n.OK {\\n color: #00a350;\\n}\\n\\n.Warn,\\n.WARN {\\n color: #fdc300;\\n}\\n\\n.NotOK {\\n color: #ec1d27;\\n}\\n\\n.img15 {\\n width: 15%;\\n height: 15%;\\n}\\n\\n.img20 {\\n width: 20%;\\n height: 20%;\\n}\\n\\n.trendUp {\\n transform: rotate(-90deg);\\n}\\n\\n.trendFlat {\\n transform: rotate(-45deg);\\n}\\n\\n.trendUp[data-theme=dark] {\\n transform: rotate(-90deg);\\n filter: invert(100%);\\n}\\n\\n.trendFlat[data-theme=dark] {\\n transform: rotate(-45deg);\\n filter: invert(100%);\\n}\\n\\n.trendDown[data-theme=dark] {\\n filter: invert(100%);\\n}\\n\\n.badCloud {\\n content: url('badcloud.png');\\n}\\n\\n.badCloud[data-theme=dark] {\\n content: url('badcloud.png');\\n filter: invert(100%);\\n}\\n\\n.goodCloud {\\n content: url('goodcloud.png');\\n}\\n\\n._PB {\\n border: 1px solid magenta;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy92aXRhbC1zaWducy1icC92aXRhbC1zaWducy1icC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY3NzL2RlZmF1bHRDb2xvdXJzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxhQUFBO0FBREY7O0FBSUE7RUFDRSx5QkFBQTtFQUNBLFVBQUE7RUFBVSxtQkFBQTtFQUFvQixnQkFBQTtFQUFpQixtQkFBQTtFQUMvQyxtQkFBQTtFQUNBLGlCQUFBO0FBRUY7O0FBQ0E7RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0FBRUY7O0FBQ0E7RUFDRSxnQkFBQTtBQUVGOztBQUNBO0VBQ0Usb0JBQUE7QUFFRjs7QUFFRTtFQUNFLGdCQUFBO0VBQ0EsNEJBQUE7QUFDSjs7QUFFRTtFQUNFLGlCQUFBO0VBQ0EsOEJBQUE7QUFBSjs7QUFHRTtFQUNFLGlDQUFBO0FBREo7O0FBS0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0FBRkY7O0FBS0E7RUFDRSw4QkFBQTtFQUNBLGFBQUE7RUFDQSx1RkFBQTtFQUVBLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7QUFIRjs7QUFNQTtFQUNFLDhCQUFBO0VBQ0EsYUFBQTtFQUNBLDBFQUFBO0VBRUEsMkJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtBQUpGOztBQU9BO0VBQ0UsY0FBQTtFQUNBLG9CQUFBO0FBSkY7O0FBT0E7RUFDRSxjQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtBQUpGOztBQU9BO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FBSkY7O0FBT0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUFKRjs7QUFPQTtFQUNFLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSwwQkFBQTtBQUpGOztBQU9BO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLDBCQUFBO0FBSkY7O0FBT0E7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QUFKRjs7QUFRQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBQUxGOztBQVNBO0VBQ0UsMEJBQUE7QUFORjs7QUFTQTtFQUNFLGNDMUlLO0FEb0lQOztBQVNBOztFQUVFLGNDNUlNO0FEc0lSOztBQVNBO0VBQ0UsY0NsSkc7QUQ0SUw7O0FBU0E7RUFDRSxVQUFBO0VBQ0EsV0FBQTtBQU5GOztBQVNBO0VBQ0UsVUFBQTtFQUNBLFdBQUE7QUFORjs7QUFTQTtFQUVFLHlCQUFBO0FBTkY7O0FBU0E7RUFFRSx5QkFBQTtBQU5GOztBQVlBO0VBRUUseUJBQUE7RUFDQSxvQkFBQTtBQVRGOztBQVlBO0VBRUUseUJBQUE7RUFDQSxvQkFBQTtBQVRGOztBQVlBO0VBQ0Usb0JBQUE7QUFURjs7QUFZQTtFQUNFLDRCQUFBO0FBVEY7O0FBWUE7RUFDRSw0QkFBQTtFQUNBLG9CQUFBO0FBVEY7O0FBWUE7RUFDRSw2QkFBQTtBQVRGOztBQVlBO0VBQ0UseUJBQUE7QUFURiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdml0YWwtc2lnbnMtYnAvdml0YWwtc2lnbnMtYnAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi9jc3MvZGVmYXVsdENvbG91cnMnO1xuXG4udml0YWxIZWFkZXJzIHtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cblxuLnZpdGFsVGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDo3MCU7d2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW4gO3RleHQtb3ZlcmZsb3c6IGNsaXA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIG1hcmdpbi10b3A6LTEycHg7XG59XG5cbi52aXRhbFRpdGxlW2RhdGEtdGhlbWU9J2RhcmsnXSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiBsaWdodGdyZXk7XG59XG5cbi5Ob3JtYWxbZGF0YS10aGVtZT0nZGFyayddIHtcbiAgY29sb3I6IGxpZ2h0Z3JleTtcbn1cblxuLmljb24tTm9ybWFsW2RhdGEtdGhlbWU9J2RhcmsnXSB7XG4gIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xufVxuXG4uYWxpZ24ge1xuICAmLS1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLS1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogMTRweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi0tYm90dG9tIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmxvd2VyUGFydCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnZpdGFsSW5uZXIge1xuICBwYWRkaW5nOiAxMnB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTUwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYigyMzQsIDIzNCwgMjM0KSAwJSwgI2ZmZmZmZiAyMCUsICNmZmZmZmYgODAlLCByZ2IoMjM0LCAyMzQsIDIzNCkgMTAwJSk7XG5cbiAgZm9udC1mYW1pbHk6ICdiZWJhcycsIHNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xufVxuXG4udml0YWxJbm5lcltkYXRhLXRoZW1lPSdkYXJrJ10ge1xuICBwYWRkaW5nOiAxMnB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTUwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyMTIxMjEgMCUsICMwMzAzNjUgNTAlLCAjMjEyMTIxIDEwMCUpO1xuXG4gIGZvbnQtZmFtaWx5OiAnYmViYXMnLCBzZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbn1cblxuLnRpbWVTaW5jZSB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsZXR0ZXItc3BhY2luZzogLTFweDtcbn1cblxuLnRpbWVTaW5jZVtkYXRhLXRoZW1lPSdkYXJrJ10ge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gIGNvbG9yOiBsaWdodGdyZXk7XG59XG5cbi52aXRhbFZhbHVlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI3cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogMzZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuXG4udml0YWxWYWx1ZUJQIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogMzZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuXG4udml0YWxVbml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDQ0cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMzJweCAhaW1wb3J0YW50O1xufVxuXG4udml0YWxVbml0QlAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNDRweDtcbiAgbGVmdDogODBweDtcbiAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ockltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1cHg7XG4gIHJpZ2h0OiAxNXB4O1xuICB3aWR0aDogMjUlO1xuICBoZWlnaHQ6IDI1JTtcbiAgLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2Fzc2V0cy9pbWdzL2hyLnBuZycpO1xufVxuXG4uaHJCbHVldG9vdGgge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICByaWdodDogMTBweDtcbiAgd2lkdGg6IDEyJTtcbiAgaGVpZ2h0OiAxMiU7XG4gIC8vYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9hc3NldHMvaW1ncy9oci5wbmcnKTtcbn1cblxuLnZpdGFsVG9Gcm9udCB7XG4gIHotaW5kZXg6IDExMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uT0sge1xuICBjb2xvcjogJGdyZWVuO1xufVxuXG4uV2Fybixcbi5XQVJOIHtcbiAgY29sb3I6ICR5ZWxsb3c7XG59XG5cbi5Ob3RPSyB7XG4gIGNvbG9yOiAkcmVkO1xufVxuXG4uaW1nMTUge1xuICB3aWR0aDogMTUlO1xuICBoZWlnaHQ6IDE1JTtcbn1cblxuLmltZzIwIHtcbiAgd2lkdGg6IDIwJTtcbiAgaGVpZ2h0OiAyMCU7XG59XG5cbi50cmVuZFVwIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4udHJlbmRGbGF0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4udHJlbmREb3duIHtcbn1cblxuLnRyZW5kVXBbZGF0YS10aGVtZT0nZGFyayddIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICBmaWx0ZXI6IGludmVydCgxMDAlKTtcbn1cblxuLnRyZW5kRmxhdFtkYXRhLXRoZW1lPSdkYXJrJ10ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xufVxuXG4udHJlbmREb3duW2RhdGEtdGhlbWU9J2RhcmsnXSB7XG4gIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xufVxuXG4uYmFkQ2xvdWQge1xuICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWdzL2JhZGNsb3VkLnBuZycpO1xufVxuXG4uYmFkQ2xvdWRbZGF0YS10aGVtZT0nZGFyayddIHtcbiAgY29udGVudDogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1ncy9iYWRjbG91ZC5wbmcnKTtcbiAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7XG59XG5cbi5nb29kQ2xvdWQge1xuICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWdzL2dvb2RjbG91ZC5wbmcnKTtcbn1cblxuLl9QQiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG59XG4iLCIkZ3JlZW46IzAwYTM1MDtcbiRyZWQ6I2VjMWQyNztcbiRibHVlOiMzOTcyYjc7XG4keWVsbG93OiNmZGMzMDA7XG4kb3JhbmdlOiNmNDkyMmM7Il19 */\";","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { VitalSignsComponent } from '../vital-signs/vital-signs.component';\nimport { VitalReading } from '../../models/VitalReading';\nimport { trend } from 'basic-trend';\n\n@Component({\n selector: 'app-vital-signs-bp',\n templateUrl: './vital-signs-bp.component.html',\n styleUrls: ['./vital-signs-bp.component.scss']\n})\nexport class VitalSignsBpComponent extends VitalSignsComponent implements OnInit, OnChanges {\n sysHistory: VitalReading[] = [];\n diaHistory: VitalReading[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n console.log(`VitalSignsBPComponent::Init - ${this.thisID}`, this.config);\n\n if (this.config && this.config.vitalTitle) {\n this.vitalTitle = this.config.vitalTitle;\n }\n\n if (this.config && this.config.imageID) {\n this.imageID = this.config.imageID;\n }\n\n if (this.config && this.config.vitalUnits) {\n this.vitalUnits = this.config.vitalUnits;\n }\n\n if (this.config && this.config.vitalType) {\n this.vitalType = this.config.vitalType;\n this.vitalImage = `${this.config.vitalType}Normal`;\n }\n\n if (this.config && this.config.vitalUnits2) {\n this.vitalUnits2 = this.config.vitalUnits2;\n this.visibleSecond = true;\n }\n\n this.vitalTheme = !this.theme ? 'light' : 'dark';\n\n clearTimeout(this.timerId);\n this.timer = 0;\n }\n\n /**\n * Recalculates the trend\n */\n recalculateTrend(): void {\n console.log(`VitalSignsBPComponent::recalculateTrend - ${this.thisID}`);\n const sequence: number[] = this.sysHistory.map((item: VitalReading): number => {\n return parseInt(item.reading, 10);\n });\n\n this.currentTrend = trend(sequence);\n\n if (this.currentTrend === -1) {\n this.trendClass = 'trendDown';\n } else if (this.currentTrend === 1) {\n this.trendClass = 'trendUp';\n } else {\n this.trendClass = 'trendFlat';\n }\n }\n\n /**\n * Handles changes to the input variables\n * @param changes The updates change\n */\n ngOnChanges(changes: SimpleChanges): void {\n console.log(`VitalSignsBPComponent::changes - ${this.thisID}`, changes);\n\n if (changes.hasOwnProperty('newReading') && changes.newReading.isFirstChange() !== true) {\n if (this.newReading.reading !== 'closePad') {\n clearTimeout(this.timerId);\n\n const splitVal = this.newReading.reading.split('/');\n this.vitalValue = splitVal[0];\n this.vital2Value = splitVal[1];\n\n const newSysHistory: VitalReading = {\n reading: this.vitalValue,\n timestamp: this.newReading.timestamp\n };\n\n const newDiaHistory: VitalReading = {\n reading: this.vital2Value,\n timestamp: this.newReading.timestamp\n };\n\n console.log(`VitalSignsBPComponent::changes - ${this.thisID} newSysHistory`, newSysHistory);\n console.log(`VitalSignsBPComponent::changes - ${this.thisID} newDiaHistory`, newDiaHistory);\n\n this.sysHistory.push(newSysHistory);\n this.diaHistory.push(newDiaHistory);\n\n this.timeSince = 'Fresh reading';\n this.timer = 0;\n console.log('HISTORY:', this.history);\n\n this.vitalTextClass = this.checkVitals('bpSys', this.vitalValue);\n this.vital2TextClass = this.checkVitals('bpDia', this.vital2Value);\n\n this.vitalIconClass = `icon-${this.vitalTextClass}`;\n this.vitalImage = `${this.config.vitalType}${this.vitalTextClass}`;\n this.recalculateTrend();\n this.doUpdate();\n\n this.timerId = setTimeout(() => {\n this.updateTimer();\n }, 60000);\n }\n }\n\n this.vitalTheme = !this.theme ? 'light' : 'dark';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\nimport { VitalSignsBpComponent } from './vital-signs-bp.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, IonicModule, RouterModule],\n declarations: [VitalSignsBpComponent],\n exports: [VitalSignsBpComponent]\n})\nexport class VitalSignsBpComponentModule {}\n","export default \".vitalHeaders {\\n height: 150px;\\n}\\n\\n.vitalTitle {\\n text-transform: uppercase;\\n width: 70%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: clip;\\n letter-spacing: 1px;\\n margin-top: -12px;\\n}\\n\\n.vitalTitle[data-theme=dark] {\\n text-transform: uppercase;\\n color: lightgrey;\\n}\\n\\n.Normal[data-theme=dark] {\\n color: lightgrey;\\n}\\n\\n.icon-Normal[data-theme=dark] {\\n filter: invert(100%);\\n}\\n\\n.align--left {\\n text-align: left;\\n padding-left: 6px !important;\\n}\\n\\n.align--right {\\n text-align: right;\\n padding-right: 14px !important;\\n}\\n\\n.align--bottom {\\n vertical-align: bottom !important;\\n}\\n\\n.lowerPart {\\n position: absolute;\\n bottom: 0;\\n width: 100%;\\n}\\n\\n.vitalInner {\\n padding: 12px 0 0 0 !important;\\n height: 150px;\\n background: linear-gradient(180deg, #eaeaea 0%, #ffffff 20%, #ffffff 80%, #eaeaea 100%);\\n font-family: \\\"bebas\\\", serif;\\n font-size: 20px;\\n font-weight: bold;\\n letter-spacing: 2px;\\n}\\n\\n.vitalInner[data-theme=dark] {\\n padding: 12px 0 0 0 !important;\\n height: 150px;\\n background: linear-gradient(180deg, #212121 0%, #030365 50%, #212121 100%);\\n font-family: \\\"bebas\\\", serif;\\n font-size: 20px;\\n font-weight: bold;\\n letter-spacing: 2px;\\n}\\n\\n.timeSince {\\n font-size: 75%;\\n letter-spacing: -1px;\\n}\\n\\n.timeSince[data-theme=dark] {\\n font-size: 75%;\\n letter-spacing: -1px;\\n color: lightgrey;\\n}\\n\\n.vitalValue {\\n position: absolute;\\n top: 27px;\\n left: 10px;\\n width: 90%;\\n height: 36px;\\n text-align: left;\\n font-size: 36px;\\n}\\n\\n.vitalValueBP {\\n position: absolute;\\n top: 15px;\\n left: 10px;\\n width: 90%;\\n height: 36px;\\n text-align: left;\\n font-size: 36px;\\n}\\n\\n.vitalUnit {\\n position: absolute;\\n bottom: 44px;\\n left: 10px;\\n font-size: 32px !important;\\n}\\n\\n.vitalUnitBP {\\n position: absolute;\\n bottom: 44px;\\n left: 80px;\\n font-size: 32px !important;\\n}\\n\\n.hrImg {\\n position: absolute;\\n top: 5px;\\n right: 15px;\\n width: 25%;\\n height: 25%;\\n}\\n\\n.hrBluetooth {\\n position: absolute;\\n top: 5px;\\n right: 10px;\\n width: 12%;\\n height: 12%;\\n}\\n\\n.vitalToFront {\\n z-index: 110000 !important;\\n}\\n\\n.OK {\\n color: #00a350;\\n}\\n\\n.Warn,\\n.WARN {\\n color: #fdc300;\\n}\\n\\n.NotOK {\\n color: #ec1d27;\\n}\\n\\n.img15 {\\n width: 15%;\\n height: 15%;\\n}\\n\\n.img20 {\\n width: 20%;\\n height: 20%;\\n}\\n\\n.trendUp {\\n transform: rotate(-90deg);\\n}\\n\\n.trendFlat {\\n transform: rotate(-45deg);\\n}\\n\\n.trendUp[data-theme=dark] {\\n transform: rotate(-90deg);\\n filter: invert(100%);\\n}\\n\\n.trendFlat[data-theme=dark] {\\n transform: rotate(-45deg);\\n filter: invert(100%);\\n}\\n\\n.trendDown[data-theme=dark] {\\n filter: invert(100%);\\n}\\n\\n.badCloud {\\n content: url('badcloud.png');\\n}\\n\\n.badCloud[data-theme=dark] {\\n content: url('badcloud.png');\\n filter: invert(100%);\\n}\\n\\n.goodCloud {\\n content: url('goodcloud.png');\\n}\\n\\n._PB {\\n border: 1px solid magenta;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy92aXRhbC1zaWducy92aXRhbC1zaWducy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY3NzL2RlZmF1bHRDb2xvdXJzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxhQUFBO0FBREY7O0FBSUE7RUFDRSx5QkFBQTtFQUNBLFVBQUE7RUFBVSxtQkFBQTtFQUFvQixnQkFBQTtFQUFpQixtQkFBQTtFQUMvQyxtQkFBQTtFQUNBLGlCQUFBO0FBRUY7O0FBQ0E7RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0FBRUY7O0FBQ0E7RUFDRSxnQkFBQTtBQUVGOztBQUNBO0VBQ0Usb0JBQUE7QUFFRjs7QUFFRTtFQUNFLGdCQUFBO0VBQ0EsNEJBQUE7QUFDSjs7QUFFRTtFQUNFLGlCQUFBO0VBQ0EsOEJBQUE7QUFBSjs7QUFHRTtFQUNFLGlDQUFBO0FBREo7O0FBS0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0FBRkY7O0FBS0E7RUFDRSw4QkFBQTtFQUNBLGFBQUE7RUFDQSx1RkFBQTtFQUVBLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7QUFIRjs7QUFNQTtFQUNFLDhCQUFBO0VBQ0EsYUFBQTtFQUNBLDBFQUFBO0VBRUEsMkJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtBQUpGOztBQU9BO0VBQ0UsY0FBQTtFQUNBLG9CQUFBO0FBSkY7O0FBT0E7RUFDRSxjQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtBQUpGOztBQU9BO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FBSkY7O0FBT0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUFKRjs7QUFPQTtFQUNFLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSwwQkFBQTtBQUpGOztBQU9BO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLDBCQUFBO0FBSkY7O0FBT0E7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QUFKRjs7QUFRQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBQUxGOztBQVNBO0VBQ0UsMEJBQUE7QUFORjs7QUFTQTtFQUNFLGNDMUlLO0FEb0lQOztBQVNBOztFQUVFLGNDNUlNO0FEc0lSOztBQVNBO0VBQ0UsY0NsSkc7QUQ0SUw7O0FBU0E7RUFDRSxVQUFBO0VBQ0EsV0FBQTtBQU5GOztBQVNBO0VBQ0UsVUFBQTtFQUNBLFdBQUE7QUFORjs7QUFTQTtFQUVFLHlCQUFBO0FBTkY7O0FBU0E7RUFFRSx5QkFBQTtBQU5GOztBQVlBO0VBRUUseUJBQUE7RUFDQSxvQkFBQTtBQVRGOztBQVlBO0VBRUUseUJBQUE7RUFDQSxvQkFBQTtBQVRGOztBQVlBO0VBQ0Usb0JBQUE7QUFURjs7QUFZQTtFQUNFLDRCQUFBO0FBVEY7O0FBWUE7RUFDRSw0QkFBQTtFQUNBLG9CQUFBO0FBVEY7O0FBWUE7RUFDRSw2QkFBQTtBQVRGOztBQVlBO0VBQ0UseUJBQUE7QUFURiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdml0YWwtc2lnbnMvdml0YWwtc2lnbnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi9jc3MvZGVmYXVsdENvbG91cnMnO1xuXG4udml0YWxIZWFkZXJzIHtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cblxuLnZpdGFsVGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDo3MCU7d2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW4gO3RleHQtb3ZlcmZsb3c6IGNsaXA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIG1hcmdpbi10b3A6LTEycHg7XG59XG5cbi52aXRhbFRpdGxlW2RhdGEtdGhlbWU9J2RhcmsnXSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiBsaWdodGdyZXk7XG59XG5cbi5Ob3JtYWxbZGF0YS10aGVtZT0nZGFyayddIHtcbiAgY29sb3I6IGxpZ2h0Z3JleTtcbn1cblxuLmljb24tTm9ybWFsW2RhdGEtdGhlbWU9J2RhcmsnXSB7XG4gIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xufVxuXG4uYWxpZ24ge1xuICAmLS1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLS1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogMTRweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi0tYm90dG9tIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmxvd2VyUGFydCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnZpdGFsSW5uZXIge1xuICBwYWRkaW5nOiAxMnB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTUwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYigyMzQsIDIzNCwgMjM0KSAwJSwgI2ZmZmZmZiAyMCUsICNmZmZmZmYgODAlLCByZ2IoMjM0LCAyMzQsIDIzNCkgMTAwJSk7XG5cbiAgZm9udC1mYW1pbHk6ICdiZWJhcycsIHNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xufVxuXG4udml0YWxJbm5lcltkYXRhLXRoZW1lPSdkYXJrJ10ge1xuICBwYWRkaW5nOiAxMnB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTUwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyMTIxMjEgMCUsICMwMzAzNjUgNTAlLCAjMjEyMTIxIDEwMCUpO1xuXG4gIGZvbnQtZmFtaWx5OiAnYmViYXMnLCBzZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbn1cblxuLnRpbWVTaW5jZSB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsZXR0ZXItc3BhY2luZzogLTFweDtcbn1cblxuLnRpbWVTaW5jZVtkYXRhLXRoZW1lPSdkYXJrJ10ge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gIGNvbG9yOiBsaWdodGdyZXk7XG59XG5cbi52aXRhbFZhbHVlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI3cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogMzZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuXG4udml0YWxWYWx1ZUJQIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogMzZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuXG4udml0YWxVbml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDQ0cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMzJweCAhaW1wb3J0YW50O1xufVxuXG4udml0YWxVbml0QlAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNDRweDtcbiAgbGVmdDogODBweDtcbiAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ockltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1cHg7XG4gIHJpZ2h0OiAxNXB4O1xuICB3aWR0aDogMjUlO1xuICBoZWlnaHQ6IDI1JTtcbiAgLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2Fzc2V0cy9pbWdzL2hyLnBuZycpO1xufVxuXG4uaHJCbHVldG9vdGgge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICByaWdodDogMTBweDtcbiAgd2lkdGg6IDEyJTtcbiAgaGVpZ2h0OiAxMiU7XG4gIC8vYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9hc3NldHMvaW1ncy9oci5wbmcnKTtcbn1cblxuLnZpdGFsVG9Gcm9udCB7XG4gIHotaW5kZXg6IDExMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uT0sge1xuICBjb2xvcjogJGdyZWVuO1xufVxuXG4uV2Fybixcbi5XQVJOIHtcbiAgY29sb3I6ICR5ZWxsb3c7XG59XG5cbi5Ob3RPSyB7XG4gIGNvbG9yOiAkcmVkO1xufVxuXG4uaW1nMTUge1xuICB3aWR0aDogMTUlO1xuICBoZWlnaHQ6IDE1JTtcbn1cblxuLmltZzIwIHtcbiAgd2lkdGg6IDIwJTtcbiAgaGVpZ2h0OiAyMCU7XG59XG5cbi50cmVuZFVwIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4udHJlbmRGbGF0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4udHJlbmREb3duIHtcbn1cblxuLnRyZW5kVXBbZGF0YS10aGVtZT0nZGFyayddIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICBmaWx0ZXI6IGludmVydCgxMDAlKTtcbn1cblxuLnRyZW5kRmxhdFtkYXRhLXRoZW1lPSdkYXJrJ10ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xufVxuXG4udHJlbmREb3duW2RhdGEtdGhlbWU9J2RhcmsnXSB7XG4gIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xufVxuXG4uYmFkQ2xvdWQge1xuICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWdzL2JhZGNsb3VkLnBuZycpO1xufVxuXG4uYmFkQ2xvdWRbZGF0YS10aGVtZT0nZGFyayddIHtcbiAgY29udGVudDogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1ncy9iYWRjbG91ZC5wbmcnKTtcbiAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7XG59XG5cbi5nb29kQ2xvdWQge1xuICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWdzL2dvb2RjbG91ZC5wbmcnKTtcbn1cblxuLl9QQiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG59XG4iLCIkZ3JlZW46IzAwYTM1MDtcbiRyZWQ6I2VjMWQyNztcbiRibHVlOiMzOTcyYjc7XG4keWVsbG93OiNmZGMzMDA7XG4kb3JhbmdlOiNmNDkyMmM7Il19 */\";","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { VitalsConfig } from '../../models/VitalsConfig';\nimport { VitalReading } from '../../models/VitalReading';\nimport { trend } from 'basic-trend';\n\n@Component({\n selector: 'app-vital-signs',\n templateUrl: './vital-signs.component.html',\n styleUrls: ['./vital-signs.component.scss']\n})\nexport class VitalSignsComponent implements OnInit, OnChanges {\n @Output() onRequestUpdate: EventEmitter<object> = new EventEmitter<object>();\n @Output() requestInput: EventEmitter<object> = new EventEmitter<object>();\n\n @Input() thisID = '';\n @Input() config: VitalsConfig;\n @Input() newReading: VitalReading;\n @Input() theme = false;\n\n vitalTheme = 'light';\n vitalTitle = '';\n vitalUnits = '';\n vitalUnits2 = '';\n vitalType = '';\n imageID = '';\n currentTrend = 0;\n trendClass = 'trendFlat';\n\n visibleSecond = false;\n\n vitalImage = '';\n vitalValue = '--';\n vital2Value = '--';\n vitalTextClass = 'Normal';\n vital2TextClass = 'Normal';\n vitalIconClass = 'icon-Normal';\n\n timer = 0;\n timerId: ReturnType<typeof setTimeout> = 0;\n timeSince = 'No record';\n\n history: VitalReading[] = [];\n\n sand = new Map([\n ['OK', '-ok'],\n ['NotOK', '-not-ok'],\n ['WARN', '-warn']\n ]);\n\n private vitalRequested: string;\n private padVisible: boolean;\n private keyboardVis: string;\n\n constructor() {}\n\n /**\n *\n */\n ngOnInit() {\n console.log(`VitalSignsComponent::Init - ${this.thisID}`, this.config);\n\n if (this.config && this.config.vitalTitle) {\n this.vitalTitle = this.config.vitalTitle;\n }\n\n if (this.config && this.config.imageID) {\n this.imageID = this.config.imageID;\n }\n\n if (this.config && this.config.vitalUnits) {\n this.vitalUnits = this.config.vitalUnits;\n }\n\n if (this.config && this.config.vitalType) {\n this.vitalType = this.config.vitalType;\n this.vitalImage = `${this.config.vitalType}Normal`;\n }\n\n if (this.config && this.config.vitalUnits2) {\n this.vitalUnits2 = this.config.vitalUnits2;\n this.visibleSecond = true;\n }\n\n this.vitalTheme = !this.theme ? 'light' : 'dark';\n\n clearTimeout(this.timerId);\n this.timer = 0;\n }\n\n /**\n * Generates a new icon url string\n *\n * @return A new url to the correct icon\n */\n thisIcon(): string {\n if (this.imageID) {\n return `assets/imgs/${this.vitalImage}.png`;\n }\n\n return '';\n }\n\n /**\n * Click handler to request the keypad\n */\n requestReading(): void {\n console.log(`VitalSignsComponent::requestReading - ${this.thisID}`);\n\n this.clearVitals();\n\n this.doRequestInput();\n }\n\n /**\n *\n */\n clearVitals(): void {\n this.padVisible = false;\n this.keyboardVis = 'hideModal';\n }\n\n /**\n * Updates the timer text and restarts the minute timer\n */\n updateTimer(): void {\n this.timer++;\n\n if (this.timer === 1) {\n this.timeSince = '1 Minute Ago';\n } else if (this.timer > 1 && this.timer <= 59) {\n this.timeSince = `${this.timer} mins ago`;\n } else {\n const hour = Math.floor(this.timer / 60);\n const suffix = hour === 1 ? '' : 's';\n this.timeSince = `${hour} hour${suffix} ago`;\n }\n\n this.timerId = setTimeout(() => {\n this.updateTimer();\n }, 60000);\n }\n\n /**\n * Recalculates the trend\n */\n recalculateTrend(): void {\n const sequence: number[] = this.history.map((item: VitalReading): number => {\n return parseInt(item.reading, 10);\n });\n\n this.currentTrend = trend(sequence);\n\n if (this.currentTrend === -1) {\n this.trendClass = 'trendDown';\n } else if (this.currentTrend === 1) {\n this.trendClass = 'trendUp';\n } else {\n this.trendClass = 'trendFlat';\n }\n }\n\n /**\n * Responds to the updated vitals reading from the keypad, updates colour and icons accordingly\n * @param vitalSign The vital sign\n * @param vitalValue The Vital value\n * @param override An override flag\n */\n checkVitals(vitalSign: string, vitalValue: string, override?: boolean): string {\n // console.log(\"sign: \" + vitalSign + \" - value: \" + vitalValue);\n if (vitalValue === '--') {\n return override ? '-ok' : 'OK';\n } else {\n switch (vitalSign) {\n case 'hr':\n const myHR = parseFloat(vitalValue);\n if (myHR <= 39 || myHR >= 130) {\n // make colour red\n return override ? '-not-ok' : 'NotOK';\n } else if ((myHR >= 40 && myHR <= 49) || (myHR >= 110 && myHR <= 129)) {\n // make colour amber\n return override ? '-warn' : 'WARN';\n } else if (myHR >= 50 && myHR <= 109) {\n // make colour green\n return override ? '-ok' : 'OK';\n } else {\n return override ? '-ok' : 'OK';\n }\n break;\n\n case 'br':\n const myBR = parseFloat(vitalValue);\n if ((myBR >= 0 && myBR <= 8) || (myBR >= 25 && myBR <= 99)) {\n // make colour red\n return 'NotOK';\n } else if (myBR >= 21 && myBR <= 24) {\n // make colour amber\n return 'Warn';\n } else if (myBR >= 9 && myBR <= 20) {\n // make colour green\n return 'OK';\n } else {\n return 'OK';\n }\n break;\n\n // Updated with Tim's SATS values from email 13/04/2019\n case 'sats':\n const mySATS = parseFloat(vitalValue);\n if (mySATS >= 50 && mySATS <= 91) {\n // make colour red\n return 'NotOK';\n } else if (mySATS >= 92 && mySATS <= 95) {\n // make colour amber\n return 'Warn';\n } else if (mySATS >= 96 && mySATS <= 100) {\n // make colour green\n return 'OK';\n } else {\n return 'OK';\n }\n break;\n\n case 'bpSys':\n const mySys = parseFloat(vitalValue);\n if ((mySys >= 40 && mySys <= 89) || (mySys >= 221 && mySys <= 300)) {\n // make colour red\n return 'NotOK';\n } else if (mySys >= 90 && mySys <= 99) {\n // make colour amber\n return 'Warn';\n } else if (mySys >= 100 && mySys <= 220) {\n // make colour green\n return 'OK';\n } else {\n return 'OK';\n }\n break;\n\n case 'bpDia':\n const myDia = parseFloat(vitalValue);\n // Diastolic\n if (myDia >= 100 && myDia <= 200) {\n // make colour red\n return 'NotOK';\n } else if (myDia >= 81 && myDia <= 99) {\n // make colour amber\n return 'Warn';\n } else if (myDia >= 20 && myDia <= 80) {\n // make colour green\n return 'OK';\n } else {\n return 'OK';\n }\n break;\n\n // Updated with Tim's TEMP values from email 13/04/2019\n case 'temp':\n const myTEMP = parseFloat(vitalValue);\n if ((myTEMP >= 18 && myTEMP <= 35) || myTEMP >= 39.1) {\n // make colour red\n return 'NotOK';\n } else if ((myTEMP >= 35.1 && myTEMP <= 36) || (myTEMP >= 38.1 && myTEMP <= 39)) {\n // make colour amber\n return 'Warn';\n } else if (myTEMP >= 36.1 && myTEMP <= 38) {\n // make colour green\n return 'OK';\n } else {\n return 'OK';\n }\n break;\n }\n }\n }\n\n /**\n * Emits the updated reading\n */\n doUpdate(): void {\n const output = Object.assign({}, this.config, this.newReading);\n\n console.log(`VitalSignsComponent::doUpdate - ${this.thisID}`, output);\n\n this.onRequestUpdate.emit(output);\n }\n\n /**\n * Emits a request to display the keypad with specific units\n */\n doRequestInput(): void {\n this.requestInput.emit({\n vitalUnits: this.vitalUnits\n });\n }\n\n /**\n * Handles changes to the input variables\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges): void {\n console.log(`VitalSignsComponent::changes - ${this.thisID}`, changes);\n\n if (changes.hasOwnProperty('newReading') && changes.newReading.isFirstChange() !== true) {\n if (this.newReading.reading !== 'closePad') {\n clearTimeout(this.timerId);\n\n this.vitalValue = this.newReading.reading;\n\n const newHistory: VitalReading = this.newReading;\n\n console.log(`VitalSignsComponent::changes - ${this.thisID} newHistory`, newHistory);\n this.history.push(newHistory);\n this.timeSince = 'Fresh reading';\n this.timer = 0;\n console.log('HISTORY:', this.history);\n\n this.vitalTextClass = this.checkVitals(this.vitalType, this.vitalValue);\n this.vitalIconClass = `icon-${this.vitalTextClass}`;\n this.vitalImage = `${this.config.vitalType}${this.vitalTextClass}`;\n this.recalculateTrend();\n this.doUpdate();\n\n this.timerId = setTimeout(() => {\n this.updateTimer();\n }, 60000);\n }\n }\n\n this.vitalTheme = !this.theme ? 'light' : 'dark';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\nimport { VitalSignsComponent } from './vital-signs.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, IonicModule, RouterModule],\n declarations: [VitalSignsComponent],\n exports: [VitalSignsComponent]\n})\nexport class VitalSignsComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { HomePage } from './home.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: HomePage,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class HomePageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\nimport { FormsModule } from '@angular/forms';\nimport { HomePage } from './home.page';\n\nimport { HomePageRoutingModule } from './home-routing.module';\nimport {CpsConfirmButtonComponentModule} from '../components/cps-confirm-button/cps-confirm-button.module';\nimport {CpsTopBottomComponentModule} from '../components/cps-top-bottom/cps-top-bottom.module';\nimport { VitalSignsComponentModule } from '../components/vital-signs/vital-signs.module';\nimport { AVPUSwipeComponentModule } from '../components/avpu-swipe/avpu-swipe.module';\nimport { NumPadComponentModule } from '../components/num-pad/num-pad.module';\nimport { VitalSignsBpComponentModule } from '../components/vital-signs-bp/vital-signs-bp.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n HomePageRoutingModule,\n CpsConfirmButtonComponentModule,\n CpsTopBottomComponentModule,\n VitalSignsComponentModule,\n AVPUSwipeComponentModule,\n NumPadComponentModule,\n VitalSignsBpComponentModule\n ],\n declarations: [HomePage]\n})\nexport class HomePageModule {}\n","export default \"@charset \\\"UTF-8\\\";\\n.icons {\\n display: inline-block;\\n font: normal normal normal 14px/1 OpenIconic;\\n font-size: inherit;\\n text-rendering: auto;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.icons-rotate-45 {\\n transform: rotate(45deg);\\n}\\n.icons-rotate-90 {\\n transform: rotate(90deg);\\n}\\n.icons-rotate-135 {\\n transform: rotate(135deg);\\n}\\n:root .icons-rotate-45,\\n:root .icons-rotate-90,\\n:root .icons-rotate-135 {\\n filter: none;\\n}\\n.icons-stack {\\n position: relative;\\n display: inline-block;\\n width: 2em;\\n height: 2em;\\n line-height: 2em;\\n vertical-align: middle;\\n}\\n.icons-stack-1x,\\n.icons-stack-2x {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n text-align: center;\\n}\\n.icons-stack-1x {\\n line-height: inherit;\\n}\\n.icons-stack-2x {\\n font-size: 2em;\\n}\\n.icons-inverse {\\n color: #ffffff;\\n}\\n.icons-arrow-s:before {\\n content: \\\"\\\";\\n}\\n.icons-arrow-w:before {\\n content: \\\"\\\";\\n}\\n.icons-arrow-e:before {\\n content: \\\"\\\";\\n}\\n.icons-arrow-n:before {\\n content: \\\"\\\";\\n}\\n.icons-check:before {\\n content: \\\"\\\";\\n}\\n.icons-clock:before {\\n content: \\\"\\\";\\n}\\n.icons-cloud:before {\\n content: \\\"\\\";\\n}\\n.icons-link:before {\\n content: \\\"\\\";\\n}\\n.icons-loop:before {\\n content: \\\"\\\";\\n}\\n.ceMark {\\n padding-top: 45px;\\n}\\n.aboutAiber {\\n position: absolute;\\n right: 127px;\\n top: 20px;\\n height: 56px;\\n}\\n.aboutZ {\\n z-index: 10000 !important;\\n}\\n.stopScroll {\\n --overflow: hidden !important;\\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.aboutModal h1 {\\n font-family: \\\"bebas\\\" !important;\\n}\\n.aboutHolder {\\n margin: 20px auto 0 auto !important;\\n width: 100%;\\n}\\n.aboutInfo {\\n width: 100%;\\n text-align: left !important;\\n}\\n.aboutLeft {\\n text-align: left !important;\\n}\\n.stylePage {\\n border: 1px solid purple;\\n}\\n.scroll-content {\\n padding: 0px !important;\\n margin: 0px !important;\\n}\\nbody {\\n font-family: \\\"bebas\\\" !important;\\n color: #555656 !important;\\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}\\nion-content {\\n position: absolute;\\n top: 0px;\\n height: 100%;\\n padding: 0 !important;\\n}\\n.aiber-inner-content {\\n position: absolute;\\n top: 130px;\\n height: 612px;\\n width: 1015px;\\n left: 32px;\\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}\\nion-slides {\\n height: 270px !important;\\n}\\nion-slide {\\n padding: 0 !important;\\n width: 100% !important;\\n}\\n.headerHolder {\\n position: relative;\\n width: 100%;\\n padding: 18px 0 0 0;\\n text-align: center;\\n}\\n.fasSlides {\\n height: 485px !important;\\n}\\n.fasMenuItems {\\n text-align: left;\\n padding-top: 42px !important;\\n font-size: 26px !important;\\n}\\n.fasModal h1 {\\n font-family: \\\"bebas\\\" !important;\\n}\\n.fasMenuItemsBlank {\\n padding-top: 30px !important;\\n}\\n.fasScreenImgs {\\n height: 240px !important;\\n}\\n.smaller {\\n height: 200px !important;\\n}\\n.nopadding {\\n padding-left: 8px !important;\\n}\\n.innerSlide {\\n height: 485px !important;\\n width: 700px;\\n margin: 0 auto !important;\\n overflow-y: scroll;\\n}\\n.innerSlide h1 {\\n font-size: 56px;\\n margin-top: 0 !important;\\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.centreText {\\n text-align: center !important;\\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.swipePositionedRight {\\n padding: 0 !important;\\n margin: 0 !important;\\n position: absolute;\\n bottom: 20px;\\n right: 50px;\\n width: 100px;\\n}\\n.headerLogo {\\n height: 55px;\\n position: absolute;\\n left: 56px;\\n top: 20px;\\n}\\n.topWedge {\\n position: absolute;\\n top: 0;\\n right: 0;\\n height: 90px;\\n}\\n.footerHolder {\\n position: relative;\\n width: 100%;\\n}\\n.bottomWedge {\\n position: absolute;\\n bottom: 0px;\\n left: 0px;\\n height: 100%;\\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.showModal {\\n display: block;\\n}\\n.hideModal {\\n display: none;\\n}\\n.content {\\n background: transparent;\\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.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.fasZ {\\n z-index: 50000 !important;\\n}\\n.consciousnessZ {\\n z-index: 10000 !important;\\n}\\n.fasModal {\\n text-align: center !important;\\n padding-top: 30px;\\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.consciousnessModal h1 {\\n font-family: \\\"bebas\\\" !important;\\n font-size: 32px;\\n}\\n.consciousnessHolder {\\n margin: 20px auto 0 auto !important;\\n width: 362px;\\n height: 40px;\\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.buttonLeft {\\n float: left;\\n}\\n.buttonRight {\\n float: right;\\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.m30 {\\n margin-right: 30px;\\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.text-input {\\n margin: 4px 8px !important;\\n text-align: center !important;\\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.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.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.howLongMinutes {\\n position: absolute !important;\\n top: 40px !important;\\n left: 9px;\\n}\\n.howLongMinutes ion-col {\\n padding: 5px !important;\\n margin: 0 !important;\\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.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.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.greyedOut {\\n color: white;\\n background-color: #555656 !important;\\n opacity: 0.5;\\n}\\n.disableDiv {\\n pointer-events: none !important;\\n opacity: 0.5;\\n}\\n.closeButton {\\n position: absolute;\\n top: 10px;\\n right: 20px;\\n height: 50px;\\n width: 50px;\\n}\\n.avpuABCGrid {\\n position: absolute;\\n left: 3%;\\n width: 94%;\\n height: 73%;\\n top: 14px;\\n}\\n.ccsSize {\\n height: 50px;\\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.echoButton {\\n position: absolute;\\n left: 56px;\\n top: 20px;\\n height: 52px;\\n font-weight: bold;\\n}\\n.firstAidSymbol {\\n position: absolute;\\n left: 290px;\\n top: 32px;\\n height: 46px;\\n}\\n.firstAidSymbolTop {\\n position: absolute;\\n right: 56px;\\n top: 20px;\\n height: 52px;\\n}\\n.buttonGrid {\\n border: 1px solid red;\\n position: absolute;\\n top: 15%;\\n padding: 0 !important;\\n width: 100%;\\n}\\nion-col {\\n text-align: center;\\n}\\n.col {\\n padding: 0 8px 0 0;\\n}\\n.buttonCol {\\n height: 10%;\\n}\\n.noLeftPadding {\\n padding-left: 0 !important;\\n}\\n.noColPadding {\\n padding-left: 0 !important;\\n padding-right: 0 !important;\\n}\\n.noRightPadding {\\n padding-right: 0 !important;\\n}\\n.noRowPadding {\\n padding-top: 0 !important;\\n padding-bottom: 0 !important;\\n}\\n.noTopPadding {\\n padding-top: 0 !important;\\n}\\n.cpsLastCol {\\n width: 100% !important;\\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.avpuABCHeight {\\n height: 270px;\\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.cpsButtons {\\n height: 133px;\\n color: white !important;\\n font-family: \\\"bebas\\\";\\n font-size: 24px;\\n letter-spacing: 2px;\\n}\\n.cpsTop {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 98%;\\n}\\n.cpsBottom {\\n position: absolute;\\n left: 0;\\n bottom: 0;\\n width: 98%;\\n}\\n.cpsButton1Start {\\n background: linear-gradient(137deg, #00b4dc 0%, #1390cf 50%);\\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.cpsConfirmedCol {\\n width: 100% !important;\\n background: #00b4dc;\\n background: linear-gradient(137deg, #00b4dc 0%, #1390cf 50%);\\n margin-right: 8px;\\n}\\n.avatar {\\n position: absolute;\\n bottom: 0;\\n height: 100%;\\n width: 100%;\\n left: 0;\\n}\\n.swipeUpLeft {\\n position: absolute;\\n top: 40%;\\n left: 4%;\\n width: 15%;\\n height: auto;\\n z-index: 1;\\n}\\n.avatarImage {\\n height: 200px;\\n position: absolute;\\n bottom: 0;\\n left: 0px;\\n width: 100% !important;\\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.avpuTextSingleLine {\\n padding-top: 16px;\\n}\\n.swipeUpRight {\\n position: absolute;\\n top: 40%;\\n right: 7%;\\n width: 15%;\\n height: auto;\\n}\\n.selGreen {\\n background-color: #00a350;\\n}\\n.selRed {\\n background-color: #ec1d27;\\n}\\n.selVoice {\\n background-color: #3972b7;\\n}\\n.avpuA {\\n background-color: #00a651 !important;\\n}\\n.avpuV {\\n background-color: #3972b7 !important;\\n}\\n.avpuP {\\n background-color: #f4922c !important;\\n}\\n.avpuU {\\n background-color: #ed1c24 !important;\\n}\\n.textOnly {\\n padding-top: 38px;\\n font-size: 50px !important;\\n}\\n.OK {\\n background-color: #00a350 !important;\\n}\\n.NotOK {\\n background-color: #ec1d27 !important;\\n}\\n.bgOK {\\n background-color: #00a350;\\n color: white;\\n}\\n.bgWarn {\\n background-color: #fdc300;\\n}\\n.bgNotOK {\\n background-color: #ec1d27;\\n color: white;\\n}\\n.whiteText {\\n color: white !important;\\n}\\n.consciousnessOK {\\n background-color: #00a350 !important;\\n color: white !important;\\n}\\n.consciousnessNotOK {\\n background-color: #ec1d27 !important;\\n color: white !important;\\n}\\n.deselect {\\n background-color: #555656 !important;\\n}\\n.deselectTick {\\n display: none !important;\\n}\\n.deselectConfirmed {\\n color: #666666 !important;\\n}\\n.deselectConsciousness {\\n background-color: #555656 !important;\\n background-image: none !important;\\n}\\n.proceedTickDeselect {\\n opacity: 0.3;\\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.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.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.avpuSpacer {\\n height: 5px !important;\\n}\\n.awakeHeight {\\n height: 64px;\\n}\\n.awakeColHolder {\\n padding: 0 3px 0 0 !important;\\n}\\n.proceedColHolder {\\n padding: 0 0 0 6px !important;\\n}\\n.proceedTick {\\n position: absolute;\\n top: 14px;\\n right: 15px;\\n height: 36px;\\n}\\n.lastButton {\\n right: 8px !important;\\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZS9ob21lLnBhZ2Uuc2NzcyIsInNyYy9hcHAvY3NzL2ljb25zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDRWhCO0VBQ0UscUJBQUE7RUFDQSw0Q0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0FEQUY7QUNHQTtFQUVFLHdCQUFBO0FEQUY7QUNHQTtFQUVFLHdCQUFBO0FEQUY7QUNHQTtFQUVFLHlCQUFBO0FEQUY7QUNHQTs7O0VBR0UsWUFBQTtBREFGO0FDR0E7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0FEQUY7QUNHQTs7RUFFRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7QURBRjtBQ0dBO0VBQ0Usb0JBQUE7QURBRjtBQ0dBO0VBQ0UsY0FBQTtBREFGO0FDR0E7RUFDRSxjQUFBO0FEQUY7QUNHQTtFQUNFLFlBQUE7QURBRjtBQ0dBO0VBQ0UsWUFBQTtBREFGO0FDR0E7RUFDRSxZQUFBO0FEQUY7QUNHQTtFQUNFLFlBQUE7QURBRjtBQ0dBO0VBQ0UsWUFBQTtBREFGO0FDR0E7RUFDRSxZQUFBO0FEQUY7QUNFQTtFQUNFLFlBQUE7QURDRjtBQ0VBO0VBQ0UsWUFBQTtBRENGO0FDRUE7RUFDRSxZQUFBO0FEQ0Y7QUE1RkE7RUFDRSxpQkFBQTtBQStGRjtBQTVGQTtFQUNFLGtCQUFBO0VBRUEsWUFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0FBOEZGO0FBM0ZBO0VBQ0UseUJBQUE7QUE4RkY7QUEzRkE7RUFDRSw2QkFBQTtBQThGRjtBQTNGQTtFQUNFLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBRUEsK0JBQUE7RUFDQSxlQUFBO0FBNkZGO0FBMUZBO0VBQ0UsK0JBQUE7QUE2RkY7QUExRkE7RUFFRSxtQ0FBQTtFQUNBLFdBQUE7QUE0RkY7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QUE7RUFDQSxjQUFBO0FBYkY7QUFnQkE7RUFFRTs7Ozs7S0FBQTtFQU1BLFlBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQ0FBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBRUEsV0FBQTtBQWZGO0FBa0JBO0VBQ0Usc0JBQUE7QUFmRjtBQW1CQTtFQUNFLFlBQUE7QUFoQkY7QUFvQkE7RUFDRSw2QkFBQTtBQWpCRjtBQW9CQTtFQUNFLDZCQUFBO0FBakJGO0FBb0JBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUFqQkY7QUFxQkE7RUFDRSxxQkFBQTtBQWxCRjtBQXFCQTtFQUNFLGtCQUFBO0VBRUEsYUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUVBLG9DQUFBO0VBQ0EscUJBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0VBQ0EsNkJBQUE7QUFwQkYiLCJmaWxlIjoic3JjL2FwcC9ob21lL2hvbWUucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uL2Nzcy9pY29uc1wiO1xuXG4uY2VNYXJre1xuICBwYWRkaW5nLXRvcDogNDVweDtcbn1cblxuLmFib3V0QWliZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vbGVmdDogNTZweDtcbiAgcmlnaHQ6IDEyN3B4O1xuICB0b3A6IDIwcHg7XG4gIGhlaWdodDogNTZweDtcbn1cblxuLmFib3V0WiB7XG4gIHotaW5kZXg6IDEwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wU2Nyb2xsIHtcbiAgLS1vdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5hYm91dE1vZGFsIHtcbiAgdG9wOiAyNCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDcwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDUyJSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vcGFkZGluZy10b3A6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiBcImFyaWFsXCIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uYWJvdXRNb2RhbCBoMSB7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbn1cblxuLmFib3V0SG9sZGVyIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIG1hcmdpbjogMjBweCBhdXRvIDAgYXV0byAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmFib3V0SW5mbyB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hYm91dExlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi5zdHlsZVBhZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCBwdXJwbGU7XG59XG5cbi5zY3JvbGwtY29udGVudCB7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xufVxuXG4vLyBpb24taGVhZGVyIHtcbi8vICAgbWluLWhlaWdodDogMTEuOCU7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbi8vICAgY29sb3I6IHdoaXRlO1xuLy8gfVxuXG4uYWliZXItaW9uLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA5MXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLy8gaW9uLWNvbnRlbnQge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRvcDogMTAwcHg7XG4vLyAgIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbi8vICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuLy8gICAvL21hcmdpbjogMCAhaW1wb3J0YW50O1xuLy8gICAvL2hlaWdodDogNjEwcHggIWltcG9ydGFudDtcbi8vIH1cblxuaW9uLWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAvL21hcmdpbjogMCAhaW1wb3J0YW50O1xuICAvL2hlaWdodDogNjEwcHggIWltcG9ydGFudDtcbn1cblxuLmFpYmVyLWlubmVyLWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTMwcHg7XG4gIGhlaWdodDogNjEycHg7XG4gIHdpZHRoOiAxMDE1cHg7XG4gIGxlZnQ6IDMycHg7XG59XG4vLyBpb24tZm9vdGVyIHtcbi8vICAgbWluLWhlaWdodDogMTEuOCU7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbi8vICAgY29sb3I6IHdoaXRlO1xuLy8gfVxuXG4uYWliZXItaW9uLWZvb3RlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA5NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuaW9uLXNsaWRlcyB7XG4gIGhlaWdodDogMjcwcHggIWltcG9ydGFudDtcbn1cblxuaW9uLXNsaWRlIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXJIb2xkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxOHB4IDAgMCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgeWVsbG93O1xufVxuXG4uZmFzU2xpZGVzIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIGhlaWdodDogNDg1cHggIWltcG9ydGFudDtcbn1cblxuLmZhc01lbnVJdGVtcyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwYWRkaW5nLXRvcDogNDJweCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDI2cHggIWltcG9ydGFudDtcbn1cblxuLmZhc01vZGFsIGgxIHtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xufVxuXG4uZmFzTWVudUl0ZW1zQmxhbmsge1xuICBwYWRkaW5nLXRvcDogMzBweCAhaW1wb3J0YW50O1xufVxuXG4uZmFzU2NyZWVuSW1ncyB7XG4gIGhlaWdodDogMjQwcHggIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5zbWFsbGVyIHtcbiAgaGVpZ2h0OiAyMDBweCAhaW1wb3J0YW50O1xufVxuXG4ubm9wYWRkaW5nIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbm5lclNsaWRlIHtcbiAgaGVpZ2h0OiA0ODVweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNzAwcHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi5pbm5lclNsaWRlIGgxIHtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zbWFsbGVySDEge1xuICBmb250LXNpemU6IDI2cHggIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAzOXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uY2VudHJlVGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uc3dpcGUge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjBweDtcbiAgbGVmdDogMzUwcHg7XG4gIHdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgZ3JlZW47XG59XG5cbi5zd2lwZVBvc2l0aW9uZWRSaWdodCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAyMHB4O1xuICByaWdodDogNTBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIGdyZWVuO1xufVxuXG4uaGVhZGVyTG9nbyB7XG4gIGhlaWdodDogNTVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1NnB4O1xuICB0b3A6IDIwcHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG59XG5cbi50b3BXZWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuXG4uZm9vdGVySG9sZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgLy9wYWRkaW5nOiAxM3B4IDAgMCAwO1xuICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJvdHRvbVdlZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5sZWZ0UGF0dGVybiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIGhlaWdodDogNjkuNSU7XG4gIHdpZHRoOiAzJTtcbiAgdG9wOiAxMDBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltZ3MvcGF0dGVybi5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teTogY2VudGVyO1xufVxuXG4uc2hvd01vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5oaWRlTW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vLyBkaXNwbGF5LW11bHRpLXNpemUtaGFuZGxpbmdcbi8vIFRoZSBmb2xsb3dpbmcgc2NoZW1lIG9mIENTUyBoYW5kbGVzXG4vLyBib3RoIDkuN1wiIGFuZCAxMC4yXCIgaVBhZCBkaXNwbGF5c1xuLy8gY29ycmVsYXRpbmcgdG8gYm90aCA2dGggYW5kIDd0aCBnZW5lcmF0aW9uXG4vLyBpUGFkcyByZXNwZWN0aXZlbHkuXG5cbi5vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDAuODtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbn1cblxuLm1vZGFsX2NvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTIuNSU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZDogI2U4ZThlODtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmIDAlLCAjZThlOGU4IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmYgMCUsICNlOGU4ZTggMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZmYgMCUsICNlOGU4ZTggMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoNTEsIDUxLCA1MSwgMC4zNSk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFzWiB7XG4gIHotaW5kZXg6IDUwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5jb25zY2lvdXNuZXNzWiB7XG4gIHotaW5kZXg6IDEwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5mYXNNb2RhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMzBweDtcbn1cblxuLmNvbnNjaW91c25lc3NNb2RhbCB7XG4gIHRvcDogMjElICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1OCUgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jb25zY2lvdXNuZXNzTW9kYWwgaDEge1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMzJweDtcbn1cblxuLmNvbnNjaW91c25lc3NIb2xkZXIge1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgbWFyZ2luOiAyMHB4IGF1dG8gMCBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzNjJweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuXG4ud2lkZUJ1dHRvbiB7XG4gIHdpZHRoOiAxNjBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1M3B4O1xuICBmb250LXNpemU6IDMycHg7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogM3B4O1xufVxuXG4uYnV0dG9uTGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uYnV0dG9uUmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi53aWRlVGFsbEJ1dHRvbiB7XG4gIHdpZHRoOiAxODBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1MnB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxlZnQ6IDI1M3B4O1xufVxuXG4ubTMwIHtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xufVxuXG4uaG93TG9uZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAyMHB4IGF1dG8gMCBhdXRvO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDIwcHg7XG4gIGhlaWdodDogMjUwcHg7XG59XG5cbi50ZXh0LWlucHV0IHtcbiAgbWFyZ2luOiA0cHggOHB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uaG93TG9uZ0lucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmhvd0xvbmdJbnB1dE9SIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ob3dMb25nSW5wdXRCb3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDogMjYwcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDIwcHg7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDUwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xufVxuXG4uaG93TG9uZ01pbnV0ZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiA0MHB4ICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDlweDtcbn1cblxuLmhvd0xvbmdNaW51dGVzIGlvbi1jb2wge1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGEgIWltcG9ydGFudDtcbiAgcGFkZGluZzogNXB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4uY29uc2Npb3VzbmVzc0VtcHR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE2MHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDU2cHg7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU1NTY1NiAhaW1wb3J0YW50O1xufVxuXG4ub2tCdXR0b24ge1xuICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy9yaWdodDogMDtcbiAgLy90b3A6IDA7XG4gIC8vbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWMyNDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDI4cHg7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi5va0J1dHRvbldpZGUge1xuICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy9yaWdodDogMDtcbiAgLy90b3A6IDA7XG4gIC8vbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDU2cHg7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTg4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFjMjQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuLmdyZXllZE91dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5kaXNhYmxlRGl2IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uY2xvc2VCdXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgd2lkdGg6IDUwcHg7XG59XG5cbi5hdnB1QUJDR3JpZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMyU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICB3aWR0aDogOTQlO1xuICBoZWlnaHQ6IDczJTtcbiAgdG9wOiAxNHB4O1xuICAvL2JhY2tncm91bmQtY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2NzU2l6ZSB7XG4gIC8vaGVpZ2h0OiAxNSU7XG4gIC8vaGVpZ2h0OiAxMCU7XG4gIGhlaWdodDogNTBweDtcbn1cblxuLmNoZWNrUGF0aWVudFN0YXR1c0JhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIC8vZm9udC1zaXplOiAyOHB4OyBCYXJsb3cgYW5kIE9zd2FsZCBoZWlnaHRcbiAgZm9udC1zaXplOiA0NHB4O1xuICBsZXR0ZXItc3BhY2luZzogNHB4O1xuICAvL3BhZGRpbmc6IDIycHggMCAwIDA7XG4gIC8vcGFkZGluZzogN3B4IDAgMCAwOyBPc3dhbGQgcGFkZGluZ1xuICBwYWRkaW5nOiAwcHggMCAwIDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWdzL0NoZWNrLVBhdGllbnQtU3RhdHVzLUdyYWRpZW50LUJHLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA4MnB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG59XG5cbi5lY2hvQnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1NnB4O1xuICB0b3A6IDIwcHg7XG4gIGhlaWdodDogNTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5maXJzdEFpZFN5bWJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjkwcHg7XG4gIHRvcDogMzJweDtcbiAgaGVpZ2h0OiA0NnB4O1xufVxuXG4uZmlyc3RBaWRTeW1ib2xUb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1NnB4O1xuICB0b3A6IDIwcHg7XG4gIGhlaWdodDogNTJweDtcbn1cblxuLmJ1dHRvbkdyaWQge1xuICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNSU7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmlvbi1jb2wge1xuICAvL21hcmdpbjogMCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uY29sIHtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xufVxuXG4uYnV0dG9uQ29sIHtcbiAgaGVpZ2h0OiAxMCU7XG59XG5cbi5ub0xlZnRQYWRkaW5nIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ub0NvbFBhZGRpbmcge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm9SaWdodFBhZGRpbmcge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ub1Jvd1BhZGRpbmcge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ubm9Ub3BQYWRkaW5nIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLmNwc0xhc3RDb2wge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uY29sSW5uZXIge1xuICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgYmx1ZTtcbiAgaGVpZ2h0OiA2NHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1ncy9BQkMtYnV0dG9ucy1ncmFkaWVudC1CRy5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNXB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIGZvbnQtc2l6ZTogNDJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hdnB1QUJDSGVpZ2h0IHtcbiAgLy9oZWlnaHQ6IDIzMHB4O1xuICBoZWlnaHQ6IDI3MHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG59XG5cbi5jcHNCdXR0b25zQVZQVSB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIC8vaGVpZ2h0OiAyMzBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI3MHB4ICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLmNwc0J1dHRvbnMge1xuICAvL3BhZGRpbmc6IDIwcHg7XG4gIC8vaGVpZ2h0OiAxMTFweDtcbiAgaGVpZ2h0OiAxMzNweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xufVxuXG4uY3BzVG9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiA5OCU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uY3BzQm90dG9tIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiA5OCU7XG59XG5cbi5jcHNCdXR0b24xU3RhcnQge1xuICAvL2JhY2tncm91bmQ6IHJnYigwLCAxODAsIDIyMCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgIDEzN2RlZyxcbiAgICAgICAgICAgICAgICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgICAgICAgICAgICAgICAgcmdiYSgxOSwgMTQ0LCAyMDcsIDEpIDUwJVxuICApO1xufVxuXG4uY3BzQ29uZmlybWVkIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAjNGQ1ZWFiO1xuICBjb2xvcjogd2hpdGU7XG4gIGhlaWdodDogNjRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLy9wYWRkaW5nOiAxMnB4IDhweCAwIDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jcHNDb25maXJtZWRDb2wge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTksIDE0NCwgMjA3LCAxKTtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5LCAxNDQsIDIwNywgMSk7XG4gIGJhY2tncm91bmQ6IHJnYigwLCAxODAsIDIyMCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgIDEzN2RlZyxcbiAgICAgICAgICAgICAgICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgICAgICAgICAgICAgICAgcmdiYSgxOSwgMTQ0LCAyMDcsIDEpIDUwJVxuICApO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gQVZBVEFSIFNUWUxFU1xuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuXG4uYXZhdGFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIC8vYm9yZGVyOiAycHggc29saWQgeWVsbG93O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xufVxuXG4uc3dpcGVVcExlZnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDAlO1xuICBsZWZ0OiA0JTtcbiAgd2lkdGg6IDE1JTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgei1pbmRleDogMTtcbn1cblxuLmF2YXRhckltYWdlIHtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5hdnB1VGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1cHg7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBibHVlO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAyMDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG5cbi5hdnB1VGV4dFNpbmdsZUxpbmUge1xuICBwYWRkaW5nLXRvcDogMTZweDtcbn1cblxuLnN3aXBlVXBSaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0MCU7XG4gIHJpZ2h0OiA3JTtcbiAgd2lkdGg6IDE1JTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLnNlbEdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MDtcbn1cblxuLnNlbFJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzFkMjc7XG59XG5cbi5zZWxWb2ljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTcyYjc7XG59XG5cbi5hdnB1QSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGE2NTEgIWltcG9ydGFudDtcbn1cblxuLmF2cHVWIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM5NzJiNyAhaW1wb3J0YW50O1xufVxuXG4uYXZwdVAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ5MjJjICFpbXBvcnRhbnQ7XG59XG5cbi5hdnB1VSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFjMjQgIWltcG9ydGFudDtcbn1cblxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gRU5EIE9GIEFWQVRBUiBTVFlMRVNcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblxuLnRleHRPbmx5IHtcbiAgcGFkZGluZy10b3A6IDM4cHg7XG4gIGZvbnQtc2l6ZTogNTBweCAhaW1wb3J0YW50O1xufVxuXG4uT0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMzUwICFpbXBvcnRhbnQ7XG59XG5cbi5Ob3RPSyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzFkMjcgIWltcG9ydGFudDtcbn1cblxuLmJnT0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMzUwO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5iZ1dhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRjMzAwO1xufVxuXG4uYmdOb3RPSyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzFkMjc7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLndoaXRlVGV4dCB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uY29uc2Npb3VzbmVzc09LIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MCAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmNvbnNjaW91c25lc3NOb3RPSyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzFkMjcgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbn1cblxuLmRlc2VsZWN0VGljayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRlc2VsZWN0Q29uZmlybWVkIHtcbiAgLy9jb2xvcjogIzg4ODg4OCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzY2NjY2NiAhaW1wb3J0YW50O1xufVxuXG4uZGVzZWxlY3RDb25zY2lvdXNuZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIC8vY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9jZWVkVGlja0Rlc2VsZWN0IHtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4uYWJjQXdha2Uge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDEycHggMCA4cHggMjBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWdzL0FCQy1ob3ctbWFueS1taW51dGVzLWdyYWRpZW50LUJHLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiAzcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgY29sb3I6ICM1NTU2NTY7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgeWVsbG93O1xufVxuXG4uYnV0dG9uQ29uc2Npb3VzbmVzcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDRweDtcbiAgdG9wOiA0cHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwYWRkaW5nOiA4cHggMDtcbiAgd2lkdGg6IDIzMHB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjNTU1NjU2O1xufVxuXG4uYWJjUHJvY2VlZCB7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogIzRkNWVhYjtcbiAgLypiYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM3ZGVnLFxuICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTsqL1xuICBjb2xvcjogd2hpdGU7XG4gIGhlaWdodDogNjRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTJweCAwIDAgMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmF2cHVTcGFjZXIge1xuICBoZWlnaHQ6IDVweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG59XG5cbi5hd2FrZUhlaWdodCB7XG4gIGhlaWdodDogNjRweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5hd2FrZUNvbEhvbGRlciB7XG4gIHBhZGRpbmc6IDAgM3B4IDAgMCAhaW1wb3J0YW50O1xufVxuXG4ucHJvY2VlZENvbEhvbGRlciB7XG4gIHBhZGRpbmc6IDAgMCAwIDZweCAhaW1wb3J0YW50O1xufVxuXG4ucHJvY2VlZFRpY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIGhlaWdodDogMzZweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4ubGFzdEJ1dHRvbiB7XG4gIHJpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuLnJpZ2h0UGF0dGVybiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIGhlaWdodDogNjkuNSU7XG4gIHdpZHRoOiAzJTtcbiAgdG9wOiAxMDBweDtcbiAgcmlnaHQ6IDA7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogcGluaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltZ3MvcGF0dGVybi5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teTogY2VudGVyO1xufVxuIiwiXG5cbi5pY29ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIE9wZW5JY29uaWM7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaWNvbnMtcm90YXRlLTQ1IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuLmljb25zLXJvdGF0ZS05MCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi5pY29ucy1yb3RhdGUtMTM1IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG46cm9vdCAuaWNvbnMtcm90YXRlLTQ1LFxuOnJvb3QgLmljb25zLXJvdGF0ZS05MCxcbjpyb290IC5pY29ucy1yb3RhdGUtMTM1IHtcbiAgZmlsdGVyOiBub25lO1xufVxuXG4uaWNvbnMtc3RhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICB3aWR0aDoyZW07XG4gIGhlaWdodDoyZW07XG4gIGxpbmUtaGVpZ2h0OjJlbTtcbiAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xufVxuXG4uaWNvbnMtc3RhY2stMXgsXG4uaWNvbnMtc3RhY2stMngge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6MDtcbiAgd2lkdGg6MTAwJTtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG59XG5cbi5pY29ucy1zdGFjay0xeCB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uaWNvbnMtc3RhY2stMngge1xuICBmb250LXNpemU6MmVtO1xufVxuXG4uaWNvbnMtaW52ZXJzZSB7XG4gIGNvbG9yOiNmZmZmZmY7XG59XG5cbi5pY29ucy1hcnJvdy1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXEUwMDknO1xufVxuXG4uaWNvbnMtYXJyb3ctdzpiZWZvcmUge1xuICBjb250ZW50OiAnXFxFMDBBJztcbn1cblxuLmljb25zLWFycm93LWU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcRTAwQic7XG59XG5cbi5pY29ucy1hcnJvdy1uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXEUwMEMnO1xufVxuXG4uaWNvbnMtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcRTAzMyc7XG59XG5cbi5pY29ucy1jbG9jazpiZWZvcmUge1xuICBjb250ZW50OiAnXFxFMDNCJztcbn1cbi5pY29ucy1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxFMDNFJztcbn1cblxuLmljb25zLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcRTA4Nic7XG59XG5cbi5pY29ucy1sb29wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXEUwOEQnO1xufVxuXG5cblxuXG5cbiJdfQ== */\";","import { Component } from '@angular/core';\nimport { CpsTopBottom } from '../models/CpsTopBottom';\nimport { VitalsConfig } from '../models/VitalsConfig';\nimport { VitalReading } from '../models/VitalReading';\nimport { VitalsUpdate } from '../models/VitalsUpdate';\n\n@Component({\n selector: 'app-home',\n templateUrl: 'home.page.html',\n styleUrls: ['home.page.scss']\n})\nexport class HomePage {\n emptyString = '';\n testString = 'TestString';\n\n boolTrue = true;\n boolFalse = false;\n\n topBottomConfig: CpsTopBottom = {\n topVal: 'Top',\n bottomVal: 'Bottom'\n };\n\n hrConfig: VitalsConfig = {\n vitalTitle: 'Heart Rate',\n vitalType: 'hr',\n vitalUnits: 'BPM',\n vitalUnits2: null,\n imageID: 'hrOK'\n };\n\n brConfig: VitalsConfig = {\n vitalTitle: 'Respiratory Rate',\n vitalType: 'br',\n vitalUnits: 'BrPM',\n vitalUnits2: null,\n imageID: 'brOK'\n };\n\n satsConfig: VitalsConfig = {\n vitalTitle: 'Oxygen Sats',\n vitalType: 'sats',\n vitalUnits: '%',\n vitalUnits2: null,\n imageID: 'satsOK'\n };\n\n tempConfig: VitalsConfig = {\n vitalTitle: 'Temperature',\n vitalType: 'temp',\n vitalUnits: '°',\n vitalUnits2: null,\n imageID: 'tempOK'\n };\n\n bpConfig: VitalsConfig = {\n vitalTitle: 'Blood Pressure',\n vitalType: 'bp',\n vitalUnits: 'sys',\n vitalUnits2: 'dia',\n imageID: 'bpOK'\n };\n\n topBottomChainVal = '';\n constructor() {}\n\n /* Vital-sign - HR configuration */\n testHR: string;\n testBR: string;\n testSATS: string;\n testTEMP: string;\n testBP: string;\n\n blankVitalsReturnData: VitalsUpdate = {\n vitalTitle: '',\n vitalType: '',\n vitalUnits: '',\n imageID: '',\n reading: 0,\n timestamp: 0\n };\n\n vitalsReturnData: VitalsUpdate = { ...this.blankVitalsReturnData };\n\n brVitalsReturnData: VitalsUpdate = { ...this.blankVitalsReturnData };\n\n satsVitalsReturnData: VitalsUpdate = { ...this.blankVitalsReturnData };\n\n tempVitalsReturnData: VitalsUpdate = { ...this.blankVitalsReturnData };\n\n bpVitalsReturnData: VitalsUpdate = { ...this.blankVitalsReturnData };\n\n newHRValue: VitalReading;\n newBRValue: VitalReading;\n newSATSValue: VitalReading;\n newTEMPValue: VitalReading;\n newBPValue: VitalReading;\n\n vitalTheme = false;\n padVisible = false;\n vitalRequested = '';\n\n doConfirmButton(e) {\n console.log('doConfirmButton', e);\n }\n\n setTopBottomChain(e) {\n console.log('SetTopBottomChain', e);\n\n this.topBottomChainVal = e;\n }\n\n /*\n\n For handling vitals\n */\n\n /**\n *\n */\n testSetHR() {\n console.log('testSetHR', this.testHR);\n if (this.testHR !== null) {\n this.newHRValue = {\n reading: this.testHR,\n timestamp: Date.now()\n };\n }\n }\n\n testSetBR() {\n console.log('testSetBR', this.testBR);\n if (this.testBR !== null) {\n this.newBRValue = {\n reading: this.testBR,\n timestamp: Date.now()\n };\n }\n }\n\n testSetSATS() {\n console.log('testSetSATS', this.testSATS);\n if (this.testSATS !== null) {\n this.newSATSValue = {\n reading: this.testSATS,\n timestamp: Date.now()\n };\n }\n }\n\n testSetTEMP() {\n console.log('testSetTEMP', this.testSATS);\n if (this.testTEMP !== null) {\n this.newTEMPValue = {\n reading: this.testTEMP,\n timestamp: Date.now()\n };\n }\n }\n\n testSetBP() {\n console.log('testSetBP', this.testSATS);\n if (this.testBP !== null) {\n this.newBPValue = {\n reading: this.testBP,\n timestamp: Date.now()\n };\n }\n }\n\n /**\n * Captures the data exported from a vitals component\n * @param e the exported VitalsUpdate\n */\n captureVitalsUpdate(e: object): void {\n console.log('captureVitalsUpdate', e);\n this.vitalsReturnData = e as VitalsUpdate;\n }\n\n captureBRVitalsUpdate(e: object): void {\n console.log('captureBRVitalsUpdate', e);\n this.brVitalsReturnData = e as VitalsUpdate;\n }\n\n captureSATSVitalsUpdate(e: object): void {\n console.log('captureSATSVitalsUpdate', e);\n this.satsVitalsReturnData = e as VitalsUpdate;\n }\n\n captureTEMPVitalsUpdate(e: object): void {\n console.log('captureTEMPVitalsUpdate', e);\n this.tempVitalsReturnData = e as VitalsUpdate;\n }\n\n captureBPVitalsUpdate(e: object): void {\n console.log('captureBPVitalsUpdate', e);\n this.bpVitalsReturnData = e as VitalsUpdate;\n }\n\n /**\n * Captures the data exported from the keypad for use in a vital component\n * @param event The exported value\n */\n vitalCapture(event: string) {\n console.log('vitalCapture::from pad', event);\n this.padVisible = false;\n\n if (this.vitalRequested === 'BPM') {\n this.newHRValue = {\n reading: event,\n timestamp: Date.now()\n };\n }\n }\n\n /**\n * Captures the request from the vital components to display the keypad\n * @param event the exported object\n */\n vitalsRequestInput(event: object) {\n console.log('vitalsRequestInput', event);\n // @ts-ignore\n this.vitalRequested = event.vitalUnits;\n this.padVisible = true;\n }\n\n bpRequestInput(event: object) {\n console.log('vitalsRequestInput', event);\n // @ts-ignore\n this.vitalRequested = 'mmHg';\n this.padVisible = true;\n }\n}\n"]} |