{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/components/contacts/contacts.component.css","webpack:///./src/app/components/contacts/contacts.component.html","webpack:///./src/app/components/contacts/contacts.component.ts","webpack:///./src/app/components/diary/diary.component.css","webpack:///./src/app/components/diary/diary.component.html","webpack:///./src/app/components/diary/diary.component.ts","webpack:///./src/app/components/home-page/create-patient-dialog.html","webpack:///./src/app/components/home-page/home-page.component.css","webpack:///./src/app/components/home-page/home-page.component.html","webpack:///./src/app/components/home-page/home-page.component.ts","webpack:///./src/app/components/home-page/popup-graph-dialog.html","webpack:///./src/app/components/login-page/login-page.component.css","webpack:///./src/app/components/login-page/login-page.component.html","webpack:///./src/app/components/login-page/login-page.component.ts","webpack:///./src/app/components/measurements/measurements.component.css","webpack:///./src/app/components/measurements/measurements.component.html","webpack:///./src/app/components/measurements/measurements.component.ts","webpack:///./src/app/components/message/message.component.css","webpack:///./src/app/components/message/message.component.html","webpack:///./src/app/components/message/message.component.ts","webpack:///./src/app/components/overview-activity/overview-activity.component.css","webpack:///./src/app/components/overview-activity/overview-activity.component.html","webpack:///./src/app/components/overview-activity/overview-activity.component.ts","webpack:///./src/app/components/overview-activity/results-view.html","webpack:///./src/app/components/plan-activity/activity-info.html","webpack:///./src/app/components/plan-activity/plan-activity.component.css","webpack:///./src/app/components/plan-activity/plan-activity.component.html","webpack:///./src/app/components/plan-activity/plan-activity.component.ts","webpack:///./src/app/components/plan-assessment/assessment-info.html","webpack:///./src/app/components/plan-assessment/plan-assessment.component.css","webpack:///./src/app/components/plan-assessment/plan-assessment.component.html","webpack:///./src/app/components/plan-assessment/plan-assessment.component.ts","webpack:///./src/app/components/qr-code/qr-code.component.css","webpack:///./src/app/components/qr-code/qr-code.component.html","webpack:///./src/app/components/qr-code/qr-code.component.ts","webpack:///./src/app/components/result-overview/result-overview.component.css","webpack:///./src/app/components/result-overview/result-overview.component.html","webpack:///./src/app/components/result-overview/result-overview.component.ts","webpack:///./src/app/components/settings/settings.component.css","webpack:///./src/app/components/settings/settings.component.html","webpack:///./src/app/components/settings/settings.component.ts","webpack:///./src/app/components/utils.ts","webpack:///./src/app/components/video/video.component.css","webpack:///./src/app/components/video/video.component.html","webpack:///./src/app/components/video/video.component.ts","webpack:///./src/app/menu/menu.component.css","webpack:///./src/app/menu/menu.component.html","webpack:///./src/app/menu/menu.component.ts","webpack:///./src/app/services/calendar.service.ts","webpack:///./src/app/services/dataservice.service.ts","webpack:///./src/app/services/game-information.service.ts","webpack:///./src/app/services/message-handler.service.ts","webpack:///./src/app/side-content/side-content.component.css","webpack:///./src/app/side-content/side-content.component.html","webpack:///./src/app/side-content/side-content.component.ts","webpack:///./src/app/side-content/side-content.service.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA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","file":"main.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpModule, JsonpModule } from '@angular/http';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { FormsModule } from '@angular/forms';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {\n MatButtonModule, MatCardModule, MatMenuModule, MatToolbarModule, MatIconModule, MatTableModule,\n MatSliderModule, MatInputModule, MatCheckboxModule, MatFormFieldModule, MatSnackBarModule, MatDialogModule,\n MatSelectModule, MatTabsModule, MatPaginatorModule \n} from '@angular/material'\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { ChartsModule } from 'ng2-charts';\nimport { NvD3Module } from 'ng2-nvd3';\n\nimport 'd3';\nimport 'nvd3';\n\nimport { enableProdMode } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { DataserviceService } from './services/dataservice.service';\nimport { CalendarService } from './services/calendar.service';\nimport { GameInformationService } from './services/game-information.service';\nimport { MessageHandlerService } from './services/message-handler.service';\n\nimport { AppComponent } from './app.component';\nimport { LoginPageComponent } from './components/login-page/login-page.component';\nimport { HomePageComponent, CreatePatientDialog, PopupGraphDialog } from './components/home-page/home-page.component';\nimport { QrCodeComponent } from './components/qr-code/qr-code.component';\nimport { ContactsComponent } from './components/contacts/contacts.component';\nimport { PlanActivityComponent, ActivityInfoDialog } from './components/plan-activity/plan-activity.component';\nimport { OverviewActivityComponent, ResultsViewDialog } from './components/overview-activity/overview-activity.component';\nimport { MessageComponent } from './components/message/message.component';\nimport { PlanAssessmentComponent, AssessmentInfoDialog } from './components/plan-assessment/plan-assessment.component';\nimport { ResultOverviewComponent } from './components/result-overview/result-overview.component';\nimport { MeasurementsComponent } from './components/measurements/measurements.component';\nimport { DiaryComponent } from './components/diary/diary.component';\nimport { VideoComponent } from './components/video/video.component';\nimport { SettingsComponent } from './components/settings/settings.component';\nimport { MenuComponent } from './menu/menu.component';\nimport { SideContentComponent } from './side-content/side-content.component';\n\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport { SideContentService } from './side-content/side-content.service';\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\n\nenableProdMode();\n\nconst appRoutes: Routes = [\n { path: '', component: LoginPageComponent },\n { path: 'home', component: HomePageComponent },\n { path: 'home/settings', component: SettingsComponent },\n { path: 'schedule/exercises', component: PlanActivityComponent },\n { path: 'schedule/assessment', component: PlanAssessmentComponent },\n { path: 'overview', component: OverviewActivityComponent },\n { path: 'overview/results', component: ResultOverviewComponent },\n { path: 'overview/measurements', component: MeasurementsComponent },\n { path: 'overview/diary', component: DiaryComponent },\n { path: 'contact', component: ContactsComponent },\n { path: 'contact/message', component: MessageComponent },\n { path: 'contact/video', component: VideoComponent },\n { path: 'qr', component: QrCodeComponent },\n];\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginPageComponent,\n HomePageComponent,\n QrCodeComponent,\n ContactsComponent,\n CreatePatientDialog,\n PopupGraphDialog,\n PlanActivityComponent,\n ActivityInfoDialog,\n OverviewActivityComponent,\n MessageComponent,\n PlanAssessmentComponent,\n AssessmentInfoDialog,\n ResultsViewDialog,\n ResultOverviewComponent,\n MeasurementsComponent,\n DiaryComponent,\n VideoComponent,\n SettingsComponent,\n MenuComponent,\n SideContentComponent\n ],\n imports: [\n BrowserModule,\n HttpModule,\n JsonpModule,\n RouterModule.forRoot(appRoutes),\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatDialogModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatSelectModule,\n MatSliderModule,\n MatSnackBarModule,\n MatTabsModule,\n MatPaginatorModule ,\n BrowserAnimationsModule,\n FormsModule,\n NgxPaginationModule,\n ChartsModule,\n NvD3Module,\n BsDropdownModule.forRoot(),\n TooltipModule.forRoot(),\n ModalModule.forRoot(),\n NgbModule,\n NgMultiSelectDropDownModule.forRoot(),\n MatTableModule\n ],\n providers: [DataserviceService, MessageHandlerService, GameInformationService, CookieService, CalendarService, SideContentService],\n bootstrap: [AppComponent],\n entryComponents: [CreatePatientDialog, ActivityInfoDialog, AssessmentInfoDialog, ResultsViewDialog, PopupGraphDialog]\n})\nexport class AppModule { }\n","module.exports = \"\\n.table-container {\\n display:block; \\n width:40%; \\n margin-right:auto; \\n margin-left:auto;\\n}\\n.requstTable {\\n border-collapse: collapse;\\n margin-left:auto; \\n margin-right:auto;\\n table-layout:fixed;\\n width: 100%;\\n}\\n.requstTable td, .requstTable th {\\n display:table-cell;\\n width:100px;\\n}\\n.requstTable td, .requstTable th, .contact-table td, .contact-table th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n.contact-table {\\n text-align: left;\\n width: 40%;\\n margin-right: auto;\\n margin-left: auto; \\n margin-bottom: 50px;\\n border-collapse: collapse;\\n table-layout:fixed;\\n}\\n.contact-table tr:hover, .requstTable tr:hover {\\n background-color: rgba(17, 175, 253, 0.3);\\n cursor: pointer;\\n }\\n.contact-table tr:first-child, .contact-table tr:first-child:hover,\\n.requstTable tr:first-child, .requstTable tr:first-child:hover{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n background-color: rgba(141, 140, 142, 0.3); /*rgba(91, 226, 120, 0.3)*/\\n }\\n.dialogButton {\\n border: 1px solid black;\\n background-color: #BDBDBD; \\n}\\n.dialogButton:hover {\\n cursor: pointer;\\n background-color: rgba(17, 175, 253, 1);\\n}\\nselect {\\n border: none;\\n border-bottom: 1px solid rgba(0,0,0,.67);\\n font-size: 20px;\\n margin-top: 10px;\\n padding: 9px 0px 8px 0px; \\n color: rgba(0,0,0,.67);\\n}\\n.action-icon {\\n font-size: 28px !important;\\n width: 28px !important;\\n height: 28px !important;\\n}\\n.action-icon:hover, .tableButton:hover {\\n cursor: pointer;\\n color: rgba(147, 17, 253, 0.9) !important;\\n}\\n@media only screen and (max-width: 1000px){\\n .contact-table {\\n text-align: center;\\n width: 90%;\\n margin-right: auto; \\n margin-left: auto; \\n border-collapse: collapse;\\n }\\n .table-container {\\n width:90%;\\n }\\n .margin10 {\\n margin-left: auto;\\n } \\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250YWN0cy9jb250YWN0cy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGFBQWE7SUFDYixTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtBQUNwQjtBQUNBO0lBQ0kseUJBQXlCO0lBQ3pCLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLFdBQVc7QUFDZjtBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLFdBQVc7QUFDZjtBQUNBO0lBQ0ksNEJBQTRCO0lBQzVCLGFBQWE7RUFDZjtBQUNGO0lBQ0ksZ0JBQWdCO0lBQ2hCLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsa0JBQWtCO0FBQ3RCO0FBQ0E7SUFDSSx5Q0FBeUM7SUFDekMsZUFBZTtFQUNqQjtBQUNGOztJQUVJLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsMENBQTBDLEVBQUUsMEJBQTBCO0VBQ3hFO0FBRUE7SUFDRSx1QkFBdUI7SUFDdkIseUJBQXlCO0FBQzdCO0FBRUE7SUFDSSxlQUFlO0lBQ2YsdUNBQXVDO0FBQzNDO0FBRUE7SUFDSSxZQUFZO0lBQ1osd0NBQXdDO0lBQ3hDLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtBQUMxQjtBQUVBO0lBQ0ksMEJBQTBCO0lBQzFCLHNCQUFzQjtJQUN0Qix1QkFBdUI7QUFDM0I7QUFDQTtJQUNJLGVBQWU7SUFDZix5Q0FBeUM7QUFDN0M7QUFHQTtJQUNJO1FBQ0ksa0JBQWtCO1FBQ2xCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtJQUM3QjtJQUNBO1FBQ0ksU0FBUztJQUNiO0lBQ0E7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTpibG9jazsgXG4gICAgd2lkdGg6NDAlOyBcbiAgICBtYXJnaW4tcmlnaHQ6YXV0bzsgXG4gICAgbWFyZ2luLWxlZnQ6YXV0bztcbn1cbi5yZXF1c3RUYWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tbGVmdDphdXRvOyBcbiAgICBtYXJnaW4tcmlnaHQ6YXV0bztcbiAgICB0YWJsZS1sYXlvdXQ6Zml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ucmVxdXN0VGFibGUgdGQsIC5yZXF1c3RUYWJsZSB0aCB7XG4gICAgZGlzcGxheTp0YWJsZS1jZWxsO1xuICAgIHdpZHRoOjEwMHB4O1xufVxuLnJlcXVzdFRhYmxlIHRkLCAucmVxdXN0VGFibGUgdGgsIC5jb250YWN0LXRhYmxlIHRkLCAuY29udGFjdC10YWJsZSB0aCB7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG4uY29udGFjdC10YWJsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogNDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgICAgXG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHRhYmxlLWxheW91dDpmaXhlZDtcbn1cbi5jb250YWN0LXRhYmxlIHRyOmhvdmVyLCAucmVxdXN0VGFibGUgdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjMpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuLmNvbnRhY3QtdGFibGUgdHI6Zmlyc3QtY2hpbGQsIC5jb250YWN0LXRhYmxlIHRyOmZpcnN0LWNoaWxkOmhvdmVyLFxuLnJlcXVzdFRhYmxlIHRyOmZpcnN0LWNoaWxkLCAucmVxdXN0VGFibGUgdHI6Zmlyc3QtY2hpbGQ6aG92ZXJ7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIGdyYXk7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQxLCAxNDAsIDE0MiwgMC4zKTsgLypyZ2JhKDkxLCAyMjYsIDEyMCwgMC4zKSovXG4gIH1cblxuICAuZGlhbG9nQnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkRCREJEOyAgICBcbn1cblxuLmRpYWxvZ0J1dHRvbjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAxKTtcbn1cblxuc2VsZWN0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjY3KTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nOiA5cHggMHB4IDhweCAwcHg7ICAgIFxuICAgIGNvbG9yOiByZ2JhKDAsMCwwLC42Nyk7XG59XG5cbi5hY3Rpb24taWNvbiB7XG4gICAgZm9udC1zaXplOiAyOHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDI4cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcbn1cbi5hY3Rpb24taWNvbjpob3ZlciwgLnRhYmxlQnV0dG9uOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHJnYmEoMTQ3LCAxNywgMjUzLCAwLjkpICFpbXBvcnRhbnQ7XG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpe1xuICAgIC5jb250YWN0LXRhYmxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87ICAgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyAgICBcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB9XG4gICAgLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOjkwJTtcbiAgICB9XG4gICAgLm1hcmdpbjEwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfSAgICBcbn0iXX0= */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Kontakter

\\n

I listorna nedan presenteras alla dina kontakter. Klicka på personens namn för att starta ett samtal eller\\n skicka ett\\n meddelande. Alla användare som är aktiva just nu är markerade med en grön prick.\\n

\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Patientkontakter
\\n
\\n account_circle\\n {{person.displayName}} fiber_manual_record\\n \\n
\\n
\\n chat\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
KollegaRoll
\\n account_circle\\n {{person.displayName}} fiber_manual_record\\n \\n {{person.profession}}
\\n chat\\n
\\n
\\n
\\n
\\n
\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { Router } from '@angular/router'\n\n@Component({\n selector: 'app-contacts',\n templateUrl: './contacts.component.html',\n styleUrls: ['./contacts.component.css']\n})\nexport class ContactsComponent implements OnInit {\n requests: string[];\n showFriendRequests: boolean = false;\n\n patientContacts: Contact[];\n professionalContacts: Contact[];\n \n plannedQuest: boolean = false;\n showWarning: boolean = false;\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService) { }\n\n ngOnInit() {\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n this.loadContacts();\n }\n\n private loadContacts() {\n this.mhs.getAllContactsFromChatService().subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let data = resp.json();\n this.patientContacts = new Array();\n this.professionalContacts = new Array();\n for (let entry of data) {\n if (entry.isPatient) {\n this.patientContacts.push({\n name: entry.name,\n instance: entry.instance,\n sessionId: entry.sessionId,\n displayName: entry.name + \" (\" + entry.instance + \")\",\n profession: \"\",\n showActionBar: false,\n isActive: entry.isActive,\n hasPicture: entry.picture != null,\n picture: 'data:image/png;base64,' + entry.picture\n });\n }\n else {\n this.professionalContacts.push({\n name: entry.name,\n instance: entry.instance,\n sessionId: entry.sessionId,\n displayName: entry.name + \" (\" + entry.instance + \")\",\n profession: entry.profession,\n showActionBar: false,\n isActive: entry.isActive,\n hasPicture: entry.picture != null,\n picture: 'data:image/png;base64,' + entry.picture\n });\n }\n }\n\n this.professionalContacts.sort(function (a, b) {\n if (a.displayName < b.displayName) { return -1; }\n if (a.displayName > b.displayName) { return 1; }\n return 0;\n });\n\n this.patientContacts.sort(function (a, b) {\n if (a.displayName < b.displayName) { return -1; }\n if (a.displayName > b.displayName) { return 1; }\n return 0;\n });\n\n }\n });\n }\n\n showActionRow(contact: Contact) {\n for (let c of this.patientContacts) {\n if (c.displayName == contact.displayName) {\n c.showActionBar = !c.showActionBar;\n }\n }\n for (let cProf of this.professionalContacts) {\n if (cProf.displayName == contact.displayName) {\n cProf.showActionBar = !cProf.showActionBar;\n }\n }\n }\n\n selectVideoContact(contact: Contact) {\n this.mhs.setCurrentContact(contact);\n this.router.navigate(['contact/video']);\n return false;\n }\n\n selectMessageContact(contact: Contact) {\n this.mhs.setCurrentContact(contact);\n this.router.navigate(['contact/message']);\n return false;\n }\n}\n\n\ninterface Contact {\n displayName: string;\n name: string;\n instance: string;\n sessionId: string;\n profession: string;\n showActionBar: boolean;\n isActive: boolean;\n hasPicture: boolean;\n picture: string;\n}\n\ninterface FriendRequest {\n requestBy: string;\n requestInstance: string;\n friendName: string;\n friendInstance: string;\n accepted: boolean;\n}","module.exports = \"\\n\\n .dateList {\\n width: 90%;\\n margin-left: auto;\\n margin-right: auto;\\n text-align: left;\\n }\\n\\n .dateList li:hover, .dateList button:hover {\\n cursor: pointer;\\n color: rgba(17, 175, 253, 0.9);\\n }\\n\\n .dateList button, .dateList button:focus {\\n background-color: transparent;\\n border: none;\\n width: 100%;\\n text-align: left;\\n font-size: 20px;\\n padding: 0px;\\n outline:0;\\n}\\n\\n .dateList input {\\n padding: 0 10px;\\n height: 30px;\\n color: #222;\\n border-radius: 3px;\\n border: 1px solid rgb(80, 133, 240);;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n .answer {\\n display: block; \\n -ms-flex-pack: left; \\n justify-content: left;\\n text-align: left;\\n width: 90%;\\n margin-left: 5%;\\n margin-top: 0px; \\n background-color: white;\\n border: none;\\n border-radius: 3px;\\n }\\n\\n .answer p{\\n margin: 0px;\\n padding-left: 10px;\\n padding-right: 10px;\\n text-align: left; \\n height: 50px; \\n vertical-align: middle;\\n line-height: 50px;\\n}\\n\\n .transperent-button:hover {\\n color: rgba(17, 175, 253, 0.9);\\n cursor: pointer;\\n}\\n\\n .msg_button, .msg_button:focus {\\n vertical-align: middle;\\n text-align: center;\\n font-size: 20px;\\n background-color: transparent;\\n border: none;\\n padding: 10px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n line-height: 50px;\\n -ms-flex-pack: center;\\n justify-content: center;\\n outline: none;\\n}\\n\\n .msg_button mat-icon, .icon {\\n line-height: 50px !important;\\n vertical-align: middle !important;\\n font-size: 30px !important;\\n width:30px !important;\\n height: 30px !important;\\n margin-right: 5px; \\n}\\n\\n .msg_button:hover {\\n color: rgba(17, 175, 253, 0.9);\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kaWFyeS9kaWFyeS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0VBRUU7SUFDRSxVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7RUFDbEI7O0VBRUE7TUFDSSxlQUFlO01BQ2YsOEJBQThCO0VBQ2xDOztFQUVBO0lBQ0UsNkJBQTZCO0lBQzdCLFlBQVk7SUFDWixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixZQUFZO0lBQ1osU0FBUztBQUNiOztFQUVFO0lBQ0UsZUFBZTtJQUNmLFlBQVk7SUFDWixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLG1DQUFtQztJQUNuQyxnQkFBZ0I7SUFDaEIsbUJBQW1CO0FBQ3ZCOztFQUVBO0lBQ0ksY0FBYztJQUNkLG1CQUFxQjtRQUFyQixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLFVBQVU7SUFDVixlQUFlO0lBQ2YsZUFBZTtJQUNmLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osa0JBQWtCO0VBQ3BCOztFQUVGO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsaUJBQWlCO0FBQ3JCOztFQUVBO0VBQ0UsOEJBQThCO0VBQzlCLGVBQWU7QUFDakI7O0VBRUE7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZiw2QkFBNkI7RUFDN0IsWUFBWTtFQUNaLGFBQWE7RUFDYiwyQkFBb0I7RUFBcEIsb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixxQkFBdUI7TUFBdkIsdUJBQXVCO0VBQ3ZCLGFBQWE7QUFDZjs7RUFDQTtFQUNFLDRCQUE0QjtFQUM1QixpQ0FBaUM7RUFDakMsMEJBQTBCO0VBQzFCLHFCQUFxQjtFQUNyQix1QkFBdUI7RUFDdkIsaUJBQWlCO0FBQ25COztFQUVBO0VBQ0UsOEJBQThCO0VBQzlCLGVBQWU7QUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2RpYXJ5L2RpYXJ5LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuICAuZGF0ZUxpc3Qge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAuZGF0ZUxpc3QgbGk6aG92ZXIsIC5kYXRlTGlzdCBidXR0b246aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjkpO1xuICB9XG5cbiAgLmRhdGVMaXN0IGJ1dHRvbiwgLmRhdGVMaXN0IGJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBvdXRsaW5lOjA7XG59XG5cbiAgLmRhdGVMaXN0IGlucHV0IHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGNvbG9yOiAjMjIyO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoODAsIDEzMywgMjQwKTs7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYW5zd2VyIHtcbiAgICBkaXNwbGF5OiBibG9jazsgXG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXJnaW4tbGVmdDogNSU7XG4gICAgbWFyZ2luLXRvcDogMHB4OyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbi5hbnN3ZXIgcHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgICBcbiAgICBoZWlnaHQ6IDUwcHg7ICAgIFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG59XG5cbi50cmFuc3BlcmVudC1idXR0b246aG92ZXIge1xuICBjb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuOSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1zZ19idXR0b24sIC5tc2dfYnV0dG9uOmZvY3VzIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ubXNnX2J1dHRvbiBtYXQtaWNvbiwgLmljb24ge1xuICBsaW5lLWhlaWdodDogNTBweCAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMzBweCAhaW1wb3J0YW50O1xuICB3aWR0aDozMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDVweDsgXG59XG5cbi5tc2dfYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Dagbok

\\n

Välj användare först!

\\n

I listan nedan presenteras överskådliga resultat från frågeformulär som har fyllts i. Klicka på en specifik\\n rad för\\n att visualisera alla svar i formuläret. För att snabbare hitta ett specifikt datum kan sökfunktionen användas.\\n

\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
DatumVälmående (0-10)ViktTemperaturPulseSaturationTränat
{{rad.date}}{{rad.mood}}{{rad.weight}}{{rad.temperature}}{{rad.pulse}}{{rad.saturation}}JaNej
\\n \\n \\n
\\n
\\n\\n
\\n \\n\\n
\\n

{{title}}

\\n
\\n
\\n Uppskattat humör:\\n
\\n
\\n

{{mood}}

\\n
\\n
\\n Tillagd kommentar:\\n
\\n
\\n

{{comment}}

\\n
\\n
\\n Inlagda parametrar:\\n
\\n
\\n

Vikt: {{weight}} kg

\\n

Temp: {{temp}} °C

\\n

Puls: {{pulse}} bpm

\\n

Saturation: {{saturation}} %

\\n
\\n
\\n Utfört träning:\\n
\\n
\\n

{{exerciseInfo}}

\\n
\\n
\\n
\\n Träningsaktivitet:\\n
\\n
\\n

{{activities}}

\\n
\\n
\\n Träningstid:\\n
\\n
\\n

{{durationTime}} minuter

\\n
\\n
\\n Kommentar om träningen:\\n
\\n
\\n

{{exerciseComment}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\n\n@Component({\n selector: 'app-diary',\n templateUrl: './diary.component.html',\n styleUrls: ['./diary.component.css']\n})\nexport class DiaryComponent implements OnInit {\n showWarning: boolean = false;\n\n listOfQuestionaries: any[];\n filteredQuestionaries: any[];\n listOfDates: string[];\n filteredDates: string[];\n showSpecificQuestionair: boolean = false;\n\n title: string;\n mood: number;\n comment: string;\n weight: number;\n temp: number;\n pulse: number;\n saturation: number;\n performedExercise: boolean;\n exerciseInfo: string;\n activities: string;\n durationTime: number;\n exerciseComment: string;\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService) { }\n\n ngOnInit() {\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n this.showSpecificQuestionair = false;\n if (!this.showWarning) {\n this.getAllQuestionairs();\n }\n }\n\n private getAllQuestionairs() {\n this.dataservice.getDiariesFromDate(Date.now()).subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let data = resp.json();\n this.listOfQuestionaries = new Array();\n for (let entry of data){\n let day = new Date(entry.date);\n this.listOfQuestionaries.push({\n mood: entry.data.mood,\n weight: entry.data.weight,\n temperature: entry.data.temp,\n pulse: entry.data.pulse,\n saturation: entry.data.saturation,\n comment: entry.data.comment,\n activities: entry.data.activities,\n exerciseComment: entry.data.exerciseComment,\n estimatedTime: entry.data.estimatedTime,\n performedExercise: entry.data.haveExercised,\n date: day.getFullYear() + \"-\" + (day.getMonth()+1) + \"-\" + day.getDate(),\n timestamp: entry.date\n });\n }\n this.filteredQuestionaries = this.listOfQuestionaries.sort(function (a, b) {\n return b.timestamp - a.timestamp;\n });;\n\n if (data.length >= 100){\n let lastDate = this.filteredQuestionaries.reduce(\n (a, b) => a.timestamp < b.timestamp ? a : b\n ).timestamp;\n this.loadMoreDiaries(lastDate);\n }\n }\n });\n }\n\n private loadMoreDiaries(date : number){\n this.dataservice.getDiariesFromDate(date).subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let data = resp.json();\n if (data == null || data == \"\") { return; }\n for (let entry of data){\n let day = new Date(entry.date);\n this.listOfQuestionaries.push({\n mood: entry.data.mood,\n weight: entry.data.weight,\n temperature: entry.data.temp,\n pulse: entry.data.pulse,\n saturation: entry.data.saturation,\n comment: entry.data.comment,\n activities: entry.data.activities,\n exerciseComment: entry.data.exerciseComment,\n estimatedTime: entry.data.estimatedTime,\n performedExercise: entry.data.haveExercised,\n date: day.getFullYear() + \"-\" + (day.getMonth()+1) + \"-\" + day.getDate(),\n timestamp: entry.date\n });\n }\n this.filteredQuestionaries = this.listOfQuestionaries.sort(function (a, b) {\n return b.timestamp - a.timestamp;\n });;\n if (data.length > 100){\n let lastDate = this.filteredQuestionaries.reduce(\n (a, b) => a.timestamp < b.timestamp ? a : b\n ).timestamp;\n this.loadMoreDiaries(lastDate);\n }\n }\n });\n }\n\n private displaySpecificQuestionair(data: any) {\n this.mood = data.mood;\n this.comment = data.comment;\n this.weight = data.weight;\n this.temp = data.temperature;\n this.pulse = data.pulse;\n this.saturation = data.saturation;\n this.performedExercise = data.performedExercise;\n this.exerciseInfo = data.performedExercise ? 'Ja' : 'Nej';\n this.activities = this.getActivityTypes(data);\n this.durationTime = data.estimatedTime;\n this.exerciseComment = data.exerciseComment;\n }\n\n private getActivityTypes(data: any): string {\n let str = \"\";\n let parts = data.activities.split(\", \");\n for (let i = 1; i < parts.length; i++) {\n if (parts[i] == \"RUNNING\") {\n str = str + \"Löpning, \";\n }\n else if (parts[i] == \"WALKING\") {\n str = str + \"Gång, \";\n }\n else if (parts[i] == \"BIKING\") {\n str = str + \"Cykling, \";\n }\n else if (parts[i] == \"GAME_REHAB\") {\n str = str + \"Spel-rehabilitering, \";\n }\n else if (parts[i] == \"SWIMMING\") {\n str = str + \"Simning, \";\n }\n else if (parts[i] == \"GYM\") {\n str = str + \"Gym, \";\n }\n else {\n str = str + parts[i] + \", \";\n }\n }\n return str.substring(0, str.length - 2);\n }\n\n goBack() {\n this.showSpecificQuestionair = false;\n return false;\n }\n\n filterDates(event: any) {\n if (!event.target.value || event.target.value == 'undefined') {\n this.filteredQuestionaries = this.listOfQuestionaries;\n return false;\n }\n this.filteredQuestionaries = new Array();\n for (let quest of this.listOfQuestionaries) {\n if (quest.date.indexOf(event.target.value) >= 0) {\n this.filteredQuestionaries.push(quest);\n }\n }\n return false;\n }\n\n dateClick(item: any) {\n this.title = item.date;\n this.showSpecificQuestionair = true;\n\n this.displaySpecificQuestionair(item);\n }\n}\n","module.exports = \"
\\n

Skapa ny användare

\\n

Fyll i uppgifterna om användaren och klicka därefter på \\\"skapa användare\\\".

\\n
\\n

Användarnamn*:

\\n \\n
\\n
\\n

Förnamn:

\\n \\n
\\n
\\n

Efternamn:

\\n \\n
\\n
\\n

Telefonnummer:

\\n \\n
\\n
\\n

Email:

\\n \\n
\\n\\n
\\n

Välj mätparametrar*:

\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n {{param}}\\n \\n
\\n

Låg gräns:

\\n \\n
\\n
\\n
\\n

Hög gräns:

\\n \\n
\\n
\\n\\n
\\n \\n \\n
\\n

{{warning}}

\\n

{{information}}

\\n
\\n
\\n

Vill du radera användaren {{data.name}}?

\\n
\\n \\n \\n
\\n
\"","module.exports = \"\\n.textField {\\n width: 80%;\\n padding-left: 10%;\\n padding-right: 10%;\\n display: -ms-flexbox;\\n display: flex;\\n margin-bottom: 20px; \\n}\\n.textField p {\\n margin: 0px;\\n margin-right: 10px; \\n font-size: inherit;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n}\\n.textField input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n width: stretch;\\n}\\n.textField input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n.textField select, .textField select:focus {\\n width:220px !important;\\n padding: 10px;\\n border: 1px solid rgba(0,0,0,.42);\\n border-radius: 8px;\\n outline: none;\\n text-align: center;\\n}\\n.delete:hover {\\n color: red !important;\\n}\\n.dialogButton {\\n padding: 10px;\\n border: 1px solid black;\\n border-radius: 8px;\\n background-color: transparent; \\n}\\n.dialogButton:hover {\\n cursor: pointer;\\n color: blue;\\n}\\n.blue-txt{\\n color:blue;\\n}\\n.blue-txt:hover{\\n cursor: pointer;\\n}\\n.choosen {\\n background-color: rgba(17, 175, 253, 0.3);\\n}\\n.example-form {\\n min-width: 150px;\\n max-width: 400px;\\n width: 100%;\\n margin-left: auto;\\n margin-right: auto;\\n margin-top: 30px;\\n }\\n.example-full-width {\\n width: 100%;\\n margin-bottom: 20px;\\n }\\n.discrete-button, .discrete-button:focus{\\n padding: 12px;\\n border: 1px solid black;\\n border-radius: 8px;\\n background-color: transparent; \\n font-size: 15px;\\n background-color: white;\\n margin: 30px;\\n outline: none;\\n min-width: 100px;\\n}\\n.discrete-button:hover {\\n cursor: pointer;\\n background-color: rgba(17, 175, 253, 0.5);\\n}\\n.pat-list, .calendar-table{\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n.pat-list tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n.pat-list tr:not(:first-child):hover{\\n cursor: pointer;\\n }\\n.pat-list td, .pat-list th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n.number-button{\\n padding-top: 8px;\\n padding-bottom: 8px;\\n padding-right: 13px;\\n padding-left: 13px;\\n border: none;\\n font-size: 15px;\\n background-color: transparent;\\n outline: none; \\n margin-top: auto;\\n margin-bottom: auto;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content; \\n }\\n.number-button-circle{\\n padding-top: 8px;\\n padding-bottom: 8px;\\n padding-right: 13px;\\n padding-left: 13px;\\n border: 1px solid #00d0ff;\\n border-radius: 30px;\\n font-size: 15px;\\n background-color: transparent;\\n color: deeppink;\\n outline: none; \\n margin-top: auto;\\n margin-bottom: auto;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content; \\n }\\n.question-box {\\n width: 100%;\\n display: -ms-flexbox;\\n display: flex; \\n padding-bottom: 5px;\\n padding-top: 5px;\\n }\\n.question-box p {\\n -ms-flex-preferred-size: 0;\\n flex-basis: 0;\\n -ms-flex: 1 1 0px;\\n flex: 1 1 0;\\n margin-top: auto;\\n margin-bottom: auto;\\n text-align: left;\\n }\\n.marked-answer {\\n color: #e80094;\\n text-align: left;\\n margin-left: 5%;\\n margin-bottom: 20px;\\n }\\n.unmarked-answer {\\n text-align: left;\\n margin-left: 5%;\\n margin-bottom: 20px;\\n }\\ninput[type=\\\"file\\\"] {\\n display: none;\\n}\\n.custom-file-upload {\\n display: inline-block;\\n padding: 6px 12px;\\n cursor: pointer;\\n}\\n.calender-dropdown {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px; \\n }\\n.calender-dropdown tr:first-child{\\n border-bottom: 1px solid #222;\\n display: table-row;\\n }\\n.calender-dropdown td{\\n padding: 2px;\\n font-size: 15px;\\n }\\n.calender-dropdown button {\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n width: 100%;\\n font-size: 15px;\\n color: inherit; \\n cursor: inherit; \\n }\\n.ring {\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.marked {\\n background-color: purple !important;\\n color: white !important;\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.month-label {\\n display: -ms-flexbox;\\n display: flex; \\n -ms-flex-pack: center; \\n justify-content: center;\\n text-align: center; \\n vertical-align: middle;\\n height: 60px;\\n line-height: 60px;\\n background-color: rgba(17, 175, 253, 0.3);\\n width: auto !important;\\n border: none !important; \\n }\\n.month-label md-icon {\\n line-height: inherit;\\n margin-left: 20px;\\n margin-right: 20px; \\n }\\n.myDatePicker {\\n text-align: left; \\n}\\nselect.custom-select {\\n margin: 0.5rem 0.5rem 0 0;\\n width: auto;\\n}\\n.custom-day {\\n text-align: center;\\n padding: 0.185rem 0.25rem;\\n display: inline-block;\\n height: 2rem;\\n width: 2rem;\\n}\\n.custom-day.focused {\\n background-color: #e6e6e6;\\n}\\n.custom-day.range, .custom-day:hover {\\n background-color: rgb(2, 117, 216);\\n color: white;\\n}\\n.custom-day.faded {\\n background-color: rgba(2, 117, 216, 0.5);\\n}\\n.custom-day.today {\\n background-color: rgba(252, 172, 67, 1);\\n color: white;\\n}\\n.custom-day.weekday-chosen {\\n background-color: rgba(2, 117, 216, 0.75);\\n}\\n.custom-day.today-weekday-chosen {\\n background-color: rgba(252, 172, 67, 0.5);\\n}\\n.myDatePicker input {\\n width: 165px;\\n}\\n.myDatePicker md-icon {\\n width: 22px;\\n height: 22px;\\n vertical-align: middle;\\n font-size: 22px;\\n}\\n.myDatePicker:hover {\\n cursor: pointer;\\n}\\n.mat-input-infix {\\n padding: .3em 0 !important;\\n}\\n.iconDatePicker {\\n border-bottom: 1px solid #222;\\n}\\n.numberfiled {\\n line-height: 50px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n}\\n.numberfiled p {\\n margin: 0px;\\n vertical-align: middle;\\n font-size: 15px;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n white-space: nowrap;\\n}\\n.numberfiled input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n max-width: 150px;\\n}\\n.numberfiled input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ob21lLXBhZ2UvaG9tZS1wYWdlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsb0JBQWE7SUFBYixhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCO0FBQ0E7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQiwwQkFBa0I7SUFBbEIsdUJBQWtCO0lBQWxCLGtCQUFrQjtBQUN0QjtBQUNBO0lBQ0ksWUFBWTtJQUNaLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsNkJBQWM7SUFBZCxxQkFBYztJQUFkLGNBQWM7QUFDbEI7QUFDQTtJQUNJLGdDQUFnQztBQUNwQztBQUNBO0lBQ0ksc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixpQ0FBaUM7SUFDakMsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixrQkFBa0I7QUFDdEI7QUFFQTtJQUNJLHFCQUFxQjtBQUN6QjtBQUVBO0lBQ0ksYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsNkJBQTZCO0FBQ2pDO0FBRUE7SUFDSSxlQUFlO0lBQ2YsV0FBVztBQUNmO0FBRUE7SUFDSSxVQUFVO0FBQ2Q7QUFDQTtJQUNJLGVBQWU7QUFDbkI7QUFFQTtJQUNJLHlDQUF5QztBQUM3QztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7RUFDbEI7QUFFQTtJQUNFLFdBQVc7SUFDWCxtQkFBbUI7RUFDckI7QUFFQTtJQUNFLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLDZCQUE2QjtJQUM3QixlQUFlO0lBQ2YsdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0JBQWdCO0FBQ3BCO0FB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M0M7QUFDQTtFQUNFLHlDQUF5QztBQUMzQztBQUVBO0lBQ0ksWUFBWTtBQUNoQjtBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsZUFBZTtBQUNuQjtBQUVBO0lBQ0ksZUFBZTtBQUNuQjtBQUVBO0lBQ0ksMEJBQTBCO0FBQzlCO0FBR0E7SUFDSSw2QkFBNkI7QUFDakM7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQiwyQkFBb0I7SUFBcEIsb0JBQW9CO0FBQ3hCO0FBQ0E7SUFDSSxXQUFXO0lBQ1gsc0JBQXNCO0lBQ3RCLGVBQWU7SUFDZiwwQkFBa0I7SUFBbEIsdUJBQWtCO0lBQWxCLGtCQUFrQjtJQUNsQixtQkFBbUI7QUFDdkI7QUFDQTtJQUNJLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjtBQUNBO0lBQ0ksZ0NBQWdDO0FBQ3BDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ob21lLXBhZ2UvaG9tZS1wYWdlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi50ZXh0RmllbGQge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgcGFkZGluZy1sZWZ0OiAxMCU7XG4gICAgcGFkZGluZy1yaWdodDogMTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgXG59XG4udGV4dEZpZWxkIHAge1xuICAgIG1hcmdpbjogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbi50ZXh0RmllbGQgaW5wdXQgeyAgICBcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjQyKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogc3RyZXRjaDtcbn1cbi50ZXh0RmllbGQgaW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNjkxNkI2O1xufVxuLnRleHRGaWVsZCBzZWxlY3QsIC50ZXh0RmllbGQgc2VsZWN0OmZvY3VzIHtcbiAgICB3aWR0aDoyMjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNDIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRlbGV0ZTpob3ZlciB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uZGlhbG9nQnV0dG9uIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgICAgXG59XG5cbi5kaWFsb2dCdXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogYmx1ZTtcbn1cblxuLmJsdWUtdHh0e1xuICAgIGNvbG9yOmJsdWU7XG59XG4uYmx1ZS10eHQ6aG92ZXJ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvb3NlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuMyk7XG59XG5cbi5leGFtcGxlLWZvcm0ge1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgfVxuICBcbiAgLmV4YW1wbGUtZnVsbC13aWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIC5kaXNjcmV0ZS1idXR0b24sIC5kaXNjcmV0ZS1idXR0b246Zm9jdXN7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW46IDMwcHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xufVxuLmRpc2NyZXRlLWJ1dHRvbjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjUpO1xufVxuXG4ucGF0LWxpc3QsIC5jYWxlbmRhci10YWJsZXtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1sZWZ0OiAxJTsgIFxuICAgIHdpZHRoOiA5OCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDtcbiAgfVxuICAucGF0LWxpc3QgdHI6Zmlyc3QtY2hpbGR7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIGdyYXk7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICB9XG4gIC5wYXQtbGlzdCB0cjpub3QoOmZpcnN0LWNoaWxkKTpob3ZlcntcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLnBhdC1saXN0IHRkLCAucGF0LWxpc3QgdGgge1xuICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGdyYXk7XG4gICAgcGFkZGluZzogMTBweDtcbiAgfVxuXG4gIC5udW1iZXItYnV0dG9ue1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxM3B4O1xuICAgIHBhZGRpbmctbGVmdDogMTNweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmU6IG5vbmU7ICBcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDsgXG4gIH1cbiAgXG4gIC5udW1iZXItYnV0dG9uLWNpcmNsZXtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTNweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwZDBmZjtcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogZGVlcHBpbms7XG4gICAgb3V0bGluZTogbm9uZTsgIFxuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50OyBcbiAgfVxuICBcbiAgLnF1ZXN0aW9uLWJveCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDsgXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICB9XG4gIC5xdWVzdGlvbi1ib3ggcCB7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICBcbiAgLm1hcmtlZC1hbnN3ZXIge1xuICAgIGNvbG9yOiAjZTgwMDk0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbiAgXG4gIC51bm1hcmtlZC1hbnN3ZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5jdXN0b20tZmlsZS11cGxvYWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jYWxlbmRlci1kcm9wZG93biB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tbGVmdDogMSU7ICBcbiAgICB3aWR0aDogOTglO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAycHg7ICAgIFxuICB9XG4gIC5jYWxlbmRlci1kcm9wZG93biB0cjpmaXJzdC1jaGlsZHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzIyMjtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gIH1cbiAgLmNhbGVuZGVyLWRyb3Bkb3duIHRke1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICAuY2FsZW5kZXItZHJvcGRvd24gYnV0dG9uIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmU6MDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6IGluaGVyaXQ7IFxuICAgIGN1cnNvcjogaW5oZXJpdDsgXG4gIH1cbiAgLnJpbmcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjIyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1hcmtlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXItY29sb3I6ICMyMjIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tb250aC1sYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDsgXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyAgXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuMyk7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgICAgXG4gIH1cbiAgLm1vbnRoLWxhYmVsIG1kLWljb24ge1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgXG4gIH1cblxuICAubXlEYXRlUGlja2VyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgICBcbn1cblxuc2VsZWN0LmN1c3RvbS1zZWxlY3Qge1xuICBtYXJnaW46IDAuNXJlbSAwLjVyZW0gMCAwO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmN1c3RvbS1kYXkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuMTg1cmVtIDAuMjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAycmVtO1xuICB3aWR0aDogMnJlbTtcbn1cbi5jdXN0b20tZGF5LmZvY3VzZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xufVxuLmN1c3RvbS1kYXkucmFuZ2UsIC5jdXN0b20tZGF5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIsIDExNywgMjE2KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmN1c3RvbS1kYXkuZmFkZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIsIDExNywgMjE2LCAwLjUpO1xufVxuLmN1c3RvbS1kYXkudG9kYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MiwgMTcyLCA2NywgMSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5jdXN0b20tZGF5LndlZWtkYXktY2hvc2VuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyLCAxMTcsIDIxNiwgMC43NSk7XG59XG4uY3VzdG9tLWRheS50b2RheS13ZWVrZGF5LWNob3NlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUyLCAxNzIsIDY3LCAwLjUpO1xufVxuXG4ubXlEYXRlUGlja2VyIGlucHV0IHtcbiAgICB3aWR0aDogMTY1cHg7XG59XG5cbi5teURhdGVQaWNrZXIgbWQtaWNvbiB7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAyMnB4O1xufVxuXG4ubXlEYXRlUGlja2VyOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXQtaW5wdXQtaW5maXgge1xuICAgIHBhZGRpbmc6IC4zZW0gMCAhaW1wb3J0YW50O1xufVxuXG5cbi5pY29uRGF0ZVBpY2tlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG59XG5cbi5udW1iZXJmaWxlZCB7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4ubnVtYmVyZmlsZWQgcCB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubnVtYmVyZmlsZWQgaW5wdXQgeyAgICBcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjQyKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuLm51bWJlcmZpbGVkIGlucHV0OmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzY5MTZCNjtcbn1cbiJdfQ== */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Välj användare

\\n

I listan nedan presenteras alla patient-användare som du har tillgång till. I varje rad visas medelvärdet för\\n varje angiven parameter uppmätt under de senaste sju dagarna.\\n Välj en av användarna genom att klicka på namnet. Den nuvarande valda användaren är markerad med blå bakgrund.\\n Alla användare som är aktiva just nu är markerade med en grön prick.

\\n
\\n \\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NamnPulsSaturationStegAktiva MinuterUtförda övningarRadera
\\n fiber_manual_record{{user.name}}\\n \\n
{{user.pulse.text}} \\n arrow_forward\\n
\\n
\\n
{{user.sat.text}} arrow_forward\\n \\n
\\n
\\n
{{user.steps.text}} arrow_forward\\n \\n
\\n
\\n
{{user.activeMinutes.text}} arrow_forward\\n \\n
\\n
{{user.activity}}\\n delete\\n
\\n \\n \\n
\\n
\\n
\\n
\"","import { Component, OnInit, Inject, Injectable, ViewChild, ElementRef, Renderer2 } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { GameInformationService } from '../../services/game-information.service';\nimport { Observable } from 'rxjs/Rx';\nimport {\n NgbDatepicker,\n NgbInputDatepicker,\n NgbDateStruct,\n NgbCalendar,\n NgbDate,\n NgbDateAdapter,\n NgbDateParserFormatter,\n NgbDatepickerI18n\n} from '@ng-bootstrap/ng-bootstrap';\ndeclare let d3: any;\n\nconst now = new Date();\nconst equals = (one: NgbDateStruct, two: NgbDateStruct) =>\n one && two && two.year === one.year && two.month === one.month && two.day === one.day;\n\nconst before = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day < two.day : one.month < two.month : one.year < two.year;\n\nconst after = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day > two.day : one.month > two.month : one.year > two.year;\n\n\n@Component({\n selector: 'app-home-page',\n templateUrl: './home-page.component.html',\n styleUrls: ['./home-page.component.css']\n})\nexport class HomePageComponent implements OnInit {\n newMessage: boolean = false;\n patients: any[];\n mObs;\n\n constructor(private dataservice: DataserviceService, private router: Router, private dialog: MatDialog,\n public snackBar: MatSnackBar, private mhs: MessageHandlerService) { }\n\n ngOnInit() {\n this.setupPatientList();\n }\n\n /*setupPatientList() {\n this.dataservice.getPatientList().subscribe(\n (resp) => {\n if (resp && resp.status != 200) {\n this.router.navigate(['']);\n return;\n }\n else {\n let response = resp.json();\n this.patients = new Array();\n for (let patient of response) {\n this.dataservice.getPatientInformation(patient.id).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let dateInfo = resp.json();\n this.patients.push({\n id: patient.id,\n name: patient.username,\n nextTime: dateInfo.nextDate,\n untilDate: dateInfo.plannedUntil,\n qrURL: patient.qrUrl\n });\n }\n }\n );\n }\n }\n });\n }*/\n\n setupPatientList() {\n this.dataservice.getPatientList().subscribe(\n (resp) => {\n if (resp && resp.status != 200) {\n this.router.navigate(['']);\n return;\n }\n else {\n let response = resp.json();\n this.patients = new Array();\n let now = Date.now();\n let oneWeekBack = this.oneWeekBack();\n for (let patient of response) {\n let body = {\n from: oneWeekBack,\n until: now,\n id: patient.id,\n variant: 'ALL'\n };\n this.dataservice.getFullInformation(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let fi = resp.json();\n this.dataservice.getExtremePoxValuesBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let poxData = resp.json();\n this.dataservice.getStepsDataBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let steps = resp.json();\n this.dataservice.getActiveMinutesDataBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.setupRowOfInfo(patient.id, patient.username, patient.qrUrl, fi, poxData, steps, resp.json(), patient.currentlyActive, patient.parameters.parameters);\n } else {\n this.setupRowOfInfo(patient.id, patient.username, patient.qrUrl, fi, poxData, steps, null, patient.currentlyActive, patient.parameters.parameters);\n }\n }\n )\n } else {\n this.setupRowOfInfo(patient.id, patient.username, patient.qrUrl, fi, poxData, null, null, patient.currentlyActive, patient.parameters.parameters);\n }\n }\n )\n } else {\n this.setupRowOfInfo(patient.id, patient.username, patient.qrUrl, fi, null, null, null, patient.currentlyActive, patient.parameters.parameters);\n }\n }\n )\n \n }\n }\n );\n //TODO Get activity tracker info here from seperate service\n }\n }\n });\n }\n\n setupRowOfInfo(id: number, name: string, url: string, diaryData: any, poxData: any, stepsData: any, activeMinutesData: any, active: boolean, parameters: any) {\n let cat = new Array();\n let mrc = new Array();\n let temp = new Array();\n let pulse = new Array();\n let weight = new Array();\n let sat = new Array();\n let activity = 0;\n let complete = 0;\n let steps = new Array();\n let activeMinutes = new Array();\n\n // Special check. Serialising an empty list get interpreted as a list of length 1 with first element 0...\n if (stepsData != null && ((stepsData.length == 1 && stepsData[0] == 0) == false)) {\n for(let entry of stepsData) {\n steps.push(entry.value);\n }\n }\n\n if (activeMinutesData != null && ((activeMinutesData.length == 1 && activeMinutesData[0] == 0) == false)) {\n\n for(let entry of activeMinutesData) {\n activeMinutes.push(entry.value);\n }\n \n }\n\n for (let entry of diaryData) {\n if (entry.diary != null) {\n if (entry.diary.temp != 0) { temp.push(entry.diary.temp); }\n if (entry.diary.pulse != 0) { pulse.push(entry.diary.pulse); }\n if (entry.diary.weight != 0) { weight.push(entry.diary.weight); }\n if (entry.diary.saturation != 0) { sat.push(entry.diary.saturation); }\n }\n else {\n if (entry.variant == 'EXERCISE') {\n ++complete;\n }\n if (entry.activity != null) {\n if (entry.variant == 'EXERCISE' && entry.activity.length > 0) {\n ++activity;\n }\n for (let res of entry.activity) {\n if (entry.type == 'mMRCAssessment') {\n mrc.push(res.score);\n }\n else if (entry.type == 'CATAssessment') {\n cat.push(res.score);\n }\n }\n }\n }\n }\n\n for (let entry of poxData) {\n if (entry.pulse != 0) { pulse.push(entry.pulse); }\n if (entry.saturation != 0) { sat.push(entry.saturation); }\n }\n\n this.patients.push({\n id: id,\n name: name,\n mrc: {\n text: mrc.length > 0 ? (mrc.reduce((a, b) => a + b, 0) / mrc.length).toFixed(1) : \"--\",\n color: mrc.length > 0 ? '#222' : 'rgba(0,0,0,0.0)',\n indication: this.getRotationAngle(mrc)\n },\n cat: {\n text: cat.length > 0 ? (cat.reduce((a, b) => a + b, 0) / cat.length).toFixed(0) : \"--\",\n color: cat.length > 0 ? '#222' : 'rgba(0,0,0,0.0)',\n indication: this.getRotationAngle(cat)\n },\n weight: {\n text: weight.length > 0 ? (weight.reduce((a, b) => a + b, 0) / weight.length).toFixed(1) : \"--\",\n color: this.getIndicationColor(parameters, weight.length > 0 ? (weight.reduce((a, b) => a + b, 0) / weight.length) : -1, 'WEIGHT'),\n indication: this.getRotationAngle(weight)\n },\n pulse: {\n text: pulse.length > 0 ? (pulse.reduce((a, b) => a + b, 0) / pulse.length).toFixed(0) : \"--\",\n color: this.getIndicationColor(parameters, pulse.length > 0 ? (pulse.reduce((a, b) => a + b, 0) / pulse.length) : -1, 'PULSE'),\n indication: this.getRotationAngle(pulse)\n },\n temp: {\n text: temp.length > 0 ? (temp.reduce((a, b) => a + b, 0) / temp.length).toFixed(1) : \"--\",\n color: this.getIndicationColor(parameters, temp.length > 0 ? (temp.reduce((a, b) => a + b, 0) / temp.length) : -1, 'TEMPERATURE'),\n indication: this.getRotationAngle(temp)\n },\n sat: {\n text: sat.length > 0 ? (sat.reduce((a, b) => a + b, 0) / sat.length).toFixed(0) : \"--\",\n color: this.getIndicationColor(parameters, sat.length > 0 ? (sat.reduce((a, b) => a + b, 0) / sat.length) : -1, 'SATURATION'),\n indication: this.getRotationAngle(sat)\n },\n steps: {\n text: steps.length > 0 ? (steps.reduce((a, b) => a + b, 0) / steps.length).toFixed(0) : \"--\",\n color: this.getIndicationColor(parameters, steps.length > 0 ? (steps.reduce((a, b) => a + b, 0) / steps.length) : -1, 'STEPS'),\n indication: this.getRotationAngle(steps)\n },\n activeMinutes: {\n text: activeMinutes.length > 0 ? (activeMinutes.reduce((a, b) => a + b, 0) / activeMinutes.length).toFixed(0) : \"--\",\n color: this.getIndicationColor(parameters, activeMinutes.length > 0 ? (activeMinutes.reduce((a, b) => a + b, 0) / activeMinutes.length) : -1, 'ACTIVE_MINUTES'),\n indication: this.getRotationAngle(activeMinutes)\n },\n qrURL: url,\n currentlyActive: active,\n activity: activity,\n completeNumber: complete,\n choosen: name == this.dataservice.patient,\n parameters: parameters\n });\n this.patients = this.patients.sort(function (a, b) {\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n }\n\n choosePatient(patient: any) {\n let body = {\n username: patient.name\n }\n this.dataservice.selectActivePatient(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.dataservice.patientObject = patient;\n this.dataservice.patient = patient.name;\n this.dataservice.url = patient.qrURL;\n this.router.navigate([\"overview\"]);\n }\n });\n }\n\n displayGraph(title: string, version: number, user: string, id: number) {\n for (let pat of this.patients) {\n if (pat.id == id) {\n if (version == 6) {\n let dialogRef = this.dialog.open(PopupGraphDialog, {\n width: 'auto',\n data: {\n id: id, title: title, username: user, from: this.oneWeekBack(), until: Date.now(), version: version, completeNumber: pat.completeNumber, number: pat.activity\n }\n });\n } else {\n let dialogRef = this.dialog.open(PopupGraphDialog, {\n width: 'auto',\n data: {\n id: id, title: title, username: user, from: this.oneWeekBack(), until: Date.now(), version: version, parameterSettings: pat.parameters\n }\n });\n }\n }\n }\n }\n\n createNewPatient() {\n let dialogRef = this.dialog.open(CreatePatientDialog, {\n data: {\n checkpoint: false\n }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n this.setupPatientList();\n });\n return false;\n }\n\n checkpoint(patient: any) {\n let dialogRef = this.dialog.open(CreatePatientDialog, {\n width: 'auto',\n data: {\n checkpoint: true, name: patient.name\n }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result == true) {\n this.deletePatient(patient);\n }\n });\n return false;\n }\n\n deletePatient(patient: any) {\n this.dataservice.patient = \"Ingen vald\";\n this.dataservice.patientObject = null;\n let body = {\n id: patient.id,\n username: patient.name,\n type: 1\n }\n this.dataservice.deletePatientUser(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let user = {\n name: patient.name,\n instance: this.dataservice.care_instance\n }\n this.mhs.deleteUser(user).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.snackBar.open('Användare ' + patient.name + ' raderad!', 'Raderad', { duration: 4500 });\n this.setupPatientList();\n }\n });\n }\n });\n }\n\n private oneWeekBack(): number {\n let now = new Date();\n if (now.getDate() > 7) {\n return new Date(now.getFullYear(), now.getMonth(), now.getDate() - 7, 0, 0, 0).getTime();\n }\n let month = now.getMonth() == 0 ? 11 : now.getMonth() - 1;\n let year = month == 11 ? now.getFullYear() - 1 : now.getFullYear();\n return new Date(year, month, (this.dataservice.daysInMonth(month) + now.getDate()) - 7, 0, 0, 0).getTime();\n }\n\n private getIndicationColor(parameters: any, median: number, version: string): string {\n if (parameters == null) {\n return '#222';\n }\n else if (median < 0) {\n return 'rgba(0,0,0,0.0)';\n }\n var min = 0; var max = 0;\n for (let settings of parameters) {\n if (settings.key == version) {\n min = settings.low;\n max = settings.high;\n }\n }\n if (min == 0 || max == 0) {\n return '#222';\n }\n else { // #e9c43c\n var p = (median - min) / (max - min);\n return median <= min ? '#bb0f0f' : median >= max ? '#bb0f0f' : p < 0.2 ? '#e9c43c' : p > 0.8 ? '#e9c43c' : '#4CAF50';\n }\n }\n\n private getRotationAngle(values: any): number {\n if (values.length < 1) {\n return 0;\n }\n var ind = 0;\n for (let v = 1; v < values.length; v++) {\n if (values[v] > values[v - 1]) {\n ++ind;\n }\n else if (values[v] < values[v - 1]) {\n --ind;\n }\n }\n if (ind >= 5) {\n return -90;\n }\n else if (ind <= -5) {\n return 90;\n }\n var angle = Math.abs(90.0 * (ind / 7.5));\n return ind < 0 ? angle : -1 * angle;\n }\n}\n\n@Component({\n selector: 'create-patient-dialog',\n templateUrl: 'create-patient-dialog.html',\n styleUrls: ['./home-page.component.css']\n})\nexport class CreatePatientDialog {\n warning: string;\n showWarning: boolean;\n information: string;\n showInformation: boolean;\n\n measurement: string[] = [\"Vikt\", \"Temperatur\", \"Puls\", \"Saturation\", \"Alla\"];\n measure: boolean[] = new Array(5).fill(false);\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dataservice: DataserviceService, private router: Router,\n private messageservice: MessageHandlerService) { }\n\n ngOnInit() {\n this.data.low = new Array(5).fill('');\n this.data.high = new Array(5).fill('');\n }\n\n onNoClick(): void {\n this.measure = new Array(4).fill(false);\n this.dialogRef.close();\n }\n\n changeMeasureValue(nr: number) {\n if (nr == this.measurement.length - 1) {\n this.measure = new Array(5).fill(!this.measure[nr]);\n this.data.low = new Array(5).fill('');\n this.data.high = new Array(5).fill('');\n }\n else {\n this.measure[nr] = !this.measure[nr];\n if (!this.measure[nr]) {\n this.data.low[nr] = '';\n this.data.high[nr] = '';\n }\n this.measure[this.measure.length - 1] = false;\n }\n this.showWarning = false;\n this.showInformation = false;\n return false;\n }\n\n createPatient() {\n this.showWarning = false;\n this.showInformation = false;\n if (this.data.username == 'undefined' || this.data.username == null || this.data.username == '') {\n this.warning = 'Fyll i alla fälten markerade med *';\n this.showWarning = true;\n return false;\n }\n\n let param = new Array();\n if (this.measure[0]) {\n param.push({\n key: 'WEIGHT',\n low: +this.data.low[0].replace(',', '.'),\n high: +this.data.high[0].replace(',', '.')\n })\n }\n if (this.measure[1]) {\n param.push({\n key: 'TEMPERATURE',\n low: +this.data.low[1].replace(',', '.'),\n high: +this.data.high[1].replace(',', '.'),\n })\n }\n if (this.measure[2]) {\n param.push({\n key: 'PULSE',\n low: +this.data.low[2].replace(',', '.'),\n high: +this.data.high[2].replace(',', '.'),\n })\n }\n if (this.measure[3]) {\n param.push({\n key: 'SATURATION',\n low: +this.data.low[3].replace(',', '.'),\n high: +this.data.high[3].replace(',', '.'),\n })\n }\n for (let input of param) {\n if (input.low == 0 || input.high == 0) {\n this.warning = 'Fyll i lägre och högre gränsvärden för de ikryssade parametrarna';\n this.showWarning = true;\n break;\n }\n else if (input.low >= input.high) {\n this.warning = 'Det lägre gränsvärdet måste vara mindre än det högre gränsvärdet';\n this.showWarning = true;\n break;\n }\n }\n if (this.showWarning) { return false; }\n\n let body = {\n username: this.data.username,\n firstName: this.data.firstName,\n lastName: this.data.lastName,\n email: this.data.email,\n phone: this.data.phone,\n parameters: { parameters: param },\n serverName: this.dataservice.care_instance,\n }\n this.dataservice.createNewPatientUser(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let user = {\n name: this.data.username,\n caregiver: this.dataservice.username,\n instance: this.dataservice.care_unit_name,\n password: resp._body,\n type: 'PATIENT'\n };\n this.messageservice.createUser(user).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.data.username = \"\";\n this.data.firstName = \"\";\n this.data.lastName = \"\";\n this.data.phone = \"\";\n this.data.email = \"\";\n this.measure = new Array(4).fill(false);\n this.dialogRef.close();\n }\n });\n }\n else {\n this.warning = 'Kunde inte skapa en användare med det namnet';\n this.showWarning = true;\n }\n }\n );\n }\n\n deleteCheck(deleteUser: boolean) {\n this.dialogRef.close(deleteUser);\n }\n}\n\nconst I18N_VALUES = {\n 'se': {\n weekdays: ['Må', 'Ti', 'On', 'To', 'Fr', 'Lö', 'Sö'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Juni', 'Juli', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n }\n // other languages you would support\n};\n\n// Define a service holding the language. You probably already have one if your app is i18ned. Or you could also\n// use the Angular LOCALE_ID value\n@Injectable()\nexport class I18n {\n language = 'se';\n}\n\n// Define custom service providing the months and weekdays translations\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\n@Component({\n selector: 'popup-graph-dialog',\n templateUrl: 'popup-graph-dialog.html',\n styleUrls: ['./home-page.component.css'],\n providers: [I18n, { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n }] // define custom NgbDatepickerI18n provider\n})\nexport class PopupGraphDialog {\n warning: string;\n showWarning: boolean;\n information: string;\n total: number;\n completed: any;\n vas;\n\n dataAvailable: boolean = false;\n plotData: any;\n options: any;\n\n date: string;\n currentData: any[];\n questionair: any[];\n sum: number;\n extendedCAT: boolean = false;\n extendedMRC: boolean = false;\n my_obs;\n static index;\n calendarContent: any[];\n calenderWeeks1: any[];\n calenderWeeks2: any[];\n endDate: string;\n startMonth: string;\n endMonth: string;\n \n defaultDaySpan: number = 7;\n prevMonth: NgbDate;\n hoveredDate: NgbDateStruct;\n fromDate: NgbDate;\n untilDate: NgbDate;\n model: any;\n @ViewChild(\"d\", { static: false }) input: NgbInputDatepicker;\n @ViewChild('myRangeInput', { static: false }) myRangeInput: ElementRef;\n\n newItem = {\n StartTime: null,\n EndTime: null\n };\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dataservice: DataserviceService, private router: Router, private gi: GameInformationService,\n calendar2: NgbCalendar, private renderer: Renderer2, private _parserFormatter: NgbDateParserFormatter) {\n this.fromDate = calendar2.getPrev(calendar2.getToday(), 'd', this.defaultDaySpan);\n this.untilDate = calendar2.getToday();\n this.newItem.StartTime = this.fromDate;\n this.newItem.EndTime = this.untilDate;\n }\n\n ngOnInit() {\n let date = new Date();\n this.prevMonth = new NgbDate(date.getFullYear(), date.getMonth(), 1);\n if (this.data.version < 2) {\n this.information = 'I grafen nedan presenteras resultatet för utförda bedömningstester som ' + this.data.username + ' har utfört under den angivna perioden. Klicka på en av punkterna i grafen för att få mer utförlig information om testet.';\n }\n else if (this.data.version < 6) {\n this.information = 'I grafen nedan presenteras värden uppmätta för ' + this.data.username + ' under den angivna perioden.';\n }\n this.loadNewData();\n }\n\n isHovered = date =>\n this.fromDate && !this.untilDate && this.hoveredDate && after(date, this.fromDate) && before(date, this.hoveredDate)\n isInside = date => after(date, this.fromDate) && before(date, this.untilDate);\n isFrom = date => equals(date, this.fromDate);\n isTo = date => equals(date, this.untilDate);\n\n NgbDateToNgbDateStruct(ngbDate: NgbDate) {\n const date: NgbDateStruct = { year: ngbDate.year, month: ngbDate.month, day: ngbDate.day };\n return date;\n }\n\n NgbDateStructToNgbDate(ngbDateStruct: NgbDateStruct) {\n return new NgbDate(ngbDateStruct.year, ngbDateStruct.month, ngbDateStruct.day);\n }\n\n onDateSelectionGraph(date: NgbDateStruct) {\n if (!this.fromDate && !this.untilDate) {\n this.fromDate = this.NgbDateStructToNgbDate(date);\n } else if (this.fromDate && !this.untilDate && after(date, this.NgbDateToNgbDateStruct(this.fromDate))) {\n this.untilDate = this.NgbDateStructToNgbDate(date);\n this.input.close();\n this.loadNewData();\n } else {\n this.untilDate = null;\n this.fromDate = this.NgbDateStructToNgbDate(date);\n }\n if (this.fromDate) {\n this.prevMonth = this.fromDate;\n }\n this.PaintDateRangeText();\n }\n\n onDateSelectionActivityFrom(date: NgbDateStruct) {\n this.fromDate = this.NgbDateStructToNgbDate(date);\n this.loadNewData();\n }\n\n onDateSelectionActivityTo(date: NgbDateStruct) {\n this.untilDate = this.NgbDateStructToNgbDate(date);\n this.loadNewData();\n }\n\n PaintDateRangeText() {\n if (this.myRangeInput == null) return; // If we are not using the element atm, don't do anything\n let parsed = '';\n if (this.fromDate) {\n parsed += this._parserFormatter.format(this.fromDate);\n }\n if (this.untilDate) {\n parsed += ' - ' + this._parserFormatter.format(this.untilDate);\n }\n this.renderer.setProperty(this.myRangeInput.nativeElement, 'value', parsed);\n }\n\n NgbDateToJSDate(ngbDate: NgbDate) {\n let date = new Date();\n date.setDate(ngbDate.day);\n date.setMonth(ngbDate.month - 1);\n date.setFullYear(ngbDate.year);\n return date;\n }\n\n JSDateToNgbDate(date: Date) {\n if (date == null) return null;\n let ngbDate = new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\n return ngbDate;\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.fromDate) || date.equals(this.untilDate) || this.isInside(date) || this.isHovered(date);\n }\n\n isToday(date: NgbDate) {\n var todayDate = new Date();\n if (date.day == todayDate.getDate()\n && date.month == (todayDate.getMonth() + 1)\n && date.year == todayDate.getFullYear()) {\n return true;\n }\n return false;\n }\n\n getJSFromDate() {\n return new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day, 0, 0, 0, 0);\n }\n\n getJSUntilDate() {\n return new Date(this.untilDate.year, this.untilDate.month - 1, this.untilDate.day, 23, 59, 59, 99);\n }\n\n loadNewData() {\n this.dataAvailable = false;\n this.getJSFromDate();\n let body = {\n from: this.getJSFromDate().getTime(),\n until: this.getJSUntilDate().getTime(),\n id: this.data.id,\n variant: this.data.version == 6 ? 'ALL' : 'ASSESSMENT'\n };\n this.currentData = new Array();\n if (this.data.version == 3 || this.data.version == 5) {\n this.dataservice.getExtremePoxValuesBetweenDates(body).subscribe( \n (resp) => {\n if (resp.status == 200) {\n if (this.data.version == 3) {\n if (this.data.parameterSettings != null) {\n var min = 0; var max = 0;\n for (let settings of this.data.parameterSettings) {\n if (settings.key == 'PULSE') {\n min = settings.low;\n max = settings.high;\n }\n }\n this.measurementChart(resp.json(), ' bpm', 1, min, max);\n } else {\n this.measurementChart(resp.json(), ' bpm', 1, 0, 0);\n }\n }\n else if (this.data.version == 5) {\n if (this.data.parameterSettings != null) {\n var min = 0; var max = 0;\n for (let settings of this.data.parameterSettings) {\n if (settings.key == 'SATURATION') {\n min = settings.low;\n max = settings.high;\n }\n }\n this.measurementChart(resp.json(), ' %', 3, min, max);\n } else {\n this.measurementChart(resp.json(), ' %', 3, 0, 0);\n }\n }\n this.PaintDateRangeText(); // This must be placed here to allow for the element to be created\n }\n }\n )\n } else if (this.data.version == 7) {\n this.dataservice.getStepsDataBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n if (this.data.version == 7) {\n if (this.data.parameterSettings != null) {\n var min = 0; var max = 0;\n for (let settings of this.data.parameterSettings) {\n if (settings.key == 'STEPS') {\n min = settings.low;\n max = settings.high;\n }\n }\n this.measurementChart(resp.json(), ' steps', 7, min, max);\n } else {\n this.measurementChart(resp.json(), ' steps', 7, 0, 0);\n }\n }\n this.PaintDateRangeText(); // This must be placed here to allow for the element to be created\n }\n }\n )\n } else if (this.data.version == 8) {\n this.dataservice.getActiveMinutesDataBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n if (this.data.version == 8) {\n if (this.data.parameterSettings != null) {\n var min = 0; var max = 0;\n for (let settings of this.data.parameterSettings) {\n if (settings.key == 'ACTIVE_MINUTES') {\n min = settings.low;\n max = settings.high;\n }\n }\n this.measurementChart(resp.json(), ' minutes', 8, min, max);\n } else {\n this.measurementChart(resp.json(), ' minutes', 8, 0, 0);\n }\n }\n this.PaintDateRangeText(); // This must be placed here to allow for the element to be created\n }\n }\n )\n } else {\n this.dataservice.getFullInformation(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n switch (this.data.version) {\n case 0:\n this.assessmentChart(resp.json(), 'mMRC', 'mMRCAssessment', 0, 5);\n this.my_obs = Observable.interval(300).subscribe(x => {\n this.extendedCheck();\n });\n break;\n case 1:\n this.assessmentChart(resp.json(), 'CAT', 'CATAssessment', 0, 40);\n this.my_obs = Observable.interval(300).subscribe(x => {\n this.extendedCheck();\n });\n break;\n case 2:\n if (this.data.parameterSettings != null) {\n var min = 0; var max = 0;\n for (let settings of this.data.parameterSettings) {\n if (settings.key == 'WEIGHT') {\n min = settings.low;\n max = settings.high;\n }\n }\n this.measurementChart(resp.json(), ' kg', 0, min, max);\n } else {\n this.measurementChart(resp.json(), ' kg', 0, 0, 0);\n }\n break;\n case 4:\n if (this.data.parameterSettings != null) {\n var min = 0; var max = 0;\n for (let settings of this.data.parameterSettings) {\n if (settings.key == 'TEMPERATURE') {\n min = settings.low;\n max = settings.high;\n }\n }\n this.measurementChart(resp.json(), ' \\xB0C', 2, min, max);\n } else {\n this.measurementChart(resp.json(), ' \\xB0C', 2, 0, 0);\n }\n break;\n case 6:\n this.exerciseChart(resp.json());\n break;\n }\n this.PaintDateRangeText(); // This must be placed here to allow for the element to be created\n }\n }\n );\n }\n }\n\n private assessmentChart(json: any, lable: string, test: string, min: number, max: number) {\n var plotValues = new Array();\n let timezoneOffset = new Date().getTimezoneOffset();\n\n for (let entry of json) {\n if (entry.diary == null && entry.activity != null) {\n for (let res of entry.activity) {\n if (entry.type == test) {\n this.currentData.push(entry);\n let date = new Date(entry.timestamp);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n plotValues.push({\n \"label\": xLabel,\n \"value\": res.score\n });\n this.dataAvailable = true;\n }\n }\n }\n }\n this.plotData = [{\n key: lable,\n values: plotValues\n }];\n this.setupChartOptions(min, max);\n }\n\n private measurementChart(json: any, lable: string, version: number, min: number, max: number) {\n var plotValues = new Array();\n let timezoneOffset = new Date().getTimezoneOffset();\n if (version == 1 || version == 3) {\n for (let entry of json) {\n let date = new Date(entry.measuredOn);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n if (version == 1 && entry.pulse != -1 && entry.pulse != 0) {\n plotValues.push({\n \"label\": xLabel,\n \"value\": entry.pulse\n });\n this.dataAvailable = true;\n } else if (version == 3 && entry.saturation != -1 && entry.saturation != 0) {\n plotValues.push({\n \"label\": xLabel,\n \"value\": entry.saturation\n });\n this.dataAvailable = true;\n }\n }\n } if (version == 7 || version == 8) {\n for (let entry of json) {\n let date = new Date(entry.dateTime);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n if (entry.value != -1 && entry.value != 0) {\n plotValues.push({\n \"label\": xLabel,\n \"value\": entry.value\n });\n this.dataAvailable = true;\n }\n }\n } else {\n for (let entry of json) {\n if (entry.diary != null) {\n let date = new Date(entry.timestamp);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n switch (version) {\n case 0:\n if (entry.diary.weight != 0) {\n plotValues.push({\n \"label\": xLabel,\n \"value\": entry.diary.weight\n });\n }\n break;\n case 2:\n if (entry.diary.temp != 0) {\n plotValues.push({\n \"label\": xLabel,\n \"value\": entry.diary.temp\n });\n }\n break;\n }\n this.dataAvailable = true;\n }\n }\n }\n \n if (min > 0 && max > 0) {\n var minValues = new Array();\n var maxValues = new Array();\n minValues.push({\n 'label': this.getJSFromDate().getTime(),\n 'value': min\n });\n minValues.push({\n 'label': this.getJSUntilDate().getTime(),\n 'value': min\n });\n maxValues.push({\n 'label': this.getJSFromDate().getTime(),\n 'value': max\n });\n maxValues.push({\n 'label': this.getJSUntilDate().getTime(),\n 'value': max\n });\n this.plotData = [{\n key: lable,\n values: plotValues\n }, {\n key: 'Övre gräns',\n values: maxValues,\n color: '#ff7f0e',\n strokeWidth: 4,\n classed: 'dashed',\n }, {\n key: 'Nedre gräns',\n values: minValues,\n color: '#ff7f0e',\n strokeWidth: 4,\n classed: 'dashed',\n\n }];\n }\n else {\n this.plotData = [{\n key: lable,\n values: plotValues\n }];\n }\n this.setupChartOptionsUndefined();\n }\n\n private exerciseChart(json: any) {\n this.vas = new Array();\n var map = new Map();\n var total = 0;\n var comp = 0;\n let timezoneOffset = new Date().getTimezoneOffset();\n\n json.sort((n1,n2) => {\n return n1.timestamp - n2.timestamp;\n });\n\n for (let entry of json) {\n if (entry.variant == 'EXERCISE') {\n ++total;\n let date = new Date(entry.timestamp);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n let completed = entry.activity != null && entry.activity.length > 0;\n let fullycompleted = completed && entry.activity.length == entry.sets;\n if (map.has(xLabel)) {\n ++map.get(xLabel)[fullycompleted ? 0 : completed ? 1 : 2];\n }\n else {\n let data = [fullycompleted ? 1 : 0, !fullycompleted && completed ? 1 : 0, !completed ? 1 : 0];\n map.set(xLabel, data);\n }\n if (completed) {\n ++comp;\n for (let res of entry.activity) {\n if (res.vasBreath != 0 || res.vasEffort != 0) {\n var time = new Date(res.activityEnded);\n this.vas.push({\n date: time.getFullYear() + \"-\" + time.getMonth() + \"-\" + time.getDate() + \" kl \" + time.getHours() + \":\" + (time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes()),\n activity: this.gi.gameName(entry.type),\n as: res.vasBreath == 0 ? '--' : res.vasBreath,\n af: res.vasEffort == 0 ? '--' : res.vasEffort\n });\n }\n }\n }\n }\n else if (entry.activity != null && entry.type != null && (entry.type == 'VASBreathAssessment' || entry.type == 'VASEffortAssessment')) {\n for (let res of entry.activity) {\n var time = new Date(res.activityEnded == 0 ? entry.timestamp : res.activityEnded);\n this.vas.push({\n date: time.getFullYear() + \"-\" + time.getMonth() + \"-\" + time.getDate() + \" kl \" + time.getHours() + \":\" + (time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes()),\n activity: 'Övningstillfällets slut',\n as: entry.type == 'VASEffortAssessment' ? res.score : '--',\n af: entry.type == 'VASBreathAssessment' ? res.score : '--'\n });\n }\n }\n }\n this.total = total;\n this.completed = ((comp / total) * 100).toFixed(0);\n if (total > 0) {\n this.dataAvailable = true;\n var value1 = new Array();\n var value2 = new Array();\n var value3 = new Array();\n map.forEach(function (item, key, mapObj) {\n value1.push({\n \"label\": key,\n \"value\": item[0]\n });\n value2.push({\n \"label\": key,\n \"value\": item[1]\n });\n value3.push({\n \"label\": key,\n \"value\": item[2]\n });\n });\n this.plotData = [{\n key: \"Ej utfört\",\n color: 'red',\n values: value3\n }, {\n key: \"Delvis utfört\",\n color: 'yellow',\n values: value2\n }, {\n key: \"Utfört helt\",\n color: 'green',\n values: value1\n }];\n this.setupMultiBarChart();\n }\n }\n\n private setupChartOptionsUndefined() {\n this.options = {\n chart: {\n type: 'lineChart',\n showLegend: false,\n height: 350,\n x: function (d) { return d.label; },\n y: function (d) { return d.value; },\n useInteractiveGuideline: true,\n clipVoronoi: false,\n xScale: d3.time.scale(),\n xAxis: {\n tickFormat: function (d) {\n return d3.time.format('%y-%m-%d')(new Date(d));\n },\n rotateLabels: -45,\n showMinMax: false\n },\n yAxis: {\n tickFormat: function (d) {\n return d.toFixed(1);\n }\n },\n interactiveLayer: {\n tooltip: {\n contentGenerator: function (record) {\n var date = d3.time.format('%y-%m-%d')(new Date(record.series[0].data.label));\n var str = '

' + date + '
';\n str = str + ' ' + record.series[0].value + record.series[0].key + '
';\n return str + '

';\n },\n headerEnabled: true,\n }\n }\n }\n }\n }\n\n private setupChartOptions(min: number, max: number) {\n this.options = {\n chart: {\n type: 'lineChart',\n height: 350,\n x: function (d) { return d.label; },\n y: function (d) { return d.value; },\n useInteractiveGuideline: true,\n clipVoronoi: false,\n xScale: d3.time.scale(),\n xAxis: {\n tickFormat: function (d) {\n return d3.time.format('%y-%m-%d')(new Date(d));\n },\n rotateLabels: -45,\n showMinMax: false\n },\n yAxis: {\n tickFormat: function (d) {\n return d.toFixed(0);\n }\n },\n yDomain: [min, max],\n lines: {\n dispatch: {\n elementClick: function (e) { PopupGraphDialog.index = e[0].pointIndex; }\n }\n },\n }\n }\n }\n\n private setupMultiBarChart() {\n this.options = {\n chart: {\n type: 'multiBarChart',\n height: 350,\n x: function (d) { return d.label; },\n y: function (d) { return d.value; },\n useInteractiveGuideline: true,\n transitionDuration: 500,\n clipEdge: true,\n stacked: true,\n xAxis: {\n tickFormat: function (d) {\n return d3.time.format('%y-%m-%d')(new Date(d));\n },\n rotateLabels: -45,\n showMinMax: false\n },\n yAxis: {\n tickFormat: function (d) {\n return d.toFixed(0);\n }\n },\n interactiveLayer: {\n tooltip: {\n contentGenerator: function (record) {\n var date = d3.time.format('%y-%m-%d')(new Date(record.series[0].data.label));\n var str = '

' + date + '
';\n for (let i = record.series.length - 1; i >= 0; i--) {\n str = str + ' ' + record.series[i].value + '
';\n }\n return str + '

';\n },\n headerEnabled: true,\n }\n }\n }\n }\n }\n\n public extendedCheck() {\n if (PopupGraphDialog.index != 'undefined' && PopupGraphDialog.index != null) {\n var entryClicked = this.currentData[PopupGraphDialog.index];\n PopupGraphDialog.index = null;\n var time = new Date(entryClicked.timestamp);\n this.date = time.getFullYear() + \"-\" + (time.getMonth() + 1) + \"-\" + time.getDate();\n\n if (entryClicked.type == 'CATAssessment') {\n this.questionair = this.gi.getCATQuestionair();\n if (entryClicked.activity && entryClicked.activity[0]) {\n for (let i = 0; i < entryClicked.activity[0].assessmentAnswers.length; i++) {\n this.questionair[i].currentValue = entryClicked.activity[0].assessmentAnswers[i];\n }\n this.sum = entryClicked.activity[0].score;\n }\n this.extendedCAT = true;\n }\n else if (entryClicked.type == 'mMRCAssessment') {\n this.questionair = this.gi.getmMRCQuestionair();\n this.sum = entryClicked.activity[0] != null ? entryClicked.activity[0].score : 0;\n this.extendedMRC = true;\n }\n }\n }\n}","module.exports = \"
\\n
\\n

{{data.title}}

\\n

{{information}}

\\n\\n\\n
\\n
\\n
\\n \\n\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n

{{warning}}

\\n

Ingen data tillgänglig för de angivna datumen!

\\n\\n
\\n 2 ? 'background_setter' : ''\\\" #nvd3 [options]=\\\"options\\\" [data]=\\\"plotData\\\">\\n \\n
\\n
\\n\\n
\\n

{{data.title}}

\\n

Information om {{data.username}}s träningsprogression under den angivna tidsperioden.

\\n
\\n

Från

\\n

Till

\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n \\n

{{warning}}

\\n

Ingen data tillgänglig för de angivna datumen!

\\n\\n

I grafen nedan visas statusen för alla fysiska aktiviteter inom den angivna perioden.\\n Totalt sätt har {{total}} aktiviteter\\n planerats och {{completed}} % har utförts helt inom tidsramen.

\\n\\n
\\n \\n
\\n\\n

I tabellen presenteras en lista på rapporterade VAS mätvärden.

\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
DatumÖvningVAS ansträningVAS andfåddhet
{{v.date}}{{v.activity}}{{v.as}}{{v.af}}
\\n \\n \\n
\\n
\\n\\n
\\n

{{data.title}} ({{date}})

\\n \\n
\\n

{{quest.minText}}

\\n \\n {{nr}}\\n \\n

{{quest.maxText}}

\\n
\\n
\\n

Sammanlagd poäng: {{sum}}

\\n
\\n
\\n

{{data.title}} ({{date}})

\\n
    \\n \\n
  1. {{quest.text}}
  2. \\n
    \\n
\\n

Valt svar: {{sum}}

\\n
\\n
\"","module.exports = \".margin100 {\\n margin-bottom: 100px;\\n}\\n\\n.allContent {\\n overflow-y: auto;\\n}\\n\\nh1 {\\n font-size: 50px;\\n color: white; \\n margin-top: 60px;\\n margin-bottom: 15px;\\n text-align: center;\\n}\\n\\n.row {\\n margin-right: 0px;\\n margin-left: 0px;\\n}\\n\\np {\\n font-size: 20px;\\n margin-bottom: 40px; \\n color:white;\\n}\\n\\n.box-border{\\n background-color: rgba(0, 0, 0, 0.8);\\n border: 1px solid rgba(255, 255, 255, 0.6); /*#1A84FF*/; \\n color: white;\\n padding: 20px;\\n}\\n\\n.warningText {\\n color: #CB2020; \\n margin-top: 15px;\\n}\\n\\n.custom-form{\\n color: black;\\n border-radius: 5px;\\n background-color: white;\\n width: 100%;\\n height: 40px;\\n font-size: 20px;\\n margin-bottom: 15px; \\n }\\n\\n.login-button, .login-button:focus{\\n color: white;\\n border-radius: 5px;\\n background-color: #3C8DE9;\\n width: 100%;\\n height: 50px;\\n font-size: 20px;\\n outline: 0;\\n }\\n\\n.login-button:hover{\\n background-color: #0F427E;\\n cursor: pointer;\\n }\\n\\n.textField {\\n width: 100%;\\n display: -ms-flexbox;\\n display: flex;\\n margin-bottom: 20px; \\n}\\n\\n.textField input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n}\\n\\n.textField input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n\\n.textField select, .textField select:focus {\\n width:-webkit-fill-available !important;\\n width:-moz-available !important;\\n width:stretch !important;\\n padding: 10px;\\n border: 1px solid rgba(0,0,0,.42);\\n border-radius: 8px;\\n outline: none;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi1wYWdlL2xvZ2luLXBhZ2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxvQ0FBb0M7SUFDcEMsMENBQTBDLEVBQUUsVUFBVTtJQUN0RCxZQUFZO0lBQ1osYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFBbUI7RUFDckI7O0FBRUE7SUFDRSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7SUFDZixVQUFVO0VBQ1o7O0FBQ0E7SUFDRSx5QkFBeUI7SUFDekIsZUFBZTtFQUNqQjs7QUFFQTtJQUNFLFdBQVc7SUFDWCxvQkFBYTtJQUFiLGFBQWE7SUFDYixtQkFBbUI7QUFDdkI7O0FBQ0E7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLGtCQUFrQjtJQUNsQix3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQiwwQkFBa0I7SUFBbEIsdUJBQWtCO0lBQWxCLGtCQUFrQjtBQUN0Qjs7QUFDQTtJQUNJLGdDQUFnQztBQUNwQzs7QUFDQTtJQUNJLHVDQUF3QjtJQUF4QiwrQkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLGFBQWE7SUFDYixpQ0FBaUM7SUFDakMsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixrQkFBa0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvZ2luLXBhZ2UvbG9naW4tcGFnZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcmdpbjEwMCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG59XG5cbi5hbGxDb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5oMSB7XG4gICAgZm9udC1zaXplOiA1MHB4O1xuICAgIGNvbG9yOiB3aGl0ZTsgICAgXG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cblxucCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IFxuICAgIGNvbG9yOndoaXRlO1xufVxuXG4uYm94LWJvcmRlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpOyAvKiMxQTg0RkYqLzsgIFxuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ud2FybmluZ1RleHQge1xuICAgIGNvbG9yOiAjQ0IyMDIwOyBcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG4uY3VzdG9tLWZvcm17XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IFxuICB9XG5cbiAgLmxvZ2luLWJ1dHRvbiwgLmxvZ2luLWJ1dHRvbjpmb2N1c3tcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzQzhERTk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG4gIC5sb2dpbi1idXR0b246aG92ZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBGNDI3RTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAudGV4dEZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IFxufVxuLnRleHRGaWVsZCBpbnB1dCB7ICAgIFxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNDIpO1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbi50ZXh0RmllbGQgaW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNjkxNkI2O1xufVxuLnRleHRGaWVsZCBzZWxlY3QsIC50ZXh0RmllbGQgc2VsZWN0OmZvY3VzIHtcbiAgICB3aWR0aDpzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC40Mik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufSJdfQ== */\"","module.exports = \"\\n
\\n
\\n \\n
\\n

Alkit eSense Professional

\\n
\\n\\n \\n
\\n
\\n

Alkit eSense Professional är ett planeringsverktyg för Alkit eSense systemen. Verktyget används av sjukvårdspersonal eller terapeuter\\n för att planera, monitorera och följa upp patienters aktiviteter.

\\n
\\n
\\n\\n \\n
\\n
\\n

Logga in

\\n\\n
\\n \\n \\n\\n \\n \\n\\n \\n
\\n \\n
\\n\\n \\n
Fel användarnamn eller lösenord!
\\n
Fyll i användarnamn, lösenord och vårdenhet!
\\n
\\n
\\n
\\n \\n
\\n
\\n\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Component({\n selector: 'app-login-page',\n templateUrl: './login-page.component.html',\n styleUrls: ['./login-page.component.css']\n})\nexport class LoginPageComponent implements OnInit {\n userinfo: any;\n loginFaild: boolean;\n noContent: boolean;\n instance: string;\n instances: string[] = [\"Välj vårdinstans\", \"Angered\", \"Sahlgrenska\", \"Skövde\", \"Alkit\"]\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService, private cookieService: CookieService) { }\n\n ngOnInit() {\n this.loginFaild = false;\n this.noContent = false;\n this.dataservice.username = null;\n this.dataservice.auth_token = null;\n this.dataservice.patientObject = null;\n this.dataservice.patient = \"Ingen vald\";\n this.dataservice.url = null;\n\n var cookieExists = this.cookieService.check('ReactCareUnit');\n if (cookieExists){\n this.instance = this.cookieService.get('ReactCareUnit');\n }\n else{\n this.instance = this.instances[0];\n }\n }\n\n loginUser(e) {\n this.loginFaild = false;\n this.noContent = false;\n\n if (!e.target.elements[0].value || !e.target.elements[1].value || !this.instance || this.instance == this.instances[0]) {\n this.noContent = true;\n return false;\n }\n this.dataservice.setCareUnit(this.instance);\n this.userinfo = {\n username: e.target.elements[0].value,\n password: e.target.elements[1].value\n };\n if (this.userinfo.username && this.userinfo.password) {\n this.dataservice.logInCall(this.userinfo.username, this.userinfo.password).subscribe(\n (resp) => {\n if (resp.status == 200) {\n let data = resp.json();\n this.dataservice.auth_token = data.sessionId;\n this.dataservice.username = this.userinfo.username; \n this.mhs.logIn(this.userinfo.username, this.userinfo.password).subscribe(\n (resp) => {\n if (resp.status == 200){\n let data = resp.json();\n this.mhs.auth_token = data.sessionId;\n this.dataservice.userImg = data.picture;\n this.cookieService.set( 'ReactCareUnit', this.instance, 300);\n this.router.navigate(['/home']);\n }\n else{\n this.loginFaild = true;\n }\n }\n );\n }\n else {\n this.loginFaild = true;\n }\n });\n }\n return false;\n }\n}\n","module.exports = \"/* nvd3 version 1.8.6 (https://github.com/novus/nvd3) 2017-08-23 */\\n.nvd3 .nv-axis {\\r\\n pointer-events:none;\\r\\n opacity: 1;\\r\\n}\\n.nvd3 .nv-axis path {\\r\\n fill: none;\\r\\n stroke: #000;\\r\\n stroke-opacity: .75;\\r\\n shape-rendering: crispEdges;\\r\\n}\\n.nvd3 .nv-axis path.domain {\\r\\n stroke-opacity: .75;\\r\\n}\\n.nvd3 .nv-axis.nv-x path.domain {\\r\\n stroke-opacity: 0;\\r\\n}\\n.nvd3 .nv-axis line {\\r\\n fill: none;\\r\\n stroke: #e5e5e5;\\r\\n shape-rendering: crispEdges;\\r\\n}\\n.nvd3 .nv-axis .zero line,\\r\\n /*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {\\r\\n stroke-opacity: .75;\\r\\n}\\n.nvd3 .nv-axis .nv-axisMaxMin text {\\r\\n font-weight: bold;\\r\\n}\\n.nvd3 .x .nv-axis .nv-axisMaxMin text,\\r\\n.nvd3 .x2 .nv-axis .nv-axisMaxMin text,\\r\\n.nvd3 .x3 .nv-axis .nv-axisMaxMin text {\\r\\n text-anchor: middle;\\r\\n}\\n.nvd3 .nv-axis.nv-disabled {\\r\\n opacity: 0;\\r\\n}\\n.nvd3 .nv-bars rect {\\r\\n fill-opacity: .75;\\r\\n\\r\\n transition: fill-opacity 250ms linear;\\r\\n}\\n.nvd3 .nv-bars rect.hover {\\r\\n fill-opacity: 1;\\r\\n}\\n.nvd3 .nv-bars .hover rect {\\r\\n fill: lightblue;\\r\\n}\\n.nvd3 .nv-bars text {\\r\\n fill: rgba(0,0,0,0);\\r\\n}\\n.nvd3 .nv-bars .hover text {\\r\\n fill: rgba(0,0,0,1);\\r\\n}\\n.nvd3 .nv-multibar .nv-groups rect,\\r\\n.nvd3 .nv-multibarHorizontal .nv-groups rect,\\r\\n.nvd3 .nv-discretebar .nv-groups rect {\\r\\n stroke-opacity: 0;\\r\\n\\r\\n transition: fill-opacity 250ms linear;\\r\\n}\\n.nvd3 .nv-multibar .nv-groups rect:hover,\\r\\n.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,\\r\\n.nvd3 .nv-candlestickBar .nv-ticks rect:hover,\\r\\n.nvd3 .nv-discretebar .nv-groups rect:hover {\\r\\n fill-opacity: 1;\\r\\n}\\n.nvd3 .nv-discretebar .nv-groups text,\\r\\n.nvd3 .nv-multibarHorizontal .nv-groups text {\\r\\n font-weight: bold;\\r\\n fill: rgba(0,0,0,1);\\r\\n stroke: rgba(0,0,0,0);\\r\\n}\\n/* boxplot CSS */\\n.nvd3 .nv-boxplot circle {\\n fill-opacity: 0.5;\\n}\\n.nvd3 .nv-boxplot circle:hover {\\n fill-opacity: 1;\\n}\\n.nvd3 .nv-boxplot rect:hover {\\n fill-opacity: 1;\\n}\\n.nvd3 line.nv-boxplot-median {\\n stroke: black;\\n}\\n.nv-boxplot-tick:hover {\\n stroke-width: 2.5px;\\n}\\n/* bullet */\\n.nvd3.nv-bullet { font: 10px sans-serif; }\\n.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }\\n.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }\\n.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }\\n.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }\\n.nvd3.nv-bullet .nv-markerLine { stroke: #000; stroke-width: 1.5px; }\\n.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }\\n.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }\\n.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }\\n.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }\\n.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }\\n.nvd3.nv-bullet .nv-subtitle { fill: #999; }\\n.nvd3.nv-bullet .nv-range {\\n fill: #bababa;\\r\\n fill-opacity: .4;\\r\\n}\\n.nvd3.nv-bullet .nv-range:hover {\\r\\n fill-opacity: .7;\\r\\n}\\n.nvd3.nv-candlestickBar .nv-ticks .nv-tick {\\r\\n stroke-width: 1px;\\r\\n}\\n.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover {\\r\\n stroke-width: 2px;\\r\\n}\\n.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect {\\r\\n stroke: #2ca02c;\\r\\n fill: #2ca02c;\\r\\n}\\n.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect {\\r\\n stroke: #d62728;\\r\\n fill: #d62728;\\r\\n}\\n.with-transitions .nv-candlestickBar .nv-ticks .nv-tick {\\r\\n transition: stroke-width 250ms linear, stroke-opacity 250ms linear;\\r\\n}\\n.nvd3.nv-candlestickBar .nv-ticks line {\\r\\n stroke: #333;\\r\\n}\\n.nv-force-node {\\n stroke: #fff;\\n stroke-width: 1.5px;\\n}\\n.nv-force-link {\\n stroke: #999;\\n stroke-opacity: .6;\\n}\\n.nv-force-node text {\\n stroke-width: 0px;\\n}\\n.nvd3 .nv-legend .nv-disabled rect {\\n /*fill-opacity: 0;*/\\n}\\n.nvd3 .nv-check-box .nv-box {\\n fill-opacity:0;\\n stroke-width:2;\\n}\\n.nvd3 .nv-check-box .nv-check {\\n fill-opacity:0;\\n stroke-width:4;\\n}\\n.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check {\\n fill-opacity:0;\\n stroke-opacity:0;\\n}\\n.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check {\\n opacity: 0;\\n}\\n/* line plus bar */\\n.nvd3.nv-linePlusBar .nv-bar rect {\\r\\n fill-opacity: .75;\\r\\n}\\n.nvd3.nv-linePlusBar .nv-bar rect:hover {\\r\\n fill-opacity: 1;\\r\\n}\\n.nvd3 .nv-groups path.nv-line {\\r\\n fill: none;\\r\\n}\\n.nvd3 .nv-groups path.nv-area {\\r\\n stroke: none;\\r\\n}\\n.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {\\r\\n fill-opacity: 0;\\r\\n stroke-opacity: 0;\\r\\n}\\n.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {\\r\\n fill-opacity: .5 !important;\\r\\n stroke-opacity: .5 !important;\\r\\n}\\n.with-transitions .nvd3 .nv-groups .nv-point {\\r\\n transition: stroke-width 250ms linear, stroke-opacity 250ms linear;\\r\\n}\\n.nvd3.nv-scatter .nv-groups .nv-point.hover,\\r\\n.nvd3 .nv-groups .nv-point.hover {\\r\\n stroke-width: 7px;\\r\\n fill-opacity: .95 !important;\\r\\n stroke-opacity: .95 !important;\\r\\n}\\n.nvd3 .nv-point-paths path {\\r\\n stroke: #aaa;\\r\\n stroke-opacity: 0;\\r\\n fill: #eee;\\r\\n fill-opacity: 0;\\r\\n}\\n.nvd3 .nv-indexLine {\\n cursor: ew-resize;\\r\\n}\\n/********************\\r\\n * SVG CSS\\r\\n */\\n/********************\\r\\n Default CSS for an svg element nvd3 used\\r\\n*/\\nsvg.nvd3-svg {\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n display: block;\\r\\n width:100%;\\r\\n height:100%;\\r\\n}\\n/********************\\r\\n Box shadow and border radius styling\\r\\n*/\\n.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {\\r\\n box-shadow: 0 5px 10px rgba(0,0,0,.2);\\n border-radius: 5px;\\n}\\n.nvd3 text {\\r\\n font: normal 12px Arial, sans-serif;\\r\\n}\\n.nvd3 .title {\\r\\n font: bold 14px Arial, sans-serif;\\r\\n}\\n.nvd3 .nv-background {\\r\\n fill: white;\\r\\n fill-opacity: 0;\\r\\n}\\n.nvd3.nv-noData {\\r\\n font-size: 18px;\\r\\n font-weight: bold;\\r\\n}\\n/**********\\r\\n* Brush\\r\\n*/\\n.nv-brush .extent {\\r\\n fill-opacity: .125;\\r\\n shape-rendering: crispEdges;\\r\\n}\\n.nv-brush .resize path {\\r\\n fill: #eee;\\r\\n stroke: #666;\\r\\n}\\n/**********\\r\\n* Legend\\r\\n*/\\n.nvd3 .nv-legend .nv-series {\\r\\n cursor: pointer;\\r\\n}\\n.nvd3 .nv-legend .nv-disabled circle {\\r\\n fill-opacity: 0;\\r\\n}\\n/* focus */\\n.nvd3 .nv-brush .extent {\\r\\n fill-opacity: 0 !important;\\r\\n}\\n.nvd3 .nv-brushBackground rect {\\r\\n stroke: #000;\\r\\n stroke-width: .4;\\r\\n fill: #fff;\\r\\n fill-opacity: .7;\\r\\n}\\n/**********\\r\\n* Print\\r\\n*/\\n@media print {\\r\\n .nvd3 text {\\n stroke-width: 0;\\n fill-opacity: 1;\\n }\\n}\\n.nvd3.nv-ohlcBar .nv-ticks .nv-tick {\\r\\n stroke-width: 1px;\\r\\n}\\n.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {\\r\\n stroke-width: 2px;\\r\\n}\\n.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {\\r\\n stroke: #2ca02c;\\r\\n}\\n.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {\\r\\n stroke: #d62728;\\r\\n}\\n.nvd3 .background path {\\r\\n fill: none;\\r\\n stroke: #EEE;\\r\\n stroke-opacity: .4;\\r\\n shape-rendering: crispEdges;\\r\\n}\\n.nvd3 .foreground path {\\r\\n fill: none;\\r\\n stroke-opacity: .7;\\r\\n}\\n.nvd3 .nv-parallelCoordinates-brush .extent {\\n fill: #fff;\\r\\n fill-opacity: .6;\\r\\n stroke: gray;\\r\\n shape-rendering: crispEdges;\\r\\n}\\n.nvd3 .nv-parallelCoordinates .hover {\\r\\n fill-opacity: 1;\\r\\n\\tstroke-width: 3px;\\r\\n}\\n.nvd3 .missingValuesline line {\\r\\n fill: none;\\r\\n stroke: black;\\r\\n stroke-width: 1;\\r\\n stroke-opacity: 1;\\r\\n stroke-dasharray: 5, 5;\\n}\\n.nvd3.nv-pie path {\\r\\n stroke-opacity: 0;\\r\\n transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;\\r\\n}\\n.nvd3.nv-pie .nv-pie-title {\\r\\n font-size: 24px;\\r\\n fill: rgba(19, 196, 249, 0.59);\\r\\n}\\n.nvd3.nv-pie .nv-slice text {\\r\\n stroke: #000;\\r\\n stroke-width: 0;\\r\\n}\\n.nvd3.nv-pie path {\\r\\n stroke: #fff;\\r\\n stroke-width: 1px;\\r\\n stroke-opacity: 1;\\r\\n}\\n.nvd3.nv-pie path {\\r\\n fill-opacity: .7;\\r\\n}\\n.nvd3.nv-pie .hover path {\\r\\n fill-opacity: 1;\\r\\n}\\n.nvd3.nv-pie .nv-label {\\n pointer-events: none;\\r\\n}\\n.nvd3.nv-pie .nv-label rect {\\n fill-opacity: 0;\\r\\n stroke-opacity: 0;\\r\\n}\\n/* scatter */\\n.nvd3 .nv-groups .nv-point.hover {\\r\\n stroke-width: 20px;\\r\\n stroke-opacity: .5;\\r\\n}\\n.nvd3 .nv-scatter .nv-point.hover {\\r\\n fill-opacity: 1;\\r\\n}\\n.nv-noninteractive {\\r\\n pointer-events: none;\\r\\n}\\n.nv-distx, .nv-disty {\\r\\n pointer-events: none;\\r\\n}\\n/* sparkline */\\n.nvd3.nv-sparkline path {\\r\\n fill: none;\\r\\n}\\n.nvd3.nv-sparklineplus g.nv-hoverValue {\\r\\n pointer-events: none;\\r\\n}\\n.nvd3.nv-sparklineplus .nv-hoverValue line {\\r\\n stroke: #333;\\r\\n stroke-width: 1.5px;\\r\\n}\\n.nvd3.nv-sparklineplus,\\r\\n.nvd3.nv-sparklineplus g {\\r\\n pointer-events: all;\\r\\n}\\n.nvd3 .nv-hoverArea {\\r\\n fill-opacity: 0;\\r\\n stroke-opacity: 0;\\r\\n}\\n.nvd3.nv-sparklineplus .nv-xValue,\\r\\n.nvd3.nv-sparklineplus .nv-yValue {\\r\\n stroke-width: 0;\\r\\n font-size: .9em;\\r\\n font-weight: normal;\\r\\n}\\n.nvd3.nv-sparklineplus .nv-yValue {\\r\\n stroke: #f66;\\r\\n}\\n.nvd3.nv-sparklineplus .nv-maxValue {\\r\\n stroke: #2ca02c;\\r\\n fill: #2ca02c;\\r\\n}\\n.nvd3.nv-sparklineplus .nv-minValue {\\r\\n stroke: #d62728;\\r\\n fill: #d62728;\\r\\n}\\n.nvd3.nv-sparklineplus .nv-currentValue {\\r\\n font-weight: bold;\\r\\n font-size: 1.1em;\\r\\n}\\n/* stacked area */\\n.nvd3.nv-stackedarea path.nv-area {\\r\\n fill-opacity: .7;\\r\\n stroke-opacity: 0;\\r\\n transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;\\r\\n}\\n.nvd3.nv-stackedarea path.nv-area.hover {\\r\\n fill-opacity: .9;\\r\\n}\\n.nvd3.nv-stackedarea .nv-groups .nv-point {\\r\\n stroke-opacity: 0;\\r\\n fill-opacity: 0;\\r\\n}\\n.nvtooltip {\\n position: absolute;\\r\\n background-color: rgba(255,255,255,1.0);\\r\\n color: rgba(0,0,0,1.0);\\r\\n padding: 1px;\\r\\n border: 1px solid rgba(0,0,0,.2);\\r\\n z-index: 10000;\\r\\n display: block;\\r\\n\\r\\n font-family: Arial, sans-serif;\\r\\n font-size: 13px;\\r\\n text-align: left;\\r\\n pointer-events: none;\\r\\n\\r\\n white-space: nowrap;\\r\\n\\r\\n -webkit-user-select: none;\\r\\n\\r\\n -moz-user-select: none;\\r\\n\\r\\n -ms-user-select: none;\\r\\n\\r\\n user-select: none;\\n}\\n.nvtooltip {\\r\\n background: rgba(255,255,255, 0.8);\\r\\n border: 1px solid rgba(0,0,0,0.5);\\r\\n border-radius: 4px;\\r\\n}\\n/*Give tooltips that old fade in transition by\\r\\n putting a \\\"with-transitions\\\" class on the container div.\\r\\n*/\\n.nvtooltip.with-transitions, .with-transitions .nvtooltip {\\r\\n transition: opacity 50ms linear;\\r\\n\\n transition-delay: 200ms;\\n}\\n.nvtooltip.x-nvtooltip,\\r\\n.nvtooltip.y-nvtooltip {\\r\\n padding: 8px;\\r\\n}\\n.nvtooltip h3 {\\r\\n margin: 0;\\r\\n padding: 4px 14px;\\r\\n line-height: 18px;\\r\\n font-weight: normal;\\r\\n background-color: rgba(247,247,247,0.75);\\r\\n color: rgba(0,0,0,1.0);\\r\\n text-align: center;\\r\\n\\r\\n border-bottom: 1px solid #ebebeb;\\r\\n\\r\\n border-radius: 5px 5px 0 0;\\n}\\n.nvtooltip p {\\r\\n margin: 0;\\r\\n padding: 5px 14px;\\r\\n text-align: center;\\r\\n}\\n.nvtooltip span {\\r\\n display: inline-block;\\r\\n margin: 2px 0;\\r\\n}\\n.nvtooltip table {\\r\\n margin: 6px;\\r\\n border-spacing:0;\\r\\n}\\n.nvtooltip table td {\\r\\n padding: 2px 9px 2px 0;\\r\\n vertical-align: middle;\\r\\n}\\n.nvtooltip table td.key {\\r\\n font-weight: normal;\\r\\n}\\n.nvtooltip table td.key.total {\\r\\n font-weight: bold;\\r\\n}\\n.nvtooltip table td.value {\\n text-align: right;\\r\\n font-weight: bold;\\r\\n}\\n.nvtooltip table td.percent {\\r\\n color: darkgray;\\r\\n}\\n.nvtooltip table tr.highlight td {\\r\\n padding: 1px 9px 1px 0;\\r\\n border-bottom-style: solid;\\r\\n border-bottom-width: 1px;\\r\\n border-top-style: solid;\\r\\n border-top-width: 1px;\\r\\n}\\n.nvtooltip table td.legend-color-guide div {\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n vertical-align: middle;\\r\\n}\\n.nvtooltip table td.legend-color-guide div {\\r\\n width: 12px;\\r\\n height: 12px;\\r\\n border: 1px solid #999;\\r\\n}\\n.nvtooltip .footer {\\r\\n padding: 3px;\\r\\n text-align: center;\\r\\n}\\n.nvtooltip-pending-removal {\\r\\n pointer-events: none;\\r\\n display: none;\\r\\n}\\n/****\\r\\nInteractive Layer\\r\\n*/\\n.nvd3 .nv-interactiveGuideLine {\\r\\n pointer-events:none;\\r\\n}\\n.nvd3 line.nv-guideline {\\r\\n stroke: #ccc;\\r\\n}\\n.myDatePicker {\\n text-align: left; \\n}\\n.myDatePicker input {\\n width: 165px;\\n}\\n.myDatePicker md-icon {\\n width: 22px;\\n height: 22px;\\n vertical-align: middle;\\n font-size: 22px;\\n}\\n.myDatePicker:hover {\\n cursor: pointer;\\n}\\n.mat-menu-content {\\n padding: 0px !important;\\n}\\n.mat-input-infix {\\n padding: .3em 0 !important;\\n}\\n.mat-menu-panel {\\n max-width: 500px !important;\\n overflow: hidden !important;\\n}\\n.custom-day {\\n text-align: center;\\n padding: 0.185rem 0.25rem;\\n display: inline-block;\\n height: 2rem;\\n width: 2rem;\\n}\\n.custom-day.focused {\\n background-color: #e6e6e6;\\n}\\n.custom-day.range, .custom-day:hover {\\n background-color: rgb(2, 117, 216);\\n color: white;\\n}\\n.custom-day.faded {\\n background-color: rgba(2, 117, 216, 0.5);\\n}\\n.custom-day.today {\\n background-color: rgba(252, 172, 67, 1);\\n color: white;\\n}\\n.iconDatePicker {\\n border-bottom: 1px solid #222;\\n}\\n/* table styles */\\n.calender-dropdown {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px; \\n }\\n.calender-dropdown tr:first-child{\\n border-bottom: 1px solid #222;\\n display: table-row;\\n }\\n.calender-dropdown td{\\n padding: 2px;\\n font-size: 15px;\\n }\\n.calender-dropdown button {\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n width: 100%;\\n font-size: 15px;\\n color: inherit; \\n cursor: inherit; \\n }\\n.ring {\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.marked {\\n background-color: purple !important;\\n color: white !important;\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.month-label {\\n display: -ms-flexbox;\\n display: flex; \\n -ms-flex-pack: center; \\n justify-content: center;\\n text-align: center; \\n vertical-align: middle;\\n height: 60px;\\n line-height: 60px;\\n background-color: rgba(17, 175, 253, 0.3);\\n width: auto !important;\\n border: none !important; \\n }\\n.month-label md-icon {\\n line-height: inherit;\\n margin-left: 20px;\\n margin-right: 20px; \\n }\\n.margin5{\\n margin-left: 5%;\\n margin-right: 5%; \\n }\\n.chartRow {\\n width: 100%;\\n margin-bottom: 100px;\\n }\\n@media only screen and (min-width: 1300px){\\n .chartRow {\\n width: 50%;\\n margin-bottom: 100px;\\n }\\n .margin5{\\n margin: 0px;\\n }\\n }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9udmQzL2J1aWxkL252LmQzLmNzcyIsInNyYy9hcHAvY29tcG9uZW50cy9tZWFzdXJlbWVudHMvbWVhc3VyZW1lbnRzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFO0FBQ2xFO0lBQ0ksbUJBQW1CO0lBQ25CLFVBQVU7QUFDZDtBQUVBO0lBQ0ksVUFBVTtJQUNWLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsMkJBQTJCO0FBQy9CO0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjtBQUVBO0lBQ0ksVUFBVTtJQUNWLGVBQWU7SUFDZiwyQkFBMkI7QUFDL0I7QUFFQTs7SUFFSSxtQkFBbUI7QUFDdkI7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjtBQUVBOzs7SUFHSSxtQkFBbUI7QUFDdkI7QUFFQTtJQUNJLFVBQVU7QUFDZDtBQUVBO0lBQ0ksaUJBQWlCOztJQUVqQixxQ0FBcUM7QUFDekM7QUFFQTtJQUNJLGVBQWU7QUFDbkI7QUFFQTtJQUNJLGVBQWU7QUFDbkI7QUFFQTtJQUNJLG1CQUFtQjtBQUN2QjtBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCO0FBRUE7OztJQUdJLGlCQUFpQjs7SUFFakIscUNBQXFDO0FBQ3pDO0FBRUE7Ozs7SUFJSSxlQUFlO0FBQ25CO0FBRUE7O0lBRUksaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUI7QUFDekI7QUFFQSxnQkFBZ0I7QUFDaEI7RUFDRSxpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLGVBQWU7QUFDakI7QUFFQTtFQUNFLGVBQWU7QUFDakI7QUFFQTtFQUNFLGFBQWE7QUFDZjtBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0EsV0FBVztBQUNYLGtCQUFrQixxQkFBcUIsRUFBRTtBQUN6Qyw4QkFBOEIsZ0JBQWdCLEVBQUU7QUFDaEQsb0NBQW9DLGVBQWUsRUFBRTtBQUNyRCw2QkFBNkIsWUFBWSxFQUFFLGlCQUFpQixF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QWE7SUFDYixxQkFBdUI7UUFBdkIsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQix5Q0FBeUM7SUFDekMsc0JBQXNCO0lBQ3RCLHVCQUF1QjtFQUN6QjtBQUNBO01BQ0ksb0JBQW9CO01BQ3BCLGlCQUFpQjtNQUNqQixrQkFBa0I7RUFDdEI7QUFFQTtJQUNFLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7QUFFQTtJQUNFLFdBQVc7SUFDWCxvQkFBb0I7RUFDdEI7QUFFQTtJQUNFO01BQ0UsVUFBVTtNQUNWLG9CQUFvQjtJQUN0QjtJQUNBO01BQ0UsV0FBVztJQUNiO0VBQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYXN1cmVtZW50cy9tZWFzdXJlbWVudHMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIG52ZDMgdmVyc2lvbiAxLjguNiAoaHR0cHM6Ly9naXRodWIuY29tL25vdnVzL252ZDMpIDIwMTctMDgtMjMgKi9cbi5udmQzIC5udi1heGlzIHtcclxuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4ubnZkMyAubnYtYXhpcyBwYXRoIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2U6ICMwMDA7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogLjc1O1xyXG4gICAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xyXG59XHJcblxyXG4ubnZkMyAubnYtYXhpcyBwYXRoLmRvbWFpbiB7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogLjc1O1xyXG59XHJcblxyXG4ubnZkMyAubnYtYXhpcy5udi14IHBhdGguZG9tYWluIHtcclxuICAgIHN0cm9rZS1vcGFjaXR5OiAwO1xyXG59XHJcblxyXG4ubnZkMyAubnYtYXhpcyBsaW5lIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2U6ICNlNWU1ZTU7XHJcbiAgICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XHJcbn1cclxuXHJcbi5udmQzIC5udi1heGlzIC56ZXJvIGxpbmUsXHJcbiAgICAvKnRoaXMgc2VsZWN0b3IgbWF5IG5vdCBiZSBuZWNlc3NhcnkqLyAubnZkMyAubnYtYXhpcyBsaW5lLnplcm8ge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC43NTtcclxufVxyXG5cclxuLm52ZDMgLm52LWF4aXMgLm52LWF4aXNNYXhNaW4gdGV4dCB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLm52ZDMgLnggIC5udi1heGlzIC5udi1heGlzTWF4TWluIHRleHQsXHJcbi5udmQzIC54MiAubnYtYXhpcyAubnYtYXhpc01heE1pbiB0ZXh0LFxyXG4ubnZkMyAueDMgLm52LWF4aXMgLm52LWF4aXNNYXhNaW4gdGV4dCB7XHJcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xyXG59XHJcblxyXG4ubnZkMyAubnYtYXhpcy5udi1kaXNhYmxlZCB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG59XHJcblxuLm52ZDMgLm52LWJhcnMgcmVjdCB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IC43NTtcclxuXHJcbiAgICB0cmFuc2l0aW9uOiBmaWxsLW9wYWNpdHkgMjUwbXMgbGluZWFyO1xyXG59XG5cclxuLm52ZDMgLm52LWJhcnMgcmVjdC5ob3ZlciB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5udmQzIC5udi1iYXJzIC5ob3ZlciByZWN0IHtcclxuICAgIGZpbGw6IGxpZ2h0Ymx1ZTtcclxufVxyXG5cclxuLm52ZDMgLm52LWJhcnMgdGV4dCB7XHJcbiAgICBmaWxsOiByZ2JhKDAsMCwwLDApO1xyXG59XHJcblxyXG4ubnZkMyAubnYtYmFycyAuaG92ZXIgdGV4dCB7XHJcbiAgICBmaWxsOiByZ2JhKDAsMCwwLDEpO1xyXG59XHJcblxyXG4ubnZkMyAubnYtbXVsdGliYXIgLm52LWdyb3VwcyByZWN0LFxyXG4ubnZkMyAubnYtbXVsdGliYXJIb3Jpem9udGFsIC5udi1ncm91cHMgcmVjdCxcclxuLm52ZDMgLm52LWRpc2NyZXRlYmFyIC5udi1ncm91cHMgcmVjdCB7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogMDtcclxuXHJcbiAgICB0cmFuc2l0aW9uOiBmaWxsLW9wYWNpdHkgMjUwbXMgbGluZWFyO1xyXG59XG5cclxuLm52ZDMgLm52LW11bHRpYmFyIC5udi1ncm91cHMgcmVjdDpob3ZlcixcclxuLm52ZDMgLm52LW11bHRpYmFySG9yaXpvbnRhbCAubnYtZ3JvdXBzIHJlY3Q6aG92ZXIsXHJcbi5udmQzIC5udi1jYW5kbGVzdGlja0JhciAubnYtdGlja3MgcmVjdDpob3ZlcixcclxuLm52ZDMgLm52LWRpc2NyZXRlYmFyIC5udi1ncm91cHMgcmVjdDpob3ZlciB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5udmQzIC5udi1kaXNjcmV0ZWJhciAubnYtZ3JvdXBzIHRleHQsXHJcbi5udmQzIC5udi1tdWx0aWJhckhvcml6b250YWwgLm52LWdyb3VwcyB0ZXh0IHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZmlsbDogcmdiYSgwLDAsMCwxKTtcclxuICAgIHN0cm9rZTogcmdiYSgwLDAsMCwwKTtcclxufVxyXG5cbi8qIGJveHBsb3QgQ1NTICovXG4ubnZkMyAubnYtYm94cGxvdCBjaXJjbGUge1xuICBmaWxsLW9wYWNpdHk6IDAuNTtcbn1cblxuLm52ZDMgLm52LWJveHBsb3QgY2lyY2xlOmhvdmVyIHtcbiAgZmlsbC1vcGFjaXR5OiAxO1xufVxuXG4ubnZkMyAubnYtYm94cGxvdCByZWN0OmhvdmVyIHtcbiAgZmlsbC1vcGFjaXR5OiAxO1xufVxuXG4ubnZkMyBsaW5lLm52LWJveHBsb3QtbWVkaWFuIHtcbiAgc3Ryb2tlOiBibGFjaztcbn1cblxuLm52LWJveHBsb3QtdGljazpob3ZlciB7XG4gIHN0cm9rZS13aWR0aDogMi41cHg7XG59XG4vKiBidWxsZXQgKi9cclxuLm52ZDMubnYtYnVsbGV0IHsgZm9udDogMTBweCBzYW5zLXNlcmlmOyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtbWVhc3VyZSB7IGZpbGwtb3BhY2l0eTogLjg7IH1cclxuLm52ZDMubnYtYnVsbGV0IC5udi1tZWFzdXJlOmhvdmVyIHsgZmlsbC1vcGFjaXR5OiAxOyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtbWFya2VyIHsgc3Ryb2tlOiAjMDAwOyBzdHJva2Utd2lkdGg6IDJweDsgfVxyXG4ubnZkMy5udi1idWxsZXQgLm52LW1hcmtlclRyaWFuZ2xlIHsgc3Ryb2tlOiAjMDAwOyBmaWxsOiAjZmZmOyBzdHJva2Utd2lkdGg6IDEuNXB4OyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtbWFya2VyTGluZSB7IHN0cm9rZTogIzAwMDsgc3Ryb2tlLXdpZHRoOiAxLjVweDsgfVxyXG4ubnZkMy5udi1idWxsZXQgLm52LXRpY2sgbGluZSB7IHN0cm9rZTogIzY2Njsgc3Ryb2tlLXdpZHRoOiAuNXB4OyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtcmFuZ2UubnYtczAgeyBmaWxsOiAjZWVlOyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtcmFuZ2UubnYtczEgeyBmaWxsOiAjZGRkOyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtcmFuZ2UubnYtczIgeyBmaWxsOiAjY2NjOyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtdGl0bGUgeyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcbi5udmQzLm52LWJ1bGxldCAubnYtc3VidGl0bGUgeyBmaWxsOiAjOTk5OyB9XHJcblxyXG4ubnZkMy5udi1idWxsZXQgLm52LXJhbmdlIHtcbiAgICBmaWxsOiAjYmFiYWJhO1xyXG4gICAgZmlsbC1vcGFjaXR5OiAuNDtcclxufVxuXG4ubnZkMy5udi1idWxsZXQgLm52LXJhbmdlOmhvdmVyIHtcclxuICAgIGZpbGwtb3BhY2l0eTogLjc7XHJcbn1cclxuXG4ubnZkMy5udi1jYW5kbGVzdGlja0JhciAubnYtdGlja3MgLm52LXRpY2sge1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxcHg7XHJcbn1cclxuXHJcbi5udmQzLm52LWNhbmRsZXN0aWNrQmFyIC5udi10aWNrcyAubnYtdGljay5ob3ZlciB7XHJcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcclxufVxyXG5cclxuLm52ZDMubnYtY2FuZGxlc3RpY2tCYXIgLm52LXRpY2tzIC5udi10aWNrLnBvc2l0aXZlIHJlY3Qge1xyXG4gICAgc3Ryb2tlOiAjMmNhMDJjO1xyXG4gICAgZmlsbDogIzJjYTAyYztcclxufVxyXG5cclxuLm52ZDMubnYtY2FuZGxlc3RpY2tCYXIgLm52LXRpY2tzIC5udi10aWNrLm5lZ2F0aXZlIHJlY3Qge1xyXG4gICAgc3Ryb2tlOiAjZDYyNzI4O1xyXG4gICAgZmlsbDogI2Q2MjcyODtcclxufVxyXG5cclxuLndpdGgtdHJhbnNpdGlvbnMgLm52LWNhbmRsZXN0aWNrQmFyIC5udi10aWNrcyAubnYtdGljayB7XHJcbiAgICB0cmFuc2l0aW9uOiBzdHJva2Utd2lkdGggMjUwbXMgbGluZWFyLCBzdHJva2Utb3BhY2l0eSAyNTBtcyBsaW5lYXI7XHJcbn1cblxyXG4ubnZkMy5udi1jYW5kbGVzdGlja0JhciAubnYtdGlja3MgbGluZSB7XHJcbiAgICBzdHJva2U6ICMzMzM7XHJcbn1cclxuXG4ubnYtZm9yY2Utbm9kZSB7XG4gICAgc3Ryb2tlOiAjZmZmO1xuICAgIHN0cm9rZS13aWR0aDogMS41cHg7XG59XG5cbi5udi1mb3JjZS1saW5rIHtcbiAgICBzdHJva2U6ICM5OTk7XG4gICAgc3Ryb2tlLW9wYWNpdHk6IC42O1xufVxuXG4ubnYtZm9yY2Utbm9kZSB0ZXh0IHtcbiAgICBzdHJva2Utd2lkdGg6IDBweDtcbn1cblxuLm52ZDMgLm52LWxlZ2VuZCAubnYtZGlzYWJsZWQgcmVjdCB7XG4gICAgLypmaWxsLW9wYWNpdHk6IDA7Ki9cbn1cblxuLm52ZDMgLm52LWNoZWNrLWJveCAubnYtYm94IHtcbiAgICBmaWxsLW9wYWNpdHk6MDtcbiAgICBzdHJva2Utd2lkdGg6Mjtcbn1cblxuLm52ZDMgLm52LWNoZWNrLWJveCAubnYtY2hlY2sge1xuICAgIGZpbGwtb3BhY2l0eTowO1xuICAgIHN0cm9rZS13aWR0aDo0O1xufVxuXG4ubnZkMyAubnYtc2VyaWVzLm52LWRpc2FibGVkIC5udi1jaGVjay1ib3ggLm52LWNoZWNrIHtcbiAgICBmaWxsLW9wYWNpdHk6MDtcbiAgICBzdHJva2Utb3BhY2l0eTowO1xufVxuXG4ubnZkMyAubnYtY29udHJvbHNXcmFwIC5udi1sZWdlbmQgLm52LWNoZWNrLWJveCAubnYtY2hlY2sge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi8qIGxpbmUgcGx1cyBiYXIgKi9cclxuLm52ZDMubnYtbGluZVBsdXNCYXIgLm52LWJhciByZWN0IHtcclxuICAgIGZpbGwtb3BhY2l0eTogLjc1O1xyXG59XHJcblxyXG4ubnZkMy5udi1saW5lUGx1c0JhciAubnYtYmFyIHJlY3Q6aG92ZXIge1xyXG4gICAgZmlsbC1vcGFjaXR5OiAxO1xyXG59XG4ubnZkMyAubnYtZ3JvdXBzIHBhdGgubnYtbGluZSB7XHJcbiAgICBmaWxsOiBub25lO1xyXG59XHJcblxyXG4ubnZkMyAubnYtZ3JvdXBzIHBhdGgubnYtYXJlYSB7XHJcbiAgICBzdHJva2U6IG5vbmU7XHJcbn1cclxuXHJcbi5udmQzLm52LWxpbmUgLm52ZDMubnYtc2NhdHRlciAubnYtZ3JvdXBzIC5udi1wb2ludCB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IDA7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogMDtcclxufVxyXG5cclxuLm52ZDMubnYtc2NhdHRlci5udi1zaW5nbGUtcG9pbnQgLm52LWdyb3VwcyAubnYtcG9pbnQge1xyXG4gICAgZmlsbC1vcGFjaXR5OiAuNSAhaW1wb3J0YW50O1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC41ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4ud2l0aC10cmFuc2l0aW9ucyAubnZkMyAubnYtZ3JvdXBzIC5udi1wb2ludCB7XHJcbiAgICB0cmFuc2l0aW9uOiBzdHJva2Utd2lkdGggMjUwbXMgbGluZWFyLCBzdHJva2Utb3BhY2l0eSAyNTBtcyBsaW5lYXI7XHJcbn1cblxyXG4ubnZkMy5udi1zY2F0dGVyIC5udi1ncm91cHMgLm52LXBvaW50LmhvdmVyLFxyXG4ubnZkMyAubnYtZ3JvdXBzIC5udi1wb2ludC5ob3ZlciB7XHJcbiAgICBzdHJva2Utd2lkdGg6IDdweDtcclxuICAgIGZpbGwtb3BhY2l0eTogLjk1ICFpbXBvcnRhbnQ7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogLjk1ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4ubnZkMyAubnYtcG9pbnQtcGF0aHMgcGF0aCB7XHJcbiAgICBzdHJva2U6ICNhYWE7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogMDtcclxuICAgIGZpbGw6ICNlZWU7XHJcbiAgICBmaWxsLW9wYWNpdHk6IDA7XHJcbn1cclxuXHJcblxyXG4ubnZkMyAubnYtaW5kZXhMaW5lIHtcbiAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcclxufVxyXG5cbi8qKioqKioqKioqKioqKioqKioqKlxyXG4gKiBTVkcgQ1NTXHJcbiAqL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqXHJcbiAgRGVmYXVsdCBDU1MgZm9yIGFuIHN2ZyBlbGVtZW50IG52ZDMgdXNlZFxyXG4qL1xyXG5zdmcubnZkMy1zdmcge1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBoZWlnaHQ6MTAwJTtcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqXHJcbiAgQm94IHNoYWRvdyBhbmQgYm9yZGVyIHJhZGl1cyBzdHlsaW5nXHJcbiovXHJcbi5udnRvb2x0aXAud2l0aC0zZC1zaGFkb3csIC53aXRoLTNkLXNoYWRvdyAubnZ0b29sdGlwIHtcclxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMik7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxyXG5cclxuXHJcbi5udmQzIHRleHQge1xyXG4gICAgZm9udDogbm9ybWFsIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5udmQzIC50aXRsZSB7XHJcbiAgICBmb250OiBib2xkIDE0cHggQXJpYWwsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5udmQzIC5udi1iYWNrZ3JvdW5kIHtcclxuICAgIGZpbGw6IHdoaXRlO1xyXG4gICAgZmlsbC1vcGFjaXR5OiAwO1xyXG59XHJcblxyXG4ubnZkMy5udi1ub0RhdGEge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKlxyXG4qICBCcnVzaFxyXG4qL1xyXG5cclxuLm52LWJydXNoIC5leHRlbnQge1xyXG4gICAgZmlsbC1vcGFjaXR5OiAuMTI1O1xyXG4gICAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xyXG59XHJcblxyXG4ubnYtYnJ1c2ggLnJlc2l6ZSBwYXRoIHtcclxuICAgIGZpbGw6ICNlZWU7XHJcbiAgICBzdHJva2U6ICM2NjY7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKlxyXG4qICBMZWdlbmRcclxuKi9cclxuXHJcbi5udmQzIC5udi1sZWdlbmQgLm52LXNlcmllcyB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5udmQzIC5udi1sZWdlbmQgLm52LWRpc2FibGVkIGNpcmNsZSB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi8qIGZvY3VzICovXHJcbi5udmQzIC5udi1icnVzaCAuZXh0ZW50IHtcclxuICAgIGZpbGwtb3BhY2l0eTogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubnZkMyAubnYtYnJ1c2hCYWNrZ3JvdW5kIHJlY3Qge1xyXG4gICAgc3Ryb2tlOiAjMDAwO1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAuNDtcclxuICAgIGZpbGw6ICNmZmY7XHJcbiAgICBmaWxsLW9wYWNpdHk6IC43O1xyXG59XHJcblxyXG4vKioqKioqKioqKlxyXG4qICBQcmludFxyXG4qL1xyXG5cclxuQG1lZGlhIHByaW50IHtcclxuICAgIC5udmQzIHRleHQge1xuICAgICAgICBzdHJva2Utd2lkdGg6IDA7XG4gICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICB9XG59XHJcblxuLm52ZDMubnYtb2hsY0JhciAubnYtdGlja3MgLm52LXRpY2sge1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxcHg7XHJcbn1cclxuXHJcbi5udmQzLm52LW9obGNCYXIgLm52LXRpY2tzIC5udi10aWNrLmhvdmVyIHtcclxuICAgIHN0cm9rZS13aWR0aDogMnB4O1xyXG59XHJcblxyXG4ubnZkMy5udi1vaGxjQmFyIC5udi10aWNrcyAubnYtdGljay5wb3NpdGl2ZSB7XHJcbiAgICBzdHJva2U6ICMyY2EwMmM7XHJcbn1cclxuXHJcbi5udmQzLm52LW9obGNCYXIgLm52LXRpY2tzIC5udi10aWNrLm5lZ2F0aXZlIHtcclxuICAgIHN0cm9rZTogI2Q2MjcyODtcclxufVxyXG5cclxuXG4ubnZkMyAuYmFja2dyb3VuZCBwYXRoIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2U6ICNFRUU7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogLjQ7XHJcbiAgICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XHJcbn1cclxuXHJcbi5udmQzIC5mb3JlZ3JvdW5kIHBhdGgge1xyXG4gICAgZmlsbDogbm9uZTtcclxuICAgIHN0cm9rZS1vcGFjaXR5OiAuNztcclxufVxyXG5cclxuLm52ZDMgLm52LXBhcmFsbGVsQ29vcmRpbmF0ZXMtYnJ1c2ggLmV4dGVudCB7XG4gICAgZmlsbDogI2ZmZjtcclxuICAgIGZpbGwtb3BhY2l0eTogLjY7XHJcbiAgICBzdHJva2U6IGdyYXk7XHJcbiAgICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XHJcbn1cclxuXHJcbi5udmQzIC5udi1wYXJhbGxlbENvb3JkaW5hdGVzIC5ob3ZlciAge1xyXG4gICAgZmlsbC1vcGFjaXR5OiAxO1xyXG5cdHN0cm9rZS13aWR0aDogM3B4O1xyXG59XHJcblxyXG5cclxuLm52ZDMgLm1pc3NpbmdWYWx1ZXNsaW5lIGxpbmUge1xyXG4gIGZpbGw6IG5vbmU7XHJcbiAgc3Ryb2tlOiBibGFjaztcclxuICBzdHJva2Utd2lkdGg6IDE7XHJcbiAgc3Ryb2tlLW9wYWNpdHk6IDE7XHJcbiAgc3Ryb2tlLWRhc2hhcnJheTogNSwgNTtcbn1cblxuLm52ZDMubnYtcGllIHBhdGgge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBmaWxsLW9wYWNpdHkgMjUwbXMgbGluZWFyLCBzdHJva2Utd2lkdGggMjUwbXMgbGluZWFyLCBzdHJva2Utb3BhY2l0eSAyNTBtcyBsaW5lYXI7XHJcbn1cblxyXG4ubnZkMy5udi1waWUgLm52LXBpZS10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBmaWxsOiByZ2JhKDE5LCAxOTYsIDI0OSwgMC41OSk7XHJcbn1cclxuXHJcbi5udmQzLm52LXBpZSAubnYtc2xpY2UgdGV4dCB7XHJcbiAgICBzdHJva2U6ICMwMDA7XHJcbiAgICBzdHJva2Utd2lkdGg6IDA7XHJcbn1cclxuXHJcbi5udmQzLm52LXBpZSBwYXRoIHtcclxuICAgIHN0cm9rZTogI2ZmZjtcclxuICAgIHN0cm9rZS13aWR0aDogMXB4O1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5udmQzLm52LXBpZSBwYXRoIHtcclxuICAgIGZpbGwtb3BhY2l0eTogLjc7XHJcbn1cblxuLm52ZDMubnYtcGllIC5ob3ZlciBwYXRoIHtcclxuICAgIGZpbGwtb3BhY2l0eTogMTtcclxufVxyXG5cbi5udmQzLm52LXBpZSAubnYtbGFiZWwge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxuLm52ZDMubnYtcGllIC5udi1sYWJlbCByZWN0IHtcbiAgICBmaWxsLW9wYWNpdHk6IDA7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogMDtcclxufVxyXG5cbi8qIHNjYXR0ZXIgKi9cclxuLm52ZDMgLm52LWdyb3VwcyAubnYtcG9pbnQuaG92ZXIge1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAyMHB4O1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC41O1xyXG59XHJcblxyXG4ubnZkMyAubnYtc2NhdHRlciAubnYtcG9pbnQuaG92ZXIge1xyXG4gICAgZmlsbC1vcGFjaXR5OiAxO1xyXG59XG5cbi5udi1ub25pbnRlcmFjdGl2ZSB7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLm52LWRpc3R4LCAubnYtZGlzdHkge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXG4vKiBzcGFya2xpbmUgKi9cclxuLm52ZDMubnYtc3BhcmtsaW5lIHBhdGgge1xyXG4gICAgZmlsbDogbm9uZTtcclxufVxyXG5cclxuLm52ZDMubnYtc3BhcmtsaW5lcGx1cyBnLm52LWhvdmVyVmFsdWUge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5udmQzLm52LXNwYXJrbGluZXBsdXMgLm52LWhvdmVyVmFsdWUgbGluZSB7XHJcbiAgICBzdHJva2U6ICMzMzM7XHJcbiAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xyXG59XHJcblxyXG4ubnZkMy5udi1zcGFya2xpbmVwbHVzLFxyXG4ubnZkMy5udi1zcGFya2xpbmVwbHVzIGcge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxufVxyXG5cclxuLm52ZDMgLm52LWhvdmVyQXJlYSB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IDA7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogMDtcclxufVxyXG5cclxuLm52ZDMubnYtc3BhcmtsaW5lcGx1cyAubnYteFZhbHVlLFxyXG4ubnZkMy5udi1zcGFya2xpbmVwbHVzIC5udi15VmFsdWUge1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAwO1xyXG4gICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLm52ZDMubnYtc3BhcmtsaW5lcGx1cyAubnYteVZhbHVlIHtcclxuICAgIHN0cm9rZTogI2Y2NjtcclxufVxyXG5cclxuLm52ZDMubnYtc3BhcmtsaW5lcGx1cyAubnYtbWF4VmFsdWUge1xyXG4gICAgc3Ryb2tlOiAjMmNhMDJjO1xyXG4gICAgZmlsbDogIzJjYTAyYztcclxufVxyXG5cclxuLm52ZDMubnYtc3BhcmtsaW5lcGx1cyAubnYtbWluVmFsdWUge1xyXG4gICAgc3Ryb2tlOiAjZDYyNzI4O1xyXG4gICAgZmlsbDogI2Q2MjcyODtcclxufVxyXG5cclxuLm52ZDMubnYtc3BhcmtsaW5lcGx1cyAubnYtY3VycmVudFZhbHVlIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxLjFlbTtcclxufVxuLyogc3RhY2tlZCBhcmVhICovXHJcbi5udmQzLm52LXN0YWNrZWRhcmVhIHBhdGgubnYtYXJlYSB7XHJcbiAgICBmaWxsLW9wYWNpdHk6IC43O1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBmaWxsLW9wYWNpdHkgMjUwbXMgbGluZWFyLCBzdHJva2Utb3BhY2l0eSAyNTBtcyBsaW5lYXI7XHJcbn1cblxyXG4ubnZkMy5udi1zdGFja2VkYXJlYSBwYXRoLm52LWFyZWEuaG92ZXIge1xyXG4gICAgZmlsbC1vcGFjaXR5OiAuOTtcclxufVxyXG5cclxuXHJcbi5udmQzLm52LXN0YWNrZWRhcmVhIC5udi1ncm91cHMgLm52LXBvaW50IHtcclxuICAgIHN0cm9rZS1vcGFjaXR5OiAwO1xyXG4gICAgZmlsbC1vcGFjaXR5OiAwO1xyXG59XG5cbi5udnRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMS4wKTtcclxuICAgIGNvbG9yOiByZ2JhKDAsMCwwLDEuMCk7XHJcbiAgICBwYWRkaW5nOiAxcHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtcclxuICAgIHotaW5kZXg6IDEwMDAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG5cclxuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxyXG4ubnZ0b29sdGlwIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsIDAuOCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuNSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbn1cclxuXHJcbi8qR2l2ZSB0b29sdGlwcyB0aGF0IG9sZCBmYWRlIGluIHRyYW5zaXRpb24gYnlcclxuICAgIHB1dHRpbmcgYSBcIndpdGgtdHJhbnNpdGlvbnNcIiBjbGFzcyBvbiB0aGUgY29udGFpbmVyIGRpdi5cclxuKi9cclxuLm52dG9vbHRpcC53aXRoLXRyYW5zaXRpb25zLCAud2l0aC10cmFuc2l0aW9ucyAubnZ0b29sdGlwIHtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNTBtcyBsaW5lYXI7XHJcblxuICAgIHRyYW5zaXRpb24tZGVsYXk6IDIwMG1zO1xufVxuXHJcbi5udnRvb2x0aXAueC1udnRvb2x0aXAsXHJcbi5udnRvb2x0aXAueS1udnRvb2x0aXAge1xyXG4gICAgcGFkZGluZzogOHB4O1xyXG59XHJcblxyXG4ubnZ0b29sdGlwIGgzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDRweCAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDcsMjQ3LDI0NywwLjc1KTtcclxuICAgIGNvbG9yOiByZ2JhKDAsMCwwLDEuMCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XHJcblxyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XHJcblxyXG4ubnZ0b29sdGlwIHAge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogNXB4IDE0cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5udnRvb2x0aXAgc3BhbiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDJweCAwO1xyXG59XHJcblxyXG4ubnZ0b29sdGlwIHRhYmxlIHtcclxuICAgIG1hcmdpbjogNnB4O1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6MDtcclxufVxyXG5cclxuXHJcbi5udnRvb2x0aXAgdGFibGUgdGQge1xyXG4gICAgcGFkZGluZzogMnB4IDlweCAycHggMDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5udnRvb2x0aXAgdGFibGUgdGQua2V5IHtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbn1cblxuLm52dG9vbHRpcCB0YWJsZSB0ZC5rZXkudG90YWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXG4ubnZ0b29sdGlwIHRhYmxlIHRkLnZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4ubnZ0b29sdGlwIHRhYmxlIHRkLnBlcmNlbnQge1xyXG4gICAgY29sb3I6IGRhcmtncmF5O1xyXG59XHJcblxyXG4ubnZ0b29sdGlwIHRhYmxlIHRyLmhpZ2hsaWdodCB0ZCB7XHJcbiAgICBwYWRkaW5nOiAxcHggOXB4IDFweCAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDtcclxufVxyXG5cclxuLm52dG9vbHRpcCB0YWJsZSB0ZC5sZWdlbmQtY29sb3ItZ3VpZGUgZGl2IHtcclxuICAgIHdpZHRoOiA4cHg7XHJcbiAgICBoZWlnaHQ6IDhweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5udnRvb2x0aXAgdGFibGUgdGQubGVnZW5kLWNvbG9yLWd1aWRlIGRpdiB7XHJcbiAgICB3aWR0aDogMTJweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XHJcbn1cclxuXHJcbi5udnRvb2x0aXAgLmZvb3RlciB7XHJcbiAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5udnRvb2x0aXAtcGVuZGluZy1yZW1vdmFsIHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqXHJcbkludGVyYWN0aXZlIExheWVyXHJcbiovXHJcbi5udmQzIC5udi1pbnRlcmFjdGl2ZUd1aWRlTGluZSB7XHJcbiAgICBwb2ludGVyLWV2ZW50czpub25lO1xyXG59XG5cbi5udmQzIGxpbmUubnYtZ3VpZGVsaW5lIHtcclxuICAgIHN0cm9rZTogI2NjYztcclxufVxyXG4iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvbnZkMy9idWlsZC9udi5kMy5jc3MnO1xuXG4ubXlEYXRlUGlja2VyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgICBcbn1cblxuLm15RGF0ZVBpY2tlciBpbnB1dCB7XG4gICAgd2lkdGg6IDE2NXB4O1xufVxuXG4ubXlEYXRlUGlja2VyIG1kLWljb24ge1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbn1cbi5teURhdGVQaWNrZXI6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXQtbWVudS1jb250ZW50IHtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtaW5wdXQtaW5maXgge1xuICAgIHBhZGRpbmc6IC4zZW0gMCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LW1lbnUtcGFuZWwge1xuICAgIG1heC13aWR0aDogNTAwcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5jdXN0b20tZGF5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjE4NXJlbSAwLjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMnJlbTtcbiAgd2lkdGg6IDJyZW07XG59XG4uY3VzdG9tLWRheS5mb2N1c2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cbi5jdXN0b20tZGF5LnJhbmdlLCAuY3VzdG9tLWRheTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyLCAxMTcsIDIxNik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5jdXN0b20tZGF5LmZhZGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyLCAxMTcsIDIxNiwgMC41KTtcbn1cbi5jdXN0b20tZGF5LnRvZGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTIsIDE3MiwgNjcsIDEpO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5pY29uRGF0ZVBpY2tlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG59XG5cbi8qIHRhYmxlIHN0eWxlcyAqL1xuLmNhbGVuZGVyLWRyb3Bkb3duIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1sZWZ0OiAxJTsgIFxuICAgIHdpZHRoOiA5OCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDsgICAgXG4gIH1cbiAgLmNhbGVuZGVyLWRyb3Bkb3duIHRyOmZpcnN0LWNoaWxke1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMjIyO1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgfVxuICAuY2FsZW5kZXItZHJvcGRvd24gdGR7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gIC5jYWxlbmRlci1kcm9wZG93biBidXR0b24ge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTowO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogaW5oZXJpdDsgXG4gICAgY3Vyc29yOiBpbmhlcml0OyBcbiAgfVxuICAucmluZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXItY29sb3I6ICMyMjIgIWltcG9ydGFudDtcbiAgfVxuICAubWFya2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlci1jb2xvcjogIzIyMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1vbnRoLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICBcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNzUsIDI1MywgMC4zKTtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyAgICBcbiAgfVxuICAubW9udGgtbGFiZWwgbWQtaWNvbiB7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyBcbiAgfVxuXG4gIC5tYXJnaW41e1xuICAgIG1hcmdpbi1sZWZ0OiA1JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDUlOyAgXG4gIH1cbiAgXG4gIC5jaGFydFJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG4gIH0gXG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzAwcHgpe1xuICAgIC5jaGFydFJvdyB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG4gICAgfVxuICAgIC5tYXJnaW41e1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgfVxuICB9XG4iXX0= */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Mätvärden

\\n

Välj användare först!

\\n

I graferna visas det inrapporterade mätvärdena för den angivna perioden.

\\n
\\n
\\n

Från

\\n

Till

\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n \\n\\n

Ingen data tillgänglig för de angivna datumen!

\\n\\n
\\n
\\n

Vikt

\\n \\n
\\n
\\n

Temperatur

\\n \\n
\\n
\\n

Puls

\\n \\n
\\n
\\n

Syresättning

\\n \\n
\\n
\\n
\\n
\\n
\"","import { Component, OnInit, ViewChild, ElementRef, Renderer2, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport {\n NgbDatepicker,\n NgbInputDatepicker,\n NgbDateStruct,\n NgbCalendar,\n NgbDate,\n NgbDateAdapter,\n NgbDateParserFormatter,\n NgbDatepickerI18n\n} from '@ng-bootstrap/ng-bootstrap';\nimport Utils from '../utils';\ndeclare let d3: any;\n\nconst now = new Date();\nconst equals = (one: NgbDateStruct, two: NgbDateStruct) =>\n one && two && two.year === one.year && two.month === one.month && two.day === one.day;\n\nconst before = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day < two.day : one.month < two.month : one.year < two.year;\n\nconst after = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day > two.day : one.month > two.month : one.year > two.year;\n\nconst I18N_VALUES = {\n 'se': {\n weekdays: ['Må', 'Ti', 'On', 'To', 'Fr', 'Lö', 'Sö'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Juni', 'Juli', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n }\n // other languages you would support\n};\n\n// Define a service holding the language. You probably already have one if your app is i18ned. Or you could also\n// use the Angular LOCALE_ID value\n@Injectable()\nexport class I18n {\n language = 'se';\n}\n\n// Define custom service providing the months and weekdays translations\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\n@Component({\n selector: 'app-measurements',\n templateUrl: './measurements.component.html',\n styleUrls: ['./measurements.component.css']\n})\nexport class MeasurementsComponent implements OnInit {\n showWarning: boolean = false;\n today: Date;\n\n dataAvailable: boolean = false;\n tempData: any;\n weigthData: any;\n pulseData: any;\n saturationData: any;\n options: any;\n\n calendarContent: Calendar[];\n calenderWeeks1: CalenderWeeks[];\n calenderWeeks2: CalenderWeeks[];\n month: string;\n monthNumber: number;\n yearNumber: number;\n currentMonth: number;\n currentYear: number;\n\n startDate: string;\n endDate: string;\n startMonth: string;\n endMonth: string;\n\n defaultDaySpan: number = 14;\n prevMonth: NgbDate;\n hoveredDate: NgbDateStruct;\n fromDate: NgbDate;\n untilDate: NgbDate;\n model: any;\n\n newItem = {\n StartTime: null,\n EndTime: null\n };\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService\n , calendar2: NgbCalendar) {\n this.fromDate = calendar2.getPrev(calendar2.getToday(), 'd', this.defaultDaySpan);\n this.untilDate = calendar2.getToday();\n this.newItem.StartTime = this.fromDate;\n this.newItem.EndTime = this.untilDate;\n }\n\n ngOnInit() {\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n this.loadData();\n }\n\n isHovered = date =>\n this.fromDate && !this.untilDate && this.hoveredDate && after(date, this.fromDate) && before(date, this.hoveredDate)\n isInside = date => after(date, this.fromDate) && before(date, this.untilDate);\n isFrom = date => equals(date, this.fromDate);\n isTo = date => equals(date, this.untilDate);\n isToday(date: NgbDate) {\n var todayDate = new Date();\n if (date.day == todayDate.getDate()\n && date.month == (todayDate.getMonth() + 1)\n && date.year == todayDate.getFullYear()) {\n return true;\n }\n return false;\n }\n\n onDateSelectionActivityFrom(date: NgbDateStruct) {\n this.fromDate = Utils.NgbDateStructToNgbDate(date);\n this.loadData();\n }\n\n onDateSelectionActivityTo(date: NgbDateStruct) {\n this.untilDate = Utils.NgbDateStructToNgbDate(date);\n this.loadData();\n }\n\n private loadData() {\n if (this.showWarning) {\n return;\n }\n this.dataAvailable = false;\n this.dataservice.getParameterData(Utils.NgbDateToJSDate(this.fromDate), Utils.NgbDateToJSDate(this.untilDate)).subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let data = resp.json();\n data = data.sort(function (a, b) {\n return b.date - a.date;\n });\n let weight = new Array();\n let temp = new Array();\n let timezoneOffset = new Date().getTimezoneOffset();\n for (let entry of data) {\n let date = new Date(entry.date);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n if (entry.data.weight != 0) {\n weight.push({\n \"label\": xLabel,\n \"value\": entry.data.weight\n });\n }\n if (entry.data.temp != 0) {\n temp.push({\n \"label\": xLabel,\n \"value\": entry.data.temp\n });\n }\n }\n this.weigthData = [{\n key: 'vikt (kg)',\n values: weight\n }];\n this.tempData = [{\n key: 'temp (\\xB0C)',\n values: temp\n }];\n this.setupChartOptions();\n this.dataAvailable = true;\n }\n });\n\n let body = {\n from: Utils.NgbDateToJSDate(this.fromDate).getTime(),\n until: Utils.NgbDateToJSDate(this.untilDate).getTime(),\n variant: 'ALL'\n };\n \n this.dataservice.getExtremePoxValuesBetweenDates(body).subscribe( \n (resp) => {\n if (resp.status == 200) {\n let json = resp.json();\n let pulse = new Array();\n let saturation = new Array();\n let timezoneOffset = new Date().getTimezoneOffset();\n for (let entry of json) {\n let date = new Date(entry.measuredOn);\n let xLabel = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) + Date.UTC(1970, 0, 1, 0, timezoneOffset, 0, 0);\n if (entry.pulse != -1 && entry.pulse != 0) {\n pulse.push({\n \"label\": xLabel,\n \"value\": entry.pulse\n });\n this.dataAvailable = true;\n } \n if (entry.saturation != -1 && entry.saturation != 0) {\n saturation.push({\n \"label\": xLabel,\n \"value\": entry.saturation\n });\n this.dataAvailable = true;\n }\n }\n this.pulseData = [{\n key: 'puls (bpm)',\n values: pulse\n }];\n this.saturationData = [{\n key: 'syresättning (%)',\n values: saturation\n }];\n this.setupChartOptions();\n this.dataAvailable = true;\n }\n }\n );\n }\n\n private setupChartOptions() {\n this.options = {\n chart: {\n type: 'lineChart',\n x: function (d) { return d.label; },\n y: function (d) { return d.value; },\n useInteractiveGuideline: true,\n clipVoronoi: false,\n xScale: d3.time.scale(),\n xAxis: {\n tickFormat: function (d) {\n return d3.time.format('%y-%m-%d')(new Date(d));\n },\n rotateLabels: -45,\n showMinMax: false\n },\n yAxis:{\n tickFormat: function (d) {\n return d.toFixed(1);\n }\n }\n }\n }\n }\n}\n\ninterface Calendar {\n day: number;\n thisMonth: boolean;\n markedDay: boolean;\n today: boolean;\n}\n\ninterface CalenderWeeks {\n day1: Calendar;\n day2: Calendar;\n day3: Calendar;\n day4: Calendar;\n day5: Calendar;\n day6: Calendar;\n day7: Calendar;\n}","module.exports = \"\\n\\n.message-field {\\n width: 75%;\\n height: 100%;\\n border-right: 2px solid #222;\\n display: block;\\n}\\n.contact-field {\\n width:25%;\\n height: inherit;\\n}\\n.message-container-field{\\n /* Firefox */\\n /* WebKit */\\n /* Opera */\\n height: -o-calc(100% - 175px);\\n /* Standard */\\n height: calc(100% - 175px);\\n overflow-y:scroll; \\n width:100%;\\n}\\n.dark-green {\\n color: rgba(91, 226, 120, 0.8);\\n}\\n.message-title {\\n background-color: rgba(17, 175, 253, 0.3);\\n border-bottom: 2px solid #222;\\n height: 60px;\\n font-size: 30px;\\n line-height: 60px;\\n vertical-align: middle; \\n width:100%;\\n}\\n.online-contact-container{\\n background-color: rgba(91, 226, 120, 0.3);\\n border-bottom:1px solid gray; \\n height:50px; \\n vertical-align: middle; \\n line-height: 50px; \\n font-size: 15px;\\n}\\n.contact-container{\\n border-bottom:1px solid gray; \\n height:50px; \\n vertical-align: middle; \\n line-height: 50px; \\n font-size: 15px;\\n}\\n.contact-container.chosen {\\n background-color: rgba(41, 87, 236, 0.3);\\n}\\n.online-contact-container:hover, .contact-container:hover{\\n cursor: pointer;\\n background-color: rgba(48, 51, 51, 0.3);\\n}\\n.left-container {\\n max-width: 40%;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n margin-left:10px;\\n margin-bottom: 2px;\\n}\\n.right-container {\\n max-width: 40%;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n -ms-flex-line-pack: right;\\n align-content: right;\\n margin-left: auto;\\n margin-right:10px;\\n margin-bottom: 2px;\\n}\\n.my-message-container {\\n background-color: rgba(17, 175, 253, 0.3);\\n border: 1px solid #222;\\n border-radius: 30px;\\n -ms-flex-line-pack: right;\\n align-content: right;\\n margin-left: auto;\\n width:-webkit-fit-content;\\n width:-moz-fit-content;\\n width:fit-content;\\n}\\n.other-message-container {\\n background-color: rgba(105, 111, 114, 0.3);\\n border: 1px solid #222;\\n border-radius: 30px;\\n width:-webkit-fit-content;\\n width:-moz-fit-content;\\n width:fit-content;\\n}\\n.my-message-container p, .other-message-container p {\\n margin-left: 12px;\\n margin-right: 12px;\\n margin-top: 8px;\\n margin-bottom: 8px;\\n text-align: left;\\n}\\n.message-input-field {\\n border-top: 1px solid gray;\\n height: 64px;\\n background-color: white;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n width:100%;\\n}\\n.message-input-field textarea, .message-input-field textarea:focus {\\n border-radius: 10px;\\n border: 2px solid white;\\n width: 80%;\\n height: 56px;\\n resize: none;\\n outline: none !important;\\n}\\n.msg_button, .msg_button:focus, .commentArea button, .commentArea button:focus {\\n vertical-align: middle;\\n text-align: center;\\n font-size: 15px;\\n background-color: transparent;\\n border: none;\\n padding: 10px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n line-height: 24px;\\n -ms-flex-pack: center;\\n justify-content: center;\\n outline: none;\\n}\\n.msg_button:not([disabled]):hover, .commentArea button:hover {\\n cursor: pointer;\\n color: rgba(17, 175, 253, 0.9);\\n}\\n.msg_button mat-icon, .icon {\\n line-height: 24px !important;\\n vertical-align: middle !important;\\n margin-right: 5px; \\n}\\n.message-date-box {\\n font-size: 15px;\\n margin-left: 12px;\\n margin-top: 8px;\\n margin-bottom: 4px;\\n margin-right: 0px;\\n}\\n.contact-icon {\\n display: none;\\n}\\n.contact-icon:hover {\\n cursor: pointer;\\n color: rgba(17, 175, 253, 0.9);\\n}\\n@media only screen and (max-width: 1000px){\\n .message-field{\\n width:100%;\\n }\\n .message-title {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n }\\n .contact-field {\\n display: none;\\n }\\n .contact-icon {\\n width: 30px !important;\\n height: 30px !important;\\n font-size: 30px !important;\\n display: inherit !important;\\n line-height: 60px !important;\\n padding-right: 20px !important;\\n padding-left: 20px !important; \\n } \\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBO0lBQ0ksVUFBVTtJQUNWLFlBQVk7SUFDWiw0QkFBNEI7SUFDNUIsY0FBYztBQUNsQjtBQUNBO0lBQ0ksU0FBUztJQUNULGVBQWU7QUFDbkI7QUFDQTtJQUNJLFlBQVk7SUFFWixXQUFXO0lBRVgsVUFBVTtJQUNWLDZCQUE2QjtJQUM3QixhQUFhO0lBQ2IsMEJBQTBCO0lBQzFCLGlCQUFpQjtJQUNqQixVQUFVO0FBQ2Q7QUFFQTtJQUNJLDhCQUE4QjtBQUNsQztBQUVBO0lBQ0kseUNBQXlDO0lBQ3pDLDZCQUE2QjtJQUM3QixZQUFZO0lBQ1osZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsVUFBVTtBQUNkO0FBRUE7SUFDSSx5Q0FBeUM7SUFDekMsNEJBQTRCO0lBQzVCLFdBQVc7SUFDWCxzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGVBQWU7QUFDbkI7QUFDQTtJQUNJLDRCQUE0QjtJQUM1QixXQUFXO0lBQ1gsc0JBQXNCO0lBQ3RCLGlCQUFpQjtJQUNqQixlQUFlO0FBQ25CO0FBRUE7SUFDSSx3Q0FBd0M7QUFDNUM7QUFFQTtJQUNJLGVBQWU7SUFDZix1Q0FBdUM7QUFDM0M7QUFFQTtJQUNJLGNBQWM7SUFDZCwwQkFBa0I7SUFBbEIsdUJBQWtCO0lBQWxCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0FBQ3RCO0FBQ0E7SUFDSSxjQUFjO0lBQ2QsMEJBQWtCO0lBQWxCLHVCQUFrQjtJQUFsQixrQkFBa0I7SUFDbEIseUJBQW9CO1FBQXBCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtBQUN0QjtBQUNBO0lBQ0kseUNBQXlDO0lBQ3pDLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIseUJBQW9CO1FBQXBCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIseUJBQWlCO0lBQWpCLHNCQUFpQjtJQUFqQixpQkFBaUI7QUFDckI7QUFDQTtJQUNJLDBDQUEwQztJQUMxQyxzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLHlCQUFpQjtJQUFqQixzQkFBaUI7SUFBakIsaUJBQWlCO0FBQ3JCO0FBQ0E7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsWUFBWTtJQUNaLHVCQUF1QjtJQUN2QiwyQkFBb0I7SUFBcEIsb0JBQW9CO0lBQ3BCLHFCQUF1QjtRQUF2Qix1QkFBdUI7SUFDdkIsVUFBVTtBQUNkO0FBQ0E7SUFDSSxtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtJQUNaLHdCQUF3QjtBQUM1QjtBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsNkJBQTZCO0lBQzdCLFlBQVk7SUFDWixhQUFhO0lBQ2IsMkJBQW9CO0lBQXBCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIscUJBQXVCO1FBQXZCLHVCQUF1QjtJQUN2QixhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsOEJBQThCO0FBQ2xDO0FBQ0E7SUFDSSw0QkFBNEI7SUFDNUIsaUNBQWlDO0lBQ2pDLGlCQUFpQjtBQUNyQjtBQUNBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGlCQUFpQjtBQUNyQjtBQUVBO0lBQ0ksYUFBYTtBQUNqQjtBQUNBO0lBQ0ksZUFBZTtJQUNmLDhCQUE4QjtBQUNsQztBQUVBO0lBQ0k7UUFDSSxVQUFVO0lBQ2Q7SUFDQTtRQUNJLDJCQUFvQjtRQUFwQixvQkFBb0I7UUFDcEIsc0JBQThCO1lBQTlCLDhCQUE4QjtJQUNsQztJQUNBO1FBQ0ksYUFBYTtJQUNqQjtJQUNBO1FBQ0ksc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2QiwwQkFBMEI7UUFDMUIsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1Qiw4QkFBOEI7UUFDOUIsNkJBQTZCO0lBQ2pDO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lc3NhZ2UvbWVzc2FnZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbi5tZXNzYWdlLWZpZWxkIHtcbiAgICB3aWR0aDogNzUlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMjIyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNvbnRhY3QtZmllbGQge1xuICAgIHdpZHRoOjI1JTtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG59XG4ubWVzc2FnZS1jb250YWluZXItZmllbGR7XG4gICAgLyogRmlyZWZveCAqL1xuICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxNzVweCk7XG4gICAgLyogV2ViS2l0ICovXG4gICAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDE3NXB4KTtcbiAgICAvKiBPcGVyYSAqL1xuICAgIGhlaWdodDogLW8tY2FsYygxMDAlIC0gMTc1cHgpO1xuICAgIC8qIFN0YW5kYXJkICovXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNzVweCk7XG4gICAgb3ZlcmZsb3cteTpzY3JvbGw7IFxuICAgIHdpZHRoOjEwMCU7XG59XG5cbi5kYXJrLWdyZWVuIHtcbiAgICBjb2xvcjogcmdiYSg5MSwgMjI2LCAxMjAsIDAuOCk7XG59XG5cbi5tZXNzYWdlLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNzUsIDI1MywgMC4zKTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzIyMjtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7ICAgIFxuICAgIHdpZHRoOjEwMCU7XG59XG5cbi5vbmxpbmUtY29udGFjdC1jb250YWluZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MSwgMjI2LCAxMjAsIDAuMyk7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheTsgXG4gICAgaGVpZ2h0OjUwcHg7IFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IFxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyBcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG4uY29udGFjdC1jb250YWluZXJ7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheTsgXG4gICAgaGVpZ2h0OjUwcHg7IFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IFxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyBcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5jb250YWN0LWNvbnRhaW5lci5jaG9zZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDEsIDg3LCAyMzYsIDAuMyk7XG59XG5cbi5vbmxpbmUtY29udGFjdC1jb250YWluZXI6aG92ZXIsIC5jb250YWN0LWNvbnRhaW5lcjpob3ZlcntcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0OCwgNTEsIDUxLCAwLjMpO1xufVxuXG4ubGVmdC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNDAlO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDoxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5yaWdodC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNDAlO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6MTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4ubXktbWVzc2FnZS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB3aWR0aDpmaXQtY29udGVudDtcbn1cbi5vdGhlci1tZXNzYWdlLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDUsIDExMSwgMTE0LCAwLjMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICB3aWR0aDpmaXQtY29udGVudDtcbn1cbi5teS1tZXNzYWdlLWNvbnRhaW5lciBwLCAub3RoZXItbWVzc2FnZS1jb250YWluZXIgcCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1lc3NhZ2UtaW5wdXQtZmllbGQge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBncmF5O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDoxMDAlO1xufVxuLm1lc3NhZ2UtaW5wdXQtZmllbGQgdGV4dGFyZWEsIC5tZXNzYWdlLWlucHV0LWZpZWxkIHRleHRhcmVhOmZvY3VzIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgIHdpZHRoOiA4MCU7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tc2dfYnV0dG9uLCAubXNnX2J1dHRvbjpmb2N1cywgLmNvbW1lbnRBcmVhIGJ1dHRvbiwgLmNvbW1lbnRBcmVhIGJ1dHRvbjpmb2N1cyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXNnX2J1dHRvbjpub3QoW2Rpc2FibGVkXSk6aG92ZXIsIC5jb21tZW50QXJlYSBidXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuOSk7XG59XG4ubXNnX2J1dHRvbiBtYXQtaWNvbiwgLmljb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogNXB4OyBcbn1cbi5tZXNzYWdlLWRhdGUtYm94IHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cblxuLmNvbnRhY3QtaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5jb250YWN0LWljb246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuOSk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KXtcbiAgICAubWVzc2FnZS1maWVsZHtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgLm1lc3NhZ2UtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgICAuY29udGFjdC1maWVsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5jb250YWN0LWljb24ge1xuICAgICAgICB3aWR0aDogMzBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsgXG4gICAgfSAgICBcbn0iXX0= */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n person\\n Meddelanden\\n person\\n
\\n
\\n
\\n account_circle\\n \\n {{currentContact.displayName}} \\n fiber_manual_record\\n
\\n
\\n
\\n \\n
\\n

{{msg.date}}

\\n
\\n

{{msg.text}}

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n Kontakter\\n
\\n
\\n \\n
\\n
\\n
\\n account_circle\\n \\n {{con.displayName}} fiber_manual_record\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n \\n \\n \\n\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.css']\n})\nexport class MessageComponent implements OnInit {\n name: string = '';\n messages: Message[];\n contacts: Contact[];\n currentContact: Contact;\n messageText: string;\n loadMoreMsg: boolean = true;\n plannedQuest: boolean = false;\n observe: any;\n\n @ViewChild('myImage', { static: false }) myImage: any;\n showImg: boolean = false;\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService) { }\n\n ngOnInit() {\n this.setupContactList();\n this.repeatedCheckIfNewMessages();\n }\n\n private setupContactList() {\n this.mhs.getNewMessages().subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let newMessages = resp.json();\n this.mhs.getAllContactsFromChatService().subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let allContacts = resp.json();\n this.contacts = new Array();\n for (let entry of allContacts) {\n this.contacts.push({\n id: entry.contactId,\n instance: entry.instance,\n name: entry.name,\n newMessage: false,\n displayName: entry.name + \" (\" + entry.instance + \")\",\n isPatient: entry.isPatient,\n isActive: entry.isActive,\n hasPicture: entry.picture != null,\n picture: 'data:image/png;base64,' + entry.picture\n });\n }\n for (let msg of newMessages) {\n for (let i = 0; i < this.contacts.length; i++) {\n if (this.contacts[i].id == msg.from) {\n this.contacts[i].newMessage = true;\n }\n }\n }\n\n this.contacts.sort(function (a, b) {\n if (a.displayName < b.displayName) { return -1; }\n if (a.displayName > b.displayName) { return 1; }\n return 0;\n })\n\n let c = this.mhs.getCurrentContact();\n if (c) {\n for (let contact of this.contacts) {\n if (c.displayName == contact.displayName) {\n this.displayMessageFrom(contact);\n }\n }\n this.mhs.setCurrentContact(null);\n }\n }\n });\n }\n });\n }\n\n private repeatedCheckIfNewMessages() {\n this.observe = this.mhs.getNewMessagesPeriodically(5000).subscribe(\n (resp) => {\n let newMessages = resp.json();\n for (let msg of newMessages) {\n for (let i = 0; i < this.contacts.length; i++) {\n if (this.contacts[i].id == msg.from) {\n this.contacts[i].newMessage = true;\n if (this.currentContact.id == this.contacts[i].id) {\n this.displayMessageFrom(this.contacts[i]);\n }\n }\n }\n }\n this.contacts.sort(function (a, b) {\n if (a.displayName < b.displayName) { return -1; }\n if (a.displayName > b.displayName) { return 1; }\n return 0;\n })\n });\n }\n\n private timeString(date: number) {\n let time = new Date(date);\n let hour = time.getHours().toString().length == 1 ? '0' + time.getHours() : time.getHours();\n let minute = time.getMinutes().toString().length == 1 ? '0' + time.getMinutes() : time.getMinutes();\n return \"(\" + time.toLocaleDateString() + \" \" + hour + \":\" + minute + \")\";\n }\n\n onScroll(event: any) {\n if (event.target.scrollTop == 0 && this.loadMoreMsg) {\n let request = {\n name: this.currentContact.name,\n instance: this.currentContact.instance,\n timestamp: this.messages[0].timestamp\n }\n this.mhs.getMessagesFromUser(request).subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n if (!resp._body.includes(\"message\")) {\n this.loadMoreMsg = false;\n return false;\n }\n let data = resp.json();\n for (let entry of data) {\n this.messages.push({\n text: entry.message,\n timestamp: entry.timestamp,\n fromMe: entry.from != this.currentContact.id,\n date: this.timeString(entry.timestamp)\n });\n }\n this.messages = this.messages.sort(function (x, y) {\n return x.timestamp - y.timestamp;\n });\n }\n });\n }\n return false;\n }\n\n displayMessageFrom(contact: Contact) {\n this.currentContact = contact;\n this.name = contact.displayName;\n this.loadMoreMsg = true;\n let request = {\n name: contact.name,\n instance: contact.instance,\n }\n this.mhs.getNewestMessagesFromUser(request).subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let data = resp.json();\n this.messages = new Array();\n for (let entry of data) {\n this.messages.push({\n text: entry.message,\n timestamp: entry.timestamp,\n fromMe: entry.fromIsPatient ? false : true,\n date: this.timeString(entry.timestamp)\n });\n }\n this.messages = this.messages.sort(function (x, y) {\n return x.timestamp - y.timestamp;\n });\n\n if (contact.newMessage) {\n contact.newMessage = false;\n let request2 = {\n name: contact.name,\n instance: contact.instance,\n }\n this.mhs.changeUnreadStatus(request2).subscribe((resp) => {\n this.mhs.getNewMessages().subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let newMessages = resp.json();\n }\n });\n });\n }\n }\n });\n return false;\n }\n\n sendMessageToFriend() {\n if (this.currentContact && this.messageText != null && this.messageText != 'undefined') {\n let request = {\n name: this.currentContact.name,\n instance: this.currentContact.instance,\n message: this.messageText,\n timestamp: new Date().getTime()\n };\n this.mhs.sendMessagesToUser(request).subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n this.messages.push({\n fromMe: true,\n text: this.messageText,\n timestamp: request.timestamp,\n date: this.timeString(request.timestamp)\n });\n this.messageText = '';\n }\n });\n }\n }\n\n textChanged(event: any) {\n this.messageText = event.target.value;\n return false;\n }\n\n getTwoWeeksBack(fromDate: Date): number {\n if (fromDate.getDate() > 14) {\n return new Date(fromDate.getFullYear(), fromDate.getMonth(), fromDate.getDate() - 14).getTime();\n }\n let lastMonth = fromDate.getMonth() > 0 ? fromDate.getMonth() - 1 : 11;\n let year = lastMonth == 11 ? fromDate.getFullYear() - 1 : fromDate.getFullYear();\n let daysInPreviousMonth = this.dataservice.daysInMonth(lastMonth);\n return new Date(year, lastMonth, daysInPreviousMonth - (14 - fromDate.getDate())).getTime();\n }\n}\n\ninterface Message {\n text: string;\n timestamp: number;\n date: string;\n fromMe: boolean;\n}\n\ninterface Contact {\n id: number;\n instance: string;\n name: string;\n displayName: string;\n newMessage: boolean;\n isPatient: boolean;\n isActive: boolean;\n hasPicture: boolean;\n picture: string;\n}","module.exports = \"\\n\\n.activity-table {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n .activity-table tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n .activity-table tr:not(:first-child):hover{\\n cursor: pointer;\\n background-color: rgba(17, 174, 253, 0.596) !important;\\n }\\n .activity-table td, .activity-table th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n .activity-table select, .activity-table select:focus {\\n padding: 6px;\\n border-radius: 8px;\\n outline: none;\\n }\\n .background-blue {\\n background-color: rgba(149, 195, 255, 0.3) !important;\\n }\\n .info-table {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n .info-table tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n .info-table td, .info-table th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n .info-table select, .info-table select:focus {\\n padding: 6px;\\n border-radius: 8px;\\n outline: none;\\n }\\n .myToolBar{\\n display: -ms-flexbox;\\n display: flex; \\n -ms-flex-pack: center; \\n justify-content: center;\\n text-align: center; \\n vertical-align: middle;\\n }\\n .transperent-button, .transperent-button:focus{\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n font-size: 20px; \\n -ms-flex-line-pack: center; \\n align-content: center;\\n }\\n .black{\\n color: black;\\n }\\n .gray, .gray:focus {\\n color: gray;\\n }\\n .size40{\\n font-size: 40px;\\n height: 40px !important;\\n width: 40px !important; \\n }\\n .explaination {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center; \\n line-height: 30px;\\n vertical-align: middle;\\n }\\n .explaination span {\\n font-size: 15px;\\n margin-left: 10px;\\n margin-right: 20px;\\n }\\n .discrete-button, .discrete-button:focus{\\n padding: 12px;\\n border: 1px solid black;\\n border-radius: 8px;\\n background-color: transparent; \\n font-size: 15px;\\n background-color: white;\\n margin: 10px;\\n outline: none; \\n}\\n .discrete-button:hover {\\n cursor: pointer;\\n background-color: rgba(99, 118, 201, 0.53);\\n}\\n .number-button{\\n padding-top: 8px;\\n padding-bottom: 8px;\\n padding-right: 13px;\\n padding-left: 13px;\\n border: none;\\n font-size: 15px;\\n background-color: transparent;\\n outline: none; \\n margin-top: auto;\\n margin-bottom: auto;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content; \\n}\\n .number-button-circle{\\n padding-top: 8px;\\n padding-bottom: 8px;\\n padding-right: 13px;\\n padding-left: 13px;\\n border: 1px solid #00d0ff;\\n border-radius: 30px;\\n font-size: 15px;\\n background-color: transparent;\\n color: deeppink;\\n outline: none; \\n margin-top: auto;\\n margin-bottom: auto;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content; \\n}\\n .question-box {\\n width: 100%;\\n display: -ms-flexbox;\\n display: flex; \\n padding-bottom: 5px;\\n padding-top: 5px;\\n}\\n .question-box p {\\n -ms-flex-preferred-size: 0;\\n flex-basis: 0;\\n -ms-flex: 1 1 0px;\\n flex: 1 1 0;\\n margin-top: auto;\\n margin-bottom: auto;\\n text-align: left;\\n}\\n .marked-answer {\\n color: #e80094;\\n text-align: left;\\n margin-left: 5%;\\n margin-bottom: 20px;\\n}\\n .unmarked-answer {\\n text-align: left;\\n margin-left: 5%;\\n margin-bottom: 20px;\\n}\\n .specialText {\\n display:inherit; \\n margin: 15px;\\n text-align: center;\\n font-size: 15px;\\n}\\n .my-input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n width: 200px;\\n}\\n .my-input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n .description-icon {\\n font-size: 30px !important;\\n height: 30px !important;\\n width: 30px !important;\\n vertical-align: middle;\\n}\\n .selection select, .selection select:focus {\\n border: 1px solid #222;\\n border-radius: 4px;\\n margin: 12px;\\n padding: 10px;\\n outline: 0px;\\n}\\n .set-text {\\n white-space: pre-line;\\n text-align: left; \\n}\\n .custom-day {\\n text-align: center;\\n padding: 0.185rem 0.25rem;\\n display: inline-block;\\n height: 2rem;\\n width: 2rem;\\n}\\n .custom-day.focused {\\n background-color: #e6e6e6;\\n}\\n .custom-day.range, .custom-day:hover {\\n background-color: rgb(2, 117, 216);\\n color: white;\\n}\\n .custom-day.faded {\\n background-color: rgba(2, 117, 216, 0.5);\\n}\\n .custom-day.today {\\n background-color: rgba(252, 172, 67, 1);\\n color: white;\\n}\\n .custom-day.weekday-chosen {\\n background-color: rgba(2, 117, 216, 0.75);\\n}\\n .custom-day.today-weekday-chosen {\\n background-color: rgba(252, 172, 67, 0.5);\\n}\\n table {\\n width: 100%;\\n}\\n data-selected {\\n background-color: linen;\\n}\\n th.mat-header-cell {\\n text-align: center;\\n font-size: large;\\n font-weight: bold;\\n background-color: aliceblue;\\n}\\n tr.example-detail-row {\\n height: 0;\\n}\\n tr.example-element-row:not(.example-expanded-row):hover {\\n background: #f5f5f5;\\n}\\n tr.example-element-row:not(.example-expanded-row):active {\\n background: #efefef;\\n}\\n tr.example-expanded-row {\\n background-color: cornsilk;\\n}\\n .example-element-row td {\\n border-bottom-width: 0;\\n}\\n .example-element-detail {\\n overflow: hidden;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n .example-element-diagram {\\n min-width: 80px;\\n border: 2px solid black;\\n padding: 8px;\\n font-weight: lighter;\\n margin: 8px 0;\\n height: 104px;\\n}\\n .example-element-symbol {\\n font-weight: bold;\\n font-size: 40px;\\n line-height: normal;\\n}\\n .example-element-description {\\n padding: 16px;\\n width: 100%;\\n background-color: cornsilk;\\n}\\n .example-element-description-attribution {\\n opacity: 0.5;\\n}\\n .value-edited {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9vdmVydmlldy1hY3Rpdml0eS9vdmVydmlldy1hY3Rpdml0eS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLGVBQWU7SUFDZixVQUFVO0lBQ1Ysa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixzQkFBOEI7UUFBOUIsOEJBQThCO0lBQzlCLGNBQWM7SUFDZCxtQkFBbUI7RUFDckI7RUFDQTtJQUNFLDZCQUE2QjtJQUM3QixrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLGVBQWU7SUFDZixzREFBc0Q7RUFDeEQ7RUFDQTtJQUNFLDRCQUE0QjtJQUM1QixhQUFhO0VBQ2Y7RUFDQTtJQUNFLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsYUFBYTtFQUNmO0VBQ0E7SUFDRSxxREFBcUQ7RUFDdkQ7RUFFQTtJQUNFLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsZUFBZTtJQUNmLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHNCQUE4QjtRQUE5Qiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsNkJBQTZCO0lBQzdCLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsNEJBQTRCO0lBQzVCLGFBQWE7RUFDZjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixhQUFhO0VBQ2Y7RUFFQTtJQUNFLG9CQUFhO0lBQWIsYUFBYTtJQUNiLHFCQUF1QjtRQUF2Qix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLHNCQUFzQjtFQUN4QjtFQUVBO0lBQ0UseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixTQUFTO0lBQ1QsZUFBZTtJQUNmLDBCQUFxQjtRQUFyQixxQkFBcUI7RUFDdkI7RUFFQTtJQUNFLFlBQVk7RUFDZDtFQUNBO0lBQ0UsV0FBVztFQUNiO0VBQ0E7SUFDRSxlQUFlO0lBQ2YsdUJBQXVCO0lBQ3ZCLHNCQUFz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RUFDRSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLG1CQUFtQjtBQUNyQjtFQUVBO0VBQ0UsYUFBYTtFQUNiLFdBQVc7RUFDWCwwQkFBMEI7QUFDNUI7RUFFQTtFQUNFLFlBQVk7QUFDZDtFQUVBO0VBQ0UsVUFBVTtBQUNaIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9vdmVydmlldy1hY3Rpdml0eS9vdmVydmlldy1hY3Rpdml0eS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbi5hY3Rpdml0eS10YWJsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tbGVmdDogMSU7ICBcbiAgICB3aWR0aDogOTglO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAycHg7XG4gIH1cbiAgLmFjdGl2aXR5LXRhYmxlIHRyOmZpcnN0LWNoaWxke1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBncmF5O1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgfVxuICAuYWN0aXZpdHktdGFibGUgdHI6bm90KDpmaXJzdC1jaGlsZCk6aG92ZXJ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3NCwgMjUzLCAwLjU5NikgIWltcG9ydGFudDtcbiAgfVxuICAuYWN0aXZpdHktdGFibGUgdGQsIC5hY3Rpdml0eS10YWJsZSB0aCB7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG4gIC5hY3Rpdml0eS10YWJsZSBzZWxlY3QsIC5hY3Rpdml0eS10YWJsZSBzZWxlY3Q6Zm9jdXMge1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAuYmFja2dyb3VuZC1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE0OSwgMTk1LCAyNTUsIDAuMykgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbmZvLXRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1sZWZ0OiAxJTsgIFxuICAgIHdpZHRoOiA5OCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDtcbiAgfVxuICAuaW5mby10YWJsZSB0cjpmaXJzdC1jaGlsZHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgZ3JheTtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gIH1cbiAgLmluZm8tdGFibGUgdGQsIC5pbmZvLXRhYmxlIHRoIHtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cbiAgLmluZm8tdGFibGUgc2VsZWN0LCAuaW5mby10YWJsZSBzZWxlY3Q6Zm9jdXMge1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5teVRvb2xCYXJ7XG4gICAgZGlzcGxheTogZmxleDsgXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyAgXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC50cmFuc3BlcmVudC1idXR0b24sIC50cmFuc3BlcmVudC1idXR0b246Zm9jdXN7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lOjA7XG4gICAgZm9udC1zaXplOiAyMHB4OyAgXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmJsYWNre1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxuICAuZ3JheSwgLmdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiBncmF5O1xuICB9XG4gIC5zaXplNDB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7ICBcbiAgfVxuXG4gIC5leHBsYWluYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgIFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuZXhwbGFpbmF0aW9uIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cbiAgXG4uZGlzY3JldGUtYnV0dG9uLCAuZGlzY3JldGUtYnV0dG9uOmZvY3Vze1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgXG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMTBweDtcbiAgb3V0bGluZTogbm9uZTsgIFxufVxuLmRpc2NyZXRlLWJ1dHRvbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5OSwgMTE4LCAyMDEsIDAuNTMpO1xufVxuXG4ubnVtYmVyLWJ1dHRvbntcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgcGFkZGluZy1yaWdodDogMTNweDtcbiAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7ICBcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgaGVpZ2h0OiBmaXQtY29udGVudDsgXG59XG5cbi5udW1iZXItYnV0dG9uLWNpcmNsZXtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgcGFkZGluZy1yaWdodDogMTNweDtcbiAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDBkMGZmO1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogZGVlcHBpbms7XG4gIG91dGxpbmU6IG5vbmU7ICBcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgaGVpZ2h0OiBmaXQtY29udGVudDsgXG59XG5cbi5xdWVzdGlvbi1ib3gge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDsgXG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG4ucXVlc3Rpb24tYm94IHAge1xuICBmbGV4LWJhc2lzOiAwO1xuICBmbGV4OiAxIDEgMDtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1hcmtlZC1hbnN3ZXIge1xuICBjb2xvcjogI2U4MDA5NDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDUlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4udW5tYXJrZWQtYW5zd2VyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDUlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uc3BlY2lhbFRleHQge1xuICBkaXNwbGF5OmluaGVyaXQ7IFxuICBtYXJnaW46IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4ubXktaW5wdXQgeyAgICBcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLC40Mik7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDIwMHB4O1xufVxuLm15LWlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM2OTE2QjY7XG59XG5cbi5kZXNjcmlwdGlvbi1pY29uIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMzBweCAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5cbi5zZWxlY3Rpb24gc2VsZWN0LCAuc2VsZWN0aW9uIHNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luOiAxMnB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBvdXRsaW5lOiAwcHg7XG59XG5cbi5zZXQtdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgIFxufVxuXG4uY3VzdG9tLWRheSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMC4xODVyZW0gMC4yNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDJyZW07XG4gIHdpZHRoOiAycmVtO1xufVxuLmN1c3RvbS1kYXkuZm9jdXNlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG59XG4uY3VzdG9tLWRheS5yYW5nZSwgLmN1c3RvbS1kYXk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMiwgMTE3LCAyMTYpO1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3VzdG9tLWRheS5mYWRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMiwgMTE3LCAyMTYsIDAuNSk7XG59XG4uY3VzdG9tLWRheS50b2RheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUyLCAxNzIsIDY3LCAxKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmN1c3RvbS1kYXkud2Vla2RheS1jaG9zZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIsIDExNywgMjE2LCAwLjc1KTtcbn1cbi5jdXN0b20tZGF5LnRvZGF5LXdlZWtkYXktY2hvc2VuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTIsIDE3MiwgNjcsIDAuNSk7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmRhdGEtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaW5lbjtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IGxhcmdlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYWxpY2VibHVlO1xufVxuXG50ci5leGFtcGxlLWRldGFpbC1yb3cge1xuICBoZWlnaHQ6IDA7XG59XG5cbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xufVxuXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG59XG5cbnRyLmV4YW1wbGUtZXhwYW5kZWQtcm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29ybnNpbGs7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtcm93IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRpYWdyYW0ge1xuICBtaW4td2lkdGg6IDgwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICBtYXJnaW46IDhweCAwO1xuICBoZWlnaHQ6IDEwNHB4O1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LXN5bWJvbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAxNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29ybnNpbGs7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24tYXR0cmlidXRpb24ge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi52YWx1ZS1lZGl0ZWQge1xuICBjb2xvcjogcmVkO1xufSJdfQ== */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Översikt

\\n

Välj användare först!

\\n

Här presenteras aktiviter med alla status varianter för varje månad. Klicka på en aktivitet för att få mer\\n information\\n om den specifika aktiviteten.

\\n
\\n date_range\\n Planerad\\n date_range\\n Snart missad\\n remove_circle\\n Ej utförd\\n check_circle\\n Delvis utförd\\n check_circle\\n Helt utförd\\n face\\n Vald av användare\\n feedback\\n Kommenterad\\n
\\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n

Från

\\n

Till

\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
{{column.title}} {{element[column.attribute]}} \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
AktivitetNivåSetRepetioner / tidPositionStatus
\\n \\n   {{act.name}}\\n {{act.level}}{{act.sets}}{{act.repetitions}}{{act.position}}\\n date_range\\n face\\n \\n \\n feedback\\n \\n remove_circle\\n face\\n \\n \\n feedback\\n \\n check_circle\\n face\\n \\n \\n feedback\\n \\n check_circle\\n face\\n \\n \\n feedback\\n \\n date_range\\n face\\n \\n \\n feedback\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { GameInformationService } from '../../services/game-information.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport {\n NgbDatepicker,\n NgbInputDatepicker,\n NgbDateStruct,\n NgbCalendar,\n NgbDate,\n NgbDateAdapter,\n NgbDateParserFormatter,\n NgbDatepickerI18n\n} from '@ng-bootstrap/ng-bootstrap';\nimport {animate, state, style, transition, trigger} from '@angular/animations';\nimport Utils from '../utils';\n\nconst now = new Date();\nconst equals = (one: NgbDateStruct, two: NgbDateStruct) =>\n one && two && two.year === one.year && two.month === one.month && two.day === one.day;\n\nconst before = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day < two.day : one.month < two.month : one.year < two.year;\n\nconst after = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day > two.day : one.month > two.month : one.year > two.year;\n\n@Component({\n selector: 'app-overview-activity',\n templateUrl: './overview-activity.component.html',\n styleUrls: ['./overview-activity.component.css'],\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0', display: 'none'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class OverviewActivityComponent implements OnInit {\n newMessage: boolean = false;\n showWarning: boolean = false;\n ascendingDate: boolean = true;\n ascendingName: boolean = false;\n\n allActivities: any[];\n activities: any[];\n mObs;\n p: number = 1;\n\n fromDate: NgbDate;\n untilDate: NgbDate;\n defaultDaySpanBefore: number = 7;\n defaultDaySpanAfter: number = 7;\n prevMonth: NgbDate;\n hoveredDate: NgbDateStruct;\n model: any;\n @ViewChild(\"d\", { static: false }) input: NgbInputDatepicker;\n\n newItem = {\n StartTime: null,\n EndTime: null\n };\n\n currentState: string = \"ALLA AKTIVITETER\"\n stateTypes: string[] = [\"ALLA AKTIVITETER\", \"UTFÖRDA AKTIVITETER\", \"PLANERADE AKTIVITETER\", \"BEDÖMNINGSTESTER\"];\n\n dataSource: ExpandedElement[];\n columnsToDisplay = [ \n {title: \"Datum\",\n attribute: 'date'}, \n {title: \"Antal övningar\",\n attribute: 'numberOfExercises'}, \n ];\n expandedElement: ExpandedElement;\n selectedRow: any = {date : \"\"};\n \n constructor(private dataservice: DataserviceService, private router: Router, private gi: GameInformationService,\n private mhs: MessageHandlerService, private dialog: MatDialog, public snackBar: MatSnackBar, calendar: NgbCalendar) { \n this.fromDate = calendar.getPrev(calendar.getToday(), 'd', this.defaultDaySpanBefore);\n this.untilDate = calendar.getNext(calendar.getToday(), 'd', this.defaultDaySpanAfter);\n\n this.newItem.StartTime = this.fromDate;\n this.newItem.EndTime = this.untilDate;\n }\n\n ngOnInit() {\n this.showWarning = this.dataservice.patient == \"Ingen vald\"; \n if (!this.showWarning) {\n let now = new Date();\n this.setupCompleteTable();\n }\n }\n\n rowSelected(element: any) {\n this.selectedRow = element;\n }\n\n getColumnsToDisplayAttributes() {\n var coulmnAttributes:String[] = new Array() \n this.columnsToDisplay.forEach(element => {\n coulmnAttributes.push(element.attribute)\n });\n return coulmnAttributes;\n }\n\n isHovered = date =>\n this.fromDate && !this.untilDate && this.hoveredDate && after(date, this.fromDate) && before(date, this.hoveredDate)\n isInside = date => after(date, this.fromDate) && before(date, this.untilDate);\n isFrom = date => equals(date, this.fromDate);\n isTo = date => equals(date, this.untilDate);\n\n NgbDateToNgbDateStruct(ngbDate: NgbDate) {\n const date: NgbDateStruct = { year: ngbDate.year, month: ngbDate.month, day: ngbDate.day };\n return date;\n }\n\n NgbDateStructToNgbDate(ngbDateStruct: NgbDateStruct) {\n return new NgbDate(ngbDateStruct.year, ngbDateStruct.month, ngbDateStruct.day);\n }\n\n onDateSelectionActivityFrom(date: NgbDateStruct) {\n this.fromDate = this.NgbDateStructToNgbDate(date);\n this.setupCompleteTable();\n }\n\n onDateSelectionActivityTo(date: NgbDateStruct) {\n this.untilDate = this.NgbDateStructToNgbDate(date);\n this.setupCompleteTable();\n }\n\n NgbDateToJSDate(ngbDate: NgbDate) {\n let date = new Date();\n date.setDate(ngbDate.day);\n date.setMonth(ngbDate.month - 1);\n date.setFullYear(ngbDate.year);\n return date;\n }\n\n JSDateToNgbDate(date: Date) {\n if (date == null) return null;\n let ngbDate = new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\n return ngbDate;\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.fromDate) || date.equals(this.untilDate) || this.isInside(date) || this.isHovered(date);\n }\n\n isToday(date: NgbDate) {\n var todayDate = new Date();\n if (date.day == todayDate.getDate()\n && date.month == (todayDate.getMonth() + 1)\n && date.year == todayDate.getFullYear()) {\n return true;\n }\n return false;\n }\n\n getJSFromDate() {\n return new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day, 0, 0, 0, 0);\n }\n\n getJSUntilDate() {\n return new Date(this.untilDate.year, this.untilDate.month - 1, this.untilDate.day, 23, 59, 59, 99);\n }\n\n sortTableDates() {\n this.ascendingDate = !this.ascendingDate;\n if (this.ascendingDate) {\n this.activities.sort(function (a, b) {\n return a.scheduledFor - b.scheduledFor;\n });\n }\n else {\n this.activities.sort(function (a, b) {\n return b.scheduledFor - a.scheduledFor;\n });\n }\n }\n\n sortTableNames() {\n this.ascendingName = !this.ascendingName;\n if (this.ascendingName) {\n this.activities.sort(function (a, b) {\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n }\n else {\n this.activities.sort(function (a, b) {\n if (a.name > b.name) return -1;\n if (a.name < b.name) return 1;\n return 0;\n });\n }\n }\n\n sortTablePositions() {\n this.ascendingName = !this.ascendingName;\n if (this.ascendingName) {\n this.activities.sort(function (a, b) {\n if (a.position < b.position) return -1;\n if (a.position > b.position) return 1;\n return 0;\n });\n }\n else {\n this.activities.sort(function (a, b) {\n if (a.position > b.position) return -1;\n if (a.position < b.position) return 1;\n return 0;\n });\n }\n }\n\n filterActivityTypes(variant: number){\n var tmp = new Array();\n switch(variant){\n case 0:\n tmp = this.allActivities;\n break;\n case 1:\n for(let entry of this.allActivities){\n if (entry.completed > 0){\n tmp.push(entry);\n }\n }\n break;\n case 2:\n for(let entry of this.allActivities){\n if (entry.completed == 0 && !entry.dateHasPassed){\n tmp.push(entry);\n }\n }\n break;\n case 3:\n for(let entry of this.allActivities){\n if (entry.variant == 'ASSESSMENT'){\n tmp.push(entry);\n }\n }\n break;\n }\n this.activities = tmp;\n this.dataSource = this.getActivitiesAsExpandableElements();\n }\n\n setupCompleteTable() {\n let body = {\n from: this.getJSFromDate().getTime(),\n until: this.getJSUntilDate().getTime(),\n variant: \"ALL\"\n };\n this.dataservice.getAllActivitiesBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.activities = new Array();\n let now = new Date();\n let startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n let startOfYesterDay = new Date(now.getFullYear(), now.getMonth(), now.getDate()-Utils.GetNmbrOfDaysExerciseStillDoable(), 0, 0, 0);\n let data = resp.json();\n if (this.ascendingDate) {\n data.sort(function (a, b) {\n return a.scheduledFor - b.scheduledFor;\n });\n }\n else {\n data.sort(function (a, b) {\n return b.scheduledFor - a.scheduledFor;\n });\n }\n let prevDay : Date;\n let isDateColored : boolean = false;\n for (let act of data) {\n let tmp = new Date(act.scheduledFor);\n if (prevDay != null) {\n if (this.isDateDifferent(prevDay, tmp)) {\n isDateColored = !isDateColored;\n }\n }\n prevDay = tmp;\n let day = tmp.getFullYear() + \"-\" + (tmp.getMonth() + 1) + \"-\" + tmp.getDate();\n let hasComment = (act.comment != null && act.comment != 'undefined' && act.comment != '') ? true : false;\n\n let partiallyDone = act.result.length>0 && act.result.length {\n if(element.totalSecondsSpentPlaying < (act.settings.repetitions * 60) - act.settings.repetitions) { // -repetitions because it is somtimes off with a few sec but should still be treated as fin.\n partiallyDone = true;\n }\n });\n }\n\n this.activities.push({\n date: day,\n scheduledFor: act.scheduledFor,\n name: this.gi.gameName(act.type),\n dbName: act.type,\n level: act.settings.level == 0 ? \"--\" : act.settings.level,\n sets: act.settings.sets,\n repetitions: act.settings.repetitions == 0 ? \"--\" : act.settings.repetitions,\n position: this.gi.positionType(act.settings.positionType),\n variant: act.variant,\n completed: act.result.length,\n results: act.result,\n dateHasSoonPassed: act.scheduledFor <= startOfDay && !(act.scheduledFor <= startOfYesterDay),\n dateHasPassed: act.scheduledFor <= startOfYesterDay,\n id: act.id,\n comment: act.comment,\n settings: act.settings,\n hasComment: hasComment,\n selfMade: act.plannedBy == \"NONE\",\n isDateColored: true,\n partiallyFinished: partiallyDone,\n levelEdited: false,\n setsEdited: false,\n repetitionsEdited: false,\n picture: this.gi.getPictureForGameName(this.gi.gameName(act.type))\n });\n\n this.allActivities = this.activities;\n this.filterActivityTypes(this.stateTypes.indexOf(this.currentState));\n }\n this.dataSource = this.getActivitiesAsExpandableElements();\n\n this.dataservice.getAllActivitiesThatInitiatedEditBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n\n let data = resp.json();\n for (let act of this.allActivities) {\n for(let editEvent of data) {\n if (editEvent.activityId == act.id) {\n act.levelEdited = editEvent.levelBefore == editEvent.levelAfter ? false : true;\n act.setsEdited = editEvent.setsBefore == editEvent.setsAfter ? false : true;\n act.repetitionsEdited = editEvent.repetitionsBefore == editEvent.repetitionsAfter ? false : true;\n break;\n }\n };\n }\n this.filterActivityTypes(this.stateTypes.indexOf(this.currentState));\n this.dataSource = this.getActivitiesAsExpandableElements();\n }\n }\n );\n }\n }\n );\n }\n\n getActivitiesAsExpandableElements() {\n var tmp = new Array();\n let isAdded;\n for (let act of this.activities) {\n isAdded = false;\n for(let element of tmp) {\n if (element.date == act.date) {\n element.numberOfExercises++;\n element.exercises.push(act);\n isAdded = true;\n break;\n }\n }\n if (isAdded == false) {\n tmp.push(\n {\n date: act.date, \n numberOfExercises: 1,\n exercises: [act]\n }\n );\n }\n }\n return tmp;\n }\n\n // Does not compare hours!\n isDateDifferent(date1:Date, date2:Date) {\n if (date1.getFullYear() != date2.getFullYear() \n || date1.getMonth() != date2.getMonth()\n || date1.getDate() != date2.getDate()) {\n return true;\n }\n return false;\n }\n\n viewFullInfo(activity: any) {\n let dialogRef;\n if (activity.dbName == \"CATAssessment\") {\n let questions = this.gi.getCATQuestionair();\n if (activity.results && activity.results[0]) {\n for (let i = 0; i < activity.results[0].assessmentAnswers.length; i++) {\n questions[i].currentValue = activity.results[0].assessmentAnswers[i];\n }\n }\n let sum = 0;\n for (let q of questions) {\n if (q.currentValue >= 0) {\n sum = sum + parseInt(q.currentValue);\n }\n }\n let planned = activity.completed ? false : activity.dateHasPassed ? false : true;\n dialogRef = this.dialog.open(ResultsViewDialog, {\n width: 'fit-content',\n data: {\n assessment: true, name: activity.name, date: activity.date, comment: activity.comment, questionair: questions, sum: sum, id: activity.id,\n dbName: activity.dbName, scheduledFor: activity.scheduledFor, variant: activity.variant, settings: activity.settings, planned: planned\n }\n });\n }\n else if (activity.dbName == \"mMRCAssessment\") {\n let questions = this.gi.getmMRCQuestionair();\n let sum = activity.results[0] != null ? activity.results[0].score : 0;\n let planned = activity.completed ? false : activity.dateHasPassed ? false : true;\n dialogRef = this.dialog.open(ResultsViewDialog, {\n width: 'fit-content',\n data: {\n assessment: true, name: activity.name, date: activity.date, comment: activity.comment, questionair: questions, sum: sum,\n id: activity.id, dbName: activity.dbName, scheduledFor: activity.scheduledFor, variant: activity.variant, settings: activity.settings, planned: planned\n }\n });\n }\n else {\n let sets = new Array();\n let measure = false;\n let UsesBorg = false;\n let pulseGraph = false;\n let saturationGraph = false;\n for (let i = 0; i < activity.sets; i++) {\n if (activity.results && activity.results[i]) {\n let plotDataSat;\n let plotDataPulse;\n if ( activity.results[i].saturation != null && activity.results[i].saturation.length > 0 && this.notAllValuesZero(activity.results[i].saturation)) {\n saturationGraph = true;\n var plotValuesSat = new Array();\n for (let x = 0; x < activity.results[i].saturation.length; x++) {\n plotValuesSat.push({\n \"label\": x,\n \"value\": activity.results[i].saturation[x]\n });\n }\n plotDataSat = [{\n key: \" %\",\n values: plotValuesSat\n }];\n }\n if (activity.results[i].pulse != null && activity.results[i].pulse.length > 0 && this.notAllValuesZero(activity.results[i].pulse)) {\n pulseGraph = true;\n var plotValues = new Array();\n for (let x = 0; x < activity.results[i].saturation.length; x++) {\n plotValues.push({\n \"label\": x,\n \"value\": activity.results[i].pulse[x]\n });\n }\n plotDataPulse = [{\n key: \" bpm\",\n values: plotValues\n }];\n }\n let duration = this.gameTime((activity.results[i].activityEnded - activity.results[i].activityStarted) / 1000);\n sets.push({\n level: activity.level == 0 ? \"--\" : activity.level,\n time: duration,\n score: activity.results[i].score,\n breath: activity.results[i].vasBreath == 0 ? \"--\" : activity.results[i].vasBreath,\n effort: activity.results[i].vasEffort == 0 ? \"--\" : activity.results[i].vasEffort,\n rpe: activity.results[i].rpe == 0 ? \"--\" : activity.results[i].rpe,\n cr10: activity.results[i].cr10 == 0 ? \"--\" : activity.results[i].cr10, \n saturationPlotData: plotDataSat, \n pulsePlotData: plotDataPulse, \n planned: false,\n completed: true,\n info: activity.results[i].additionalText == null || activity.results[i].additionalText == \"\" ? \n 'Poäng: ' + activity.results[i].score + \"/\" + activity.results[i].possibleScore : \n activity.results[i].additionalText\n });\n if (activity.results[i].vasBreath != 0 || activity.results[i].vasEffort != 0){\n measure = true;\n }\n if (activity.results[i].rpe != 0 || activity.results[i].cr10 != 0){\n UsesBorg = true;\n }\n }\n else {\n sets.push({\n level: activity.level == 0 ? \"--\" : activity.level,\n time: \"--\",\n score: \"--\",\n breath: \"--\",\n effort: \"--\",\n planned: !activity.dateHasPassed,\n completed: false\n });\n }\n }\n\n dialogRef = this.dialog.open(ResultsViewDialog, {\n width: 'fit-content',\n data: {\n assessment: false, name: activity.name, date: activity.date, comment: activity.comment, activities: sets, id: activity.id,\n dbName: activity.dbName, scheduledFor: activity.scheduledFor, variant: activity.variant, settings: activity.settings, vas: measure\n , borg: UsesBorg, hasPulseGraph: pulseGraph, hasSaturationGraph: saturationGraph\n }\n });\n }\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.setupCompleteTable();\n this.snackBar.open('Övningar ändrade!', 'Sparat', { duration: 4500 });\n }\n });\n return false;\n }\n\n private notAllValuesZero(listPossiblyAllZeros : number[]) {\n let allZeroes = true;\n listPossiblyAllZeros.forEach(element => {\n if (element != 0) allZeroes = false;\n });\n return !allZeroes;\n }\n\n private gameTime(time: number): string {\n if (time / 60 > 1) {\n return Math.round(time / 60).toString() + ' min ' + Math.round(time % 60) + ' s';\n }\n else if (time <= 0) {\n return \"--\";\n }\n return Math.round(time) + ' s';\n }\n}\n\n\n\n@Component({\n selector: 'results-view',\n templateUrl: 'results-view.html',\n styleUrls: ['./overview-activity.component.css']\n})\nexport class ResultsViewDialog {\n checkpoint: boolean = false;\n deleteAll: boolean = false;\n erase: boolean = false;\n\n plotDataSat: any;\n options: any;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any, private dataservice: DataserviceService) {\n this.setupChartOptionsUndefined();\n }\n\n onNoClick(): void {\n this.dialogRef.close(false);\n }\n\n checkDelete(showWindow: boolean, deleteAll: boolean) {\n this.checkpoint = showWindow;\n this.erase = showWindow;\n this.deleteAll = deleteAll;\n }\n\n checkSettings(change: boolean) {\n this.checkpoint = change;\n this.erase = !change;\n }\n\n changeSettings() {\n let body = {\n activityName: [this.data.dbName],\n settings: this.data.settings,\n variant: this.data.variant\n }\n this.dataservice.changeSettingsOfActivities(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.checkpoint = false;\n this.erase = false;\n this.dialogRef.close(true);\n }\n });\n }\n\n deleteActivities() {\n this.checkpoint = false;\n if (this.deleteAll) {\n let deleteAct = {\n activityName: [this.data.dbName],\n settings: this.data.settings,\n variant: this.data.variant.toLocaleUpperCase()\n };\n this.dataservice.deleteAllOfSameType(deleteAct).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.dialogRef.close(true);\n }\n });\n }\n else {\n let deleteAct = {\n id: this.data.id,\n activityName: [this.data.dbName],\n scheduledFrom: this.data.scheduledFor,\n variant: this.data.variant.toLocaleUpperCase()\n };\n this.dataservice.deleteSingleActivity(deleteAct).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.dialogRef.close(true);\n }\n });\n }\n }\n\n private setupChartOptionsUndefined() {\n this.options = {\n chart: {\n type: 'lineChart',\n showLegend: false,\n height: 350,\n width: 300,\n x: function (d) { return d.label; },\n y: function (d) { return d.value; },\n useInteractiveGuideline: true,\n clipVoronoi: false,\n xAxis: {\n tickFormat: function (d) {\n return d;\n },\n showMinMax: false\n },\n yAxis: {\n tickFormat: function (d) {\n return d.toFixed(1);\n }\n },\n interactiveLayer: {\n tooltip: {\n contentGenerator: function (record) {\n var str = '

' + \"Värde Nr: \" + record.series[0].data.label + '
';\n str = str + ' ' + record.series[0].value + record.series[0].key + '
';\n return str + '

';\n },\n headerEnabled: true,\n }\n }\n }\n }\n }\n}\n\nexport interface ExpandedElement {\n date: string;\n numberOfExercises: number;\n exercises: Array\n}","module.exports = \"
\\n

{{data.name}} ({{data.date}})

\\n \\n \\n

Användarens kommentar: {{data.comment}}

\\n\\n
\\n
\\n
Set {{i+1}}:
\\n
\\n date_range\\n \\n remove_circle\\n check_circle\\n \\n
\\n
\\n

{{act.info}}
Speltid: {{act.time}}

\\n

Inget resultat att visa

\\n
\\n\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n

Användarens kommentar: {{data.comment}}

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
SetVAS ansträngning (1-100)VAS andfåddhet (1-100)
\\n

{{i+1}}

\\n
{{act.effort}}{{act.breath}}
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
SetRPE mod (6-20)CR10 mod (0-11)
\\n

{{i+1}}

\\n
{{act.rpe}}{{act.cr10}}
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
SetSaturation och Puls
\\n

{{i+1}}

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n

{{data.name}} ({{data.date}})

\\n

\\n Användarens kommentar: {{data.comment}}\\n

\\n \\n
\\n

{{quest.minText}}

\\n \\n \\n \\n

{{quest.maxText}}

\\n
\\n
\\n

Sammanlagd poäng: {{data.sum}}

\\n
\\n \\n \\n \\n
\\n
\\n
\\n

{{data.name}} ({{data.date}})

\\n

\\n Användarens kommentar: {{data.comment}}\\n

\\n
    \\n \\n
  1. {{quest.text}}
  2. \\n
    \\n
\\n

Valt svar: {{data.sum}}

\\n
\\n \\n \\n \\n
\\n
\\n
\\n

Är du säker?

\\n
\\n \\n \\n
\\n
\\n
\\n

Ändra inställningar

\\n Nivå:\\n \\n Antal set:\\n \\n Repetioner / tid (s):\\n \\n\\n

Ändra mätinställningar

\\n
\\n Mät saturation och puls\\n VAS andfåddhet\\n VAS ansträngning\\n RPE mod\\n CR-10 mod\\n
\\n\\n
\\n \\n \\n
\\n
\"","module.exports = \"\\n

{{data.name}}

\\n

{{data.information}}

\\n
Utförande:\\n

{{data.performance}}

\\n
\\n
Instruktioner:\\n

{{data.instruction}}

\\n
\\n
Feedback:\\n

{{data.feedback}}

\\n
\\n
Repetitioner:\\n

{{data.repetitions}}

\\n
\\n
\\n \\n
\"","module.exports = \"\\n.discrete-button, .discrete-button:focus{\\n padding: 12px;\\n border: 1px solid black;\\n border-radius: 8px;\\n font-size: 15px;\\n background-color: white;\\n outline: none;\\n margin-left: 10px;\\n margin-right: 10px;\\n margin-bottom: auto;\\n margin-top: auto;\\n}\\n.discrete-button:hover {\\n cursor: pointer;\\n background-color: rgba(255, 255, 0, 0.3);\\n}\\n.choosen {\\n background-color: rgba(255, 255, 0, 0.3);\\n}\\n.hover-row:hover {\\n cursor: pointer;\\n color: rgba(17, 175, 253, 0.9) !important;\\n}\\n.activity-table {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n.activity-table tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n.activity-table tr:hover{\\n cursor: pointer;\\n }\\n.activity-table td, .activity-table th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n.activity-table select, .activity-table select:focus {\\n padding: 6px;\\n border-radius: 8px;\\n outline: none;\\n }\\n.activity-table select:hover {\\n cursor: pointer;\\n }\\n.textParts {\\n font-size: 15px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n text-align: left;\\n width: 100%;\\n}\\n.textParts2 {\\n font-size: 15px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n text-align: left;\\n}\\n.textParts p, .textParts b, .textParts2 p, .textParts2 b {\\n margin: 15px;\\n text-align: left;\\n}\\n.specialText {\\n display:inherit; \\n margin: 15px;\\n text-align: center;\\n font-size: 15px;\\n}\\n.my-input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n width: 200px;\\n background-color: whitesmoke;\\n}\\n.my-input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n.calender-dropdown {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px; \\n }\\n.calender-dropdown tr:first-child{\\n border-bottom: 1px solid #222;\\n display: table-row;\\n }\\n.calender-dropdown td{\\n padding: 2px;\\n font-size: 15px;\\n }\\n.calender-dropdown button {\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n width: 100%;\\n font-size: 15px;\\n color: inherit; \\n cursor: inherit; \\n }\\n.ring {\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.marked {\\n background-color: purple !important;\\n color: white !important;\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.month-label {\\n display: -ms-flexbox;\\n display: flex; \\n -ms-flex-pack: center; \\n justify-content: center;\\n text-align: center; \\n vertical-align: middle;\\n height: 60px;\\n line-height: 60px;\\n background-color: rgba(17, 175, 253, 0.3);\\n width: auto !important;\\n border: none !important; \\n }\\n.month-label md-icon {\\n line-height: inherit;\\n margin-left: 20px;\\n margin-right: 20px; \\n }\\n.custom-day {\\n text-align: center;\\n padding: 0.185rem 0.25rem;\\n display: inline-block;\\n height: 2rem;\\n width: 2rem;\\n }\\n.custom-day.focused {\\n background-color: #e6e6e6;\\n }\\n.custom-day.range, .custom-day:hover {\\n background-color: rgb(2, 117, 216);\\n color: white;\\n }\\n.custom-day.faded {\\n background-color: rgba(2, 117, 216, 0.5);\\n }\\n.custom-day.today {\\n background-color: rgba(252, 172, 67, 1);\\n color: white;\\n }\\n.custom-day.weekday-chosen {\\n background-color: rgba(2, 117, 216, 0.75);\\n }\\n.custom-day.today-weekday-chosen {\\n background-color: rgba(252, 172, 67, 0.5);\\n }\\n.mat-input-infix {\\n padding: .3em 0 !important;\\n}\\n.iconDatePicker {\\n border-bottom: 1px solid #222;\\n}\\n.btn-radio {\\n color: #fff;\\n background-color: rgba(2, 117, 216, 0.5);\\n border-color: rgba(2, 117, 216, 0.5);\\n}\\n.btn-radio:not(:disabled):not(.disabled).active {\\n color: #fff;\\n background-color: rgb(2, 117, 216);\\n border-color: rgb(2, 117, 216) ;\\n}\\n.btn-radio:hover {\\n color: #fff;\\n background-color: rgb(2, 117, 216, 0.75);\\n border-color: rgb(2, 117, 216, 0.75);\\n}\\nth.mat-header-cell {\\n text-align: center !important;\\n}\\ntable {\\n width: 100%;\\n}\\nmat-header-cell, mat-cell {\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.tooltip {\\n position: relative;\\n display: inline-block;\\n border-bottom: 1px dotted black;\\n}\\n.tooltip .tooltiptext {\\n visibility: hidden;\\n width: 120px;\\n background-color: #555;\\n color: #fff;\\n text-align: center;\\n border-radius: 6px;\\n padding: 5px 0;\\n position: absolute;\\n z-index: 1;\\n bottom: 125%;\\n left: 50%;\\n margin-left: -60px;\\n opacity: 0;\\n transition: opacity 0.3s;\\n}\\n.tooltip .tooltiptext::after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 5px;\\n border-style: solid;\\n border-color: #555 transparent transparent transparent;\\n}\\n.tooltip:hover .tooltiptext {\\n visibility: visible;\\n opacity: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wbGFuLWFjdGl2aXR5L3BsYW4tYWN0aXZpdHkuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsdUJBQXVCO0lBQ3ZCLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixnQkFBZ0I7QUFDcEI7QUFDQTtJQUNJLGVBQWU7SUFDZix3Q0FBd0M7QUFDNUM7QUFFQTtJQUNJLHdDQUF3QztBQUM1QztBQUNBO0lBQ0ksZUFBZTtJQUNmLHlDQUF5QztBQUM3QztBQUNBO0lBQ0ksdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QixlQUFlO0lBQ2YsVUFBVTtJQUNWLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysc0JBQThCO1FBQTlCLDhCQUE4QjtJQUM5QixjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0FBQ0E7SUFDRSw2QkFBNkI7SUFDN0Isa0JBQWtCO0VBQ3BCO0FBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0E7SUFDRSw0QkFBNEI7SUFDNUIsYUFBYTtFQUNmO0FBQ0E7SUFDRSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGFBQWE7RUFDZjtBQUNBO01BQ0ksZUFBZTtFQUNuQjtBQUVBO0lBQ0UsZUFBZTtJQUNmLDJCQUFvQjtJQUFwQixvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLFdBQVc7QUFDZjtBQUNBO0lBQ0ksZUFBZTtJQUNmLDJCQUFvQjtJQUFwQixvQkFBb0I7SUFDcEIsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSxZQUFZO0lBQ1osZ0JBQWdCO0FBQ3BCO0FBR0E7SUFDSSxlQUFlO0lBQ2YsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixlQUFlO0FBQ25CO0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLGtCQUFrQjtJQUNsQix3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osNEJBQTRCO0FBQ2hDO0FBQ0E7SUFDSSxnQ0FBZ0M7QUFDcEM7QUFFQTtJQUNJLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsZUFBZTtJQUNmLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHNCQUE4QjtRQUE5Qiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLG1CQUFtQjtFQUNyQjtBQUNBO0lBQ0UsNkJBQTZCO0lBQzdCLGtCQUFrQjtFQUNwQjtBQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7QUFFQTtJQUNFLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IsU0FBUztJQUNULFdBQVc7SUFDWCxlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7RUFDakI7QUFDQTtJQUNFLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsNkJBQTZCO0VBQy9CO0FBQ0E7SUFDRSxtQ0FBbUM7SUFDbkMsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsNkJBQTZCO0VBQy9CO0FBRUE7SUFDRSxvQkFBYTtJQUFiLGFBQWE7SUFDYixxQkFBdUI7UUFBdkIsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQix5Q0FBeUM7SUFDekMsc0JBQXNCO0lBQ3RCLHVCQUF1QjtFQUN6QjtBQUNBO01BQ0ksb0JBQW9CO01BQ3BCLGlCQUFpQjtNQUNqQixrQkFBa0I7RUFDdEI7QUFFQTtJQUNFLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIscUJBQXFCO0lBQ3JCLFlBQVk7SUFDWixXQUFXO0VBQ2I7QUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtBQUNBO0lBQ0Usa0NBQWtDO0lBQ2xDLFlBQVk7RUFDZDtBQUNBO0lBQ0Usd0NBQXdDO0VBQzFDO0FBQ0E7SUFDRSx1Q0FBdUM7SUFDdkMsWUFBWTtFQUNkO0FBQ0E7SUFDRSx5Q0FBeUM7RUFDM0M7QUFDQTtJQUNFLHlDQUF5QztFQUMzQztBQUVGO0lBQ0ksMEJBQTBCO0FBQzlCO0FBR0E7SUFDSSw2QkFBNkI7QUFDakM7QUFFQTtFQUNFLFdBQVc7RUFDWCx3Q0FBd0M7RUFDeEMsb0NBQW9DO0FBQ3RDO0FBRUE7RUFDRSxXQUFXO0VBQ1gsa0NBQWtDO0VBQ2xDLCtCQUErQjtBQUNqQztBQUVBO0VBQ0UsV0FBVztFQUNYLHdDQUF3QztFQUN4QyxvQ0FBb0M7QUFDdEM7QUFFQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUVBO0VBQ0UsV0FBVztBQUNiO0FBRUE7RUFDRSxxQkFBdUI7TUFBdkIsdUJBQXVCO0FBQ3pCO0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLCtCQUErQjtBQUNqQztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsWUFBWTtFQUNaLFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLHdCQUF3QjtBQUMxQjtBQUVBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsU0FBUztFQUNULGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLHNEQUFzRDtBQUN4RDtBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFVBQVU7QUFDWiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcGxhbi1hY3Rpdml0eS9wbGFuLWFjdGl2aXR5LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi5kaXNjcmV0ZS1idXR0b24sIC5kaXNjcmV0ZS1idXR0b246Zm9jdXN7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbn1cbi5kaXNjcmV0ZS1idXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjMpO1xufVxuXG4uY2hvb3NlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC4zKTtcbn1cbi5ob3Zlci1yb3c6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuOSkgIWltcG9ydGFudDtcbn1cbi5hY3Rpdml0eS10YWJsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tbGVmdDogMSU7ICBcbiAgICB3aWR0aDogOTglO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAycHg7XG4gIH1cbiAgLmFjdGl2aXR5LXRhYmxlIHRyOmZpcnN0LWNoaWxke1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBncmF5O1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgfVxuICAuYWN0aXZpdHktdGFibGUgdHI6aG92ZXJ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC5hY3Rpdml0eS10YWJsZSB0ZCwgLmFjdGl2aXR5LXRhYmxlIHRoIHtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cbiAgLmFjdGl2aXR5LXRhYmxlIHNlbGVjdCwgLmFjdGl2aXR5LXRhYmxlIHNlbGVjdDpmb2N1cyB7XG4gICAgcGFkZGluZzogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIC5hY3Rpdml0eS10YWJsZSBzZWxlY3Q6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLnRleHRQYXJ0cyB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4udGV4dFBhcnRzMiB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0UGFydHMgcCwgLnRleHRQYXJ0cyBiLCAudGV4dFBhcnRzMiBwLCAudGV4dFBhcnRzMiBiIHtcbiAgICBtYXJnaW46IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuXG4uc3BlY2lhbFRleHQge1xuICAgIGRpc3BsYXk6aW5oZXJpdDsgXG4gICAgbWFyZ2luOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5teS1pbnB1dCB7ICAgIFxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNDIpO1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlO1xufVxuLm15LWlucHV0OmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzY5MTZCNjtcbn1cblxuLmNhbGVuZGVyLWRyb3Bkb3duIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1sZWZ0OiAxJTsgIFxuICAgIHdpZHRoOiA5OCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDsgICAgXG4gIH1cbiAgLmNhbGVuZGVyLWRyb3Bkb3duIHRyOmZpcnN0LWNoaWxke1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMjIyO1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgfVxuICAuY2FsZW5kZXItZHJvcGRvd24gdGR7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gIC5jYWxlbmRlci1kcm9wZG93biBidXR0b24ge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTowO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogaW5oZXJpdDsgXG4gICAgY3Vyc29yOiBpbmhlcml0OyBcbiAgfVxuICAucmluZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXItY29sb3I6ICMyMjIgIWltcG9ydGFudDtcbiAgfVxuICAubWFya2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlci1jb2xvcjogIzIyMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1vbnRoLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICBcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNzUsIDI1MywgMC4zKTtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyAgICBcbiAgfVxuICAubW9udGgtbGFiZWwgbWQtaWNvbiB7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyBcbiAgfVxuXG4gIC5jdXN0b20tZGF5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC4xODVyZW0gMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICB9XG4gIC5jdXN0b20tZGF5LmZvY3VzZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIH1cbiAgLmN1c3RvbS1kYXkucmFuZ2UsIC5jdXN0b20tZGF5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMiwgMTE3LCAyMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICAuY3VzdG9tLWRheS5mYWRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyLCAxMTcsIDIxNiwgMC41KTtcbiAgfVxuICAuY3VzdG9tLWRheS50b2RheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTIsIDE3MiwgNjcsIDEpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICAuY3VzdG9tLWRheS53ZWVrZGF5LWNob3NlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyLCAxMTcsIDIxNiwgMC43NSk7XG4gIH1cbiAgLmN1c3RvbS1kYXkudG9kYXktd2Vla2RheS1jaG9zZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUyLCAxNzIsIDY3LCAwLjUpO1xuICB9XG5cbi5tYXQtaW5wdXQtaW5maXgge1xuICAgIHBhZGRpbmc6IC4zZW0gMCAhaW1wb3J0YW50O1xufVxuXG5cbi5pY29uRGF0ZVBpY2tlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG59XG5cbi5idG4tcmFkaW8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyLCAxMTcsIDIxNiwgMC41KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIsIDExNywgMjE2LCAwLjUpO1xufVxuXG4uYnRuLXJhZGlvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMiwgMTE3LCAyMTYpO1xuICBib3JkZXItY29sb3I6IHJnYigyLCAxMTcsIDIxNikgO1xufVxuXG4uYnRuLXJhZGlvOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyLCAxMTcsIDIxNiwgMC43NSk7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIsIDExNywgMjE2LCAwLjc1KTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbm1hdC1oZWFkZXItY2VsbCwgbWF0LWNlbGwge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLnRvb2x0aXAgLnRvb2x0aXB0ZXh0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMTIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgYm90dG9tOiAxMjUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNjBweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xufVxuXG4udG9vbHRpcCAudG9vbHRpcHRleHQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICM1NTUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi50b29sdGlwOmhvdmVyIC50b29sdGlwdGV4dCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59Il19 */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Planera aktiviteter

\\n

Välj användare först!

\\n
\\n

I listan nedan finns alla aktuella övningar som kan planeras i Alkit eSense-systemen. Markera alla övningar\\n i listan som\\n ska planeras för den valda användaren. Klicka därefter på \\\"planera\\\"-knappen längst ner på sidan för att\\n komma till\\n inställningssidan. Mer information om aktiviteten fås genom att klicka på informationsikonen för övningen. \\n Använd plan-knapparna för att skapa och markera din egna förbyggda plan.\\n

\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NamnPositionSyfteInformation
\\n \\n {{act.title}}\\n \\n {{act.benefits}}\\n info\\n
\\n
\\n
\\n
\\n

Valda övningar

\\n \\n
\\n info\\n {{game.title}}\\n
\\n \\n
\\n\\n \\n\\n \\n \\n Övningstyp \\n \\n \\n {{element.game.title}} \\n \\n \\n\\n \\n \\n Nivå \\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n\\n \\n \\n Sets \\n \\n \\n \\n \\n\\n \\n \\n Repetitioner / Tid \\n \\n \\n \\n \\n\\n \\n \\n Mät saturation och puls \\n \\n \\n \\n \\n \\n\\n \\n \\n Ansträngning skala\\n \\n \\n \\n \\n \\n\\n \\n \\n Andfåddhet skala\\n \\n \\n \\n \\n \\n\\n \\n \\n Ansträngning VAS \\n \\n \\n \\n \\n \\n\\n \\n \\n Andfåddhet VAS \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n

Välj datum och dagar

\\n \\n \\n \\n \\n {{ date.day }}\\n \\n \\n
\\n \\n {{day}}\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\"","import { Component, OnInit, Inject, ViewChild, ElementRef, Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { GameInformationService } from '../../services/game-information.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { NgbDate, NgbCalendar, NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatTableDataSource } from '@angular/material';\n\nconst I18N_VALUES = {\n 'se': {\n weekdays: ['Må', 'Ti', 'On', 'To', 'Fr', 'Lö', 'Sö'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Juni', 'Juli', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n }\n // other languages you would support\n};\n\n// Define a service holding the language. You probably already have one if your app is i18ned. Or you could also\n// use the Angular LOCALE_ID value\n@Injectable()\nexport class I18n {\n language = 'se';\n}\n\n// Define custom service providing the months and weekdays translations\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\nexport interface Activity {\n game: any;\n id: number;\n level: number;\n repetitions: number;\n sets: number;\n satAndPulse: boolean;\n effortScale: boolean;\n breathScale: boolean;\n effortVAS: boolean;\n breathVAS: boolean;\n}\n\n@Component({\n selector: 'app-plan-activity',\n templateUrl: './plan-activity.component.html',\n styleUrls: ['./plan-activity.component.css'],\n providers: [I18n, { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n }] // define custom NgbDatepickerI18n provider\n})\nexport class PlanActivityComponent implements OnInit {\n @ViewChild('scroller', { static: true }) private myScrollContainer: ElementRef;\n newMessage: boolean = false;\n showWarning: boolean = false;\n\n settingPage: boolean = false;\n shownGames: InformationContent[] = new Array();\n choosenGames: any[];\n days: string[] = [\"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\", \"Sön\", \"Alla\"];\n choosenDays: boolean[] = new Array(8).fill(false);\n set: number = 2;\n repetioner: number = 10;\n level: number = 3;\n defaultDaySpan: number = 14;\n measureSatAndPul: boolean = false;\n performVasBreath: boolean = false;\n performVasEffort: boolean = false;\n performRpe: boolean = false;\n performCR10: boolean = false;\n\n calendarContent: any[];\n calenderWeeks1: any[];\n calenderWeeks2: any[];\n startDate: string;\n endDate: string;\n startMonth: string;\n endMonth: string;\n fromDate: Date;\n untilDate: Date;\n\n hoveredDate: NgbDate; // NgbDate is a date for the calendar\n model: NgbDateStruct;\n\n mObs;\n\n dropdownList = [];\n selectedItems = [];\n dropdownSettings = {};\n\n displayedColumns: string[] = ['name', 'level', 'sets', 'repetitions', 'satAndPulse', 'effortScale', 'breathScale', 'effortVAS', 'breathVAS'];\n gamesToPlan: Activity[] = [];\n dataSource = new MatTableDataSource(this.gamesToPlan);\n selection = new SelectionModel(true, this.gamesToPlan);\n\n assigned: string = '';\n\n constructor(private dataservice: DataserviceService, private router: Router, private gi: GameInformationService,\n private dialog: MatDialog, public snackBar: MatSnackBar, private mhs: MessageHandlerService, calendar2: NgbCalendar) {\n this.fromDate = this.NgbDateToJSDate(calendar2.getToday());\n this.untilDate = this.NgbDateToJSDate(calendar2.getNext(calendar2.getToday(), 'd', this.defaultDaySpan));\n }\n\n onDateSelection(ngbDate: NgbDate) {\n let date = this.NgbDateToJSDate(ngbDate);\n if (!this.fromDate && !this.untilDate) {\n this.fromDate = date;\n } else if (this.fromDate && !this.untilDate && ngbDate.after(this.JSDateToNgbDate(this.fromDate))) {\n this.untilDate = date;\n } else {\n this.untilDate = null;\n this.fromDate = date;\n }\n }\n\n NgbDateToJSDate(ngbDate: NgbDate) {\n let date = new Date();\n date.setDate(ngbDate.day);\n date.setMonth(ngbDate.month - 1);\n date.setFullYear(ngbDate.year);\n return date;\n }\n\n JSDateToNgbDate(date: Date) {\n if (date == null) return null;\n let ngbDate = new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\n return ngbDate;\n }\n\n isHovered(date: NgbDate) {\n return this.fromDate && !this.untilDate && this.hoveredDate && date.after(this.JSDateToNgbDate(this.fromDate))\n && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n return date.after(this.JSDateToNgbDate(this.fromDate)) && date.before(this.JSDateToNgbDate(this.untilDate));\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.JSDateToNgbDate(this.fromDate)) || date.equals(this.JSDateToNgbDate(this.untilDate)) || this.isInside(date) || this.isHovered(date);\n }\n\n isWeekdayChosen(date: NgbDate) {\n let jsDate = this.NgbDateToJSDate(date);\n if (this.choosenDays[7]) return true;\n let dayNumber = jsDate.getDay();\n if (dayNumber == 0) dayNumber = 7;\n dayNumber--;\n return this.choosenDays[dayNumber]\n }\n\n isToday(date: NgbDate) {\n var todayDate = new Date();\n if (date.day == todayDate.getDate()\n && date.month == (todayDate.getMonth() + 1)\n && date.year == todayDate.getFullYear()) {\n return true;\n }\n return false;\n }\n\n ngOnInit() {\n this.showAllGames();\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n\n let availBene: any[] = this.gi.availableBenefits;\n\n availBene.sort((a: any, b: any) => {\n return a.name > b.name ? 1 : -1\n });\n\n for (let i = 0; i < availBene.length; i++) {\n this.dropdownList.push(\n { item_id: availBene[i].index, item_text: availBene[i].name }\n );\n }\n this.dropdownSettings = {\n singleSelection: false,\n idField: 'item_id',\n textField: 'item_text',\n selectAllText: 'Välj Alla',\n unSelectAllText: 'Välj Alla',\n itemsShowLimit: 2,\n allowSearchFilter: true,\n searchPlaceholderText: \"Sök\"\n };\n console.log('OnInit=', this.assigned);\n }\n\n SatAndPulseChanged(model: any, ID: any) {\n for (let game of this.gamesToPlan) {\n if (game.id == ID) {\n game.satAndPulse = model.checked;\n break;\n }\n }\n }\n\n EffortScaleChanged(model: any, ID: any) {\n for (let game of this.gamesToPlan) {\n if (game.id == ID) {\n game.effortScale = model.checked;\n break;\n }\n }\n }\n\n BreathScaleChanged(model: any, ID: any) {\n for (let game of this.gamesToPlan) {\n if (game.id == ID) {\n game.breathScale = model.checked;\n break;\n }\n }\n }\n\n EffortVASChanged(model: any, ID: any) {\n for (let game of this.gamesToPlan) {\n if (game.id == ID) {\n game.effortVAS = model.checked;\n break;\n }\n }\n }\n\n BreathVASChanged(model: any, ID: any) {\n for (let game of this.gamesToPlan) {\n if (game.id == ID) {\n game.breathVAS = model.checked;\n break;\n }\n }\n }\n\n Assign() {\n //Here i have code to send selected id of checkboxes to my API\n console.log('OnSubmitClick=', this.assigned);\n }\n\n filterGamesOnBenefit() {\n if (this.selectedItems.length == 0) {\n this.showAllGames();\n return;\n }\n this.shownGames.splice(0, this.shownGames.length);\n let showGame: boolean;\n this.gi.allGameInformation.forEach(game => {\n showGame = true;\n this.selectedItems.forEach(selectedGameItem => {\n if (game.benefitSearchIndexes.includes(selectedGameItem.item_id) == false) {\n showGame = false;\n return;\n }\n });\n if (showGame) this.shownGames.push(game);\n });\n }\n\n showAllGames() {\n this.shownGames = Object.assign([], this.gi.allGameInformation);\n }\n onItemSelect(item: any) {\n this.filterGamesOnBenefit();\n }\n onItemDeSelect(item: any) {\n this.filterGamesOnBenefit();\n }\n onSelectAll(items: any) {\n this.showAllGames();\n }\n\n scheduleActivities() {\n\n let now = new Date();\n let today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0).getTime();\n if (this.fromDate.getTime() > this.untilDate.getTime() || this.fromDate.getTime() < today) {\n this.snackBar.open('Icke tillåtet datum interval!', 'Error', { duration: 4500 });\n return false;\n }\n let days = new Array();\n for (let i = 0; i < 7; i++) {\n if (this.choosenDays[i]) {\n days.push(i + 1);\n }\n }\n\n for (let game of this.gamesToPlan) {\n let settings = {\n level: game.level,\n sets: game.sets,\n repetitions: game.repetitions,\n measureSatAndPul: game.satAndPulse,\n performVasBreath: game.breathVAS,\n performVasEffort: game.effortVAS,\n performRpe: game.effortScale,\n performCR10: game.breathScale,\n positionType: this._getDbPosName(game.game.activePos)\n }\n let names = new Array();\n names.push(game.game.dbName);\n\n let body = {\n activityName: names,\n scheduledFrom: this.fromDate.getTime(),\n scheduledUntil: this.untilDate.getTime(),\n daysOfWeek: days,\n settings: settings,\n variant: \"EXERCISE\",\n }\n this.dataservice.scheduleActivity(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.snackBar.open('Övningar planerade!', 'Sparat', { duration: 4500 });\n this.goBack();\n }\n });\n }\n }\n\n private _getDbPosName(activePos: any) {\n if (activePos == \"Sittande\") {\n return \"SITTING\"\n }\n else if (activePos == \"Stående\") {\n return \"STANDING\"\n }\n else {\n return \"NONE\"\n }\n }\n\n getTodayDate() {\n let now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);\n }\n\n setupSettingPage() {\n if (this.showWarning) {\n this.snackBar.open('Du måste välja en användare först!', 'ERROR', { duration: 4500 });\n return false;\n }\n this.gamesToPlan = [];\n let i: number = 1;\n for (let game of this.shownGames) {\n if (game.choosen) {\n let activity: Activity = {\n game: game,\n id: i++,\n level: 3,\n repetitions: 10,\n sets: 1,\n satAndPulse: false,\n breathScale: false,\n breathVAS: false,\n effortScale: false,\n effortVAS: false\n }\n this.gamesToPlan.push(activity);\n }\n }\n if (this.gamesToPlan.length < 1) {\n this.snackBar.open('Du måste välja minst en övning att planera!', 'ERROR', { duration: 4500 });\n return false;\n }\n this.dataSource = new MatTableDataSource(this.gamesToPlan);\n this.selection = new SelectionModel(true, this.gamesToPlan);\n this.dataservice.getPlanningSettings().subscribe(\n (resp) => {\n this.settingPage = true;\n this.myScrollContainer.nativeElement.scrollTop = 0;\n if (resp.status == 200) {\n let settings = resp.json();\n if (settings.fromDate != 0 && settings.untilDate != 0) {\n // Setup the calendars to match the saved settings.\n let today = this.getTodayDate();\n if (new Date(settings.fromDate) >= today) {\n this.fromDate = new Date(settings.fromDate);\n } else {\n this.fromDate = today;\n }\n if (new Date(settings.untilDate) >= today) {\n this.untilDate = new Date(settings.untilDate);\n } else {\n this.untilDate = new Date(today.getTime() + 1000 * 60 * 60 * 24 * this.defaultDaySpan);\n }\n this.startMonth = this.dataservice.shortMonthName(this.fromDate.getMonth()) + ' (' + this.fromDate.getFullYear() + ')';\n this.endMonth = this.dataservice.shortMonthName(this.untilDate.getMonth()) + ' (' + this.untilDate.getFullYear() + ')';\n this.startDate = this.fromDate.getDate() + \" \" + this.dataservice.shortMonthName(this.fromDate.getMonth()) + \" \" + this.fromDate.getFullYear();\n this.endDate = this.untilDate.getDate() + \" \" + this.dataservice.shortMonthName(this.untilDate.getMonth()) + \" \" + this.untilDate.getFullYear();\n }\n for (let nr of settings.daysInWeek) {\n this.choosenDays[nr] = true;\n }\n if (settings.planningSettingsExercises != null) {\n for (let planningSettingsExercise of settings.planningSettingsExercises) {\n for (let game of this.gamesToPlan) {\n if (planningSettingsExercise.activityDbName == game.game.dbName) {\n game.level = planningSettingsExercise.level;\n game.sets = planningSettingsExercise.sets;\n game.repetitions = planningSettingsExercise.repetitions;\n game.satAndPulse = planningSettingsExercise.measureSatAndPulse;\n game.breathVAS = planningSettingsExercise.vasBreath;\n game.effortVAS = planningSettingsExercise.vasEffort;\n game.breathScale = planningSettingsExercise.CR10;\n game.effortScale = planningSettingsExercise.RPE;\n }\n }\n }\n }\n }\n });\n return false;\n }\n\n levelChanged(id: number, level: number) {\n for (let game of this.gamesToPlan) {\n if (game.id == id) {\n game.level = level;\n break;\n }\n }\n }\n\n setsChanged(id: number, sets: number) {\n for (let game of this.gamesToPlan) {\n if (game.id == id) {\n //game.sets = sets;\n break;\n }\n }\n }\n\n saveSettings() {\n let days = new Array();\n for (let i = 0; i < 7; i++) {\n if (this.choosenDays[i]) {\n days.push(i);\n }\n }\n let planningSettingsExercises = new Array();\n for (let game of this.gamesToPlan) {\n let planningSettingsExercise = {\n level: game.level,\n sets: game.sets,\n repetitions: game.repetitions,\n measureSatAndPulse: game.satAndPulse,\n vasBreath: game.breathVAS,\n vasEffort: game.effortVAS,\n CR10: game.breathScale,\n RPE: game.effortScale,\n activityDbName: game.game.dbName,\n };\n planningSettingsExercises.push(planningSettingsExercise);\n }\n let body = {\n fromDate: this.fromDate.getTime(),\n untilDate: this.untilDate.getTime(),\n daysInWeek: days,\n planningSettingsExercises: planningSettingsExercises\n }\n this.dataservice.setPlanningSettings(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.snackBar.open('Sparade inställningar för ' + this.dataservice.patient, 'Sparat', { duration: 4500 });\n }\n });\n }\n\n chooseDay(day: number) {\n if (day == 7) {\n this.choosenDays = new Array(8).fill(!this.choosenDays[7]);\n return false;\n }\n this.choosenDays[7] = false;\n this.choosenDays[day] = !this.choosenDays[day];\n return false;\n }\n\n selectPreBuiltPlan() {\n this.dataservice.getPreBuiltPlan().subscribe(\n (resp) => {\n if (resp.status == 200) {\n let preBuiltPlan = resp.json();\n for (let shownGame of this.shownGames) {\n shownGame.choosen = false;\n }\n for(let activity of preBuiltPlan.selectedActivityTypes) {\n for (let shownGame of this.shownGames) {\n if (activity == shownGame.dbName) {\n shownGame.choosen = true;\n break;\n }\n }\n }\n }\n });\n }\n\n updatePreBuiltPlan() {\n let chosenGames = new Array();\n for (let shownGame of this.shownGames) {\n if (shownGame.choosen) {\n chosenGames.push(shownGame.dbName);\n }\n }\n let body = {\n selectedActivityTypes: chosenGames\n }\n this.dataservice.savePreBuiltPlan(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.snackBar.open('Uppdaterade plan', 'Sparat', { duration: 1000 });\n }\n });\n }\n\n chooseExercise(activity: any) {\n activity.choosen = !activity.choosen;\n return false;\n }\n\n popupInfo(activity: any) {\n let dialogRef = this.dialog.open(ActivityInfoDialog, {\n width: 'auto',\n data: {\n name: activity.title, picture: activity.picture, information: activity.information[0], performance: activity.information[1],\n instruction: activity.information[2], feedback: activity.information[3], repetitions: activity.information[4]\n }\n });\n return false;\n }\n\n cleanField() {\n for (let game of this.shownGames) {\n game.choosen = false;\n }\n return false;\n }\n\n goBack() {\n for (let game of this.shownGames) {\n game.choosen = false;\n }\n this.settingPage = false;\n this.myScrollContainer.nativeElement.scrollTop = 0;\n return false;\n }\n}\n\n@Component({\n selector: 'activity-info',\n templateUrl: 'activity-info.html',\n styleUrls: ['./plan-activity.component.css']\n})\nexport class ActivityInfoDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n}\n\ninterface InformationContent {\n title: string;\n information: string[];\n picture: string;\n searchParameters: string;\n benefits: string;\n choosen: boolean;\n dbName: string;\n}","module.exports = \"\\n

{{data.name}}

\\n

{{data.information}}

\\n
\\n \\n
\"","module.exports = \"\\n.discrete-button, .discrete-button:focus{\\n padding: 12px;\\n border: 1px solid black;\\n border-radius: 8px;\\n font-size: 15px;\\n background-color: white;\\n margin-left: 10px;\\n margin-right: 10px;\\n margin-top: auto;\\n margin-bottom: auto;\\n outline: none;\\n}\\n.discrete-button:hover {\\n cursor: pointer;\\n background-color: rgba(255, 255, 0, 0.3);\\n}\\n.choosen {\\n background-color: rgba(255, 255, 0, 0.3);\\n}\\n.hover-row:hover {\\n cursor: pointer;\\n color: rgba(17, 175, 253, 0.9) !important;\\n}\\n.activity-table {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n.activity-table tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n.activity-table tr:hover{\\n cursor: pointer;\\n }\\n.activity-table td, .activity-table th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n.activity-table select, .activity-table select:focus {\\n padding: 6px;\\n border-radius: 8px;\\n outline: none;\\n }\\n.textParts {\\n font-size: 15px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n text-align: left;\\n width: 100%;\\n}\\n.textParts2 {\\n font-size: 15px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n text-align: left;\\n}\\n.textParts p, .textParts b, .textParts2 p, .textParts2 b {\\n margin: 15px;\\n text-align: left;\\n}\\n.specialText {\\n display:inherit; \\n margin: 15px;\\n text-align: center;\\n font-size: 15px;\\n}\\n.my-input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n width: 200px;\\n background-color: whitesmoke;\\n}\\n.my-input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n.calender-dropdown {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px; \\n }\\n.calender-dropdown tr:first-child{\\n border-bottom: 1px solid #222;\\n display: table-row;\\n }\\n.calender-dropdown td{\\n padding: 2px;\\n font-size: 15px;\\n }\\n.calender-dropdown button {\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n width: 100%;\\n font-size: 15px;\\n color: inherit; \\n cursor: inherit; \\n }\\n.ring {\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.marked {\\n background-color: purple !important;\\n color: white !important;\\n border: 1px solid;\\n border-radius: 10px;\\n border-color: #222 !important;\\n }\\n.month-label {\\n display: -ms-flexbox;\\n display: flex; \\n -ms-flex-pack: center; \\n justify-content: center;\\n text-align: center; \\n vertical-align: middle;\\n height: 60px;\\n line-height: 60px;\\n background-color: rgba(17, 175, 253, 0.3);\\n width: auto !important;\\n border: none !important; \\n }\\n.month-label md-icon {\\n line-height: inherit;\\n margin-left: 20px;\\n margin-right: 20px; \\n }\\n.myDatePicker {\\n text-align: left; \\n}\\n.myDatePicker input {\\n width: 165px;\\n}\\n.myDatePicker md-icon {\\n width: 22px;\\n height: 22px;\\n vertical-align: middle;\\n font-size: 22px;\\n}\\n.myDatePicker:hover {\\n cursor: pointer;\\n}\\n.mat-input-infix {\\n padding: .3em 0 !important;\\n}\\n.iconDatePicker {\\n border-bottom: 1px solid #222;\\n}\\n.custom-day {\\n text-align: center;\\n padding: 0.185rem 0.25rem;\\n display: inline-block;\\n height: 2rem;\\n width: 2rem;\\n}\\n.custom-day.focused {\\n background-color: #e6e6e6;\\n}\\n.custom-day.range, .custom-day:hover {\\n background-color: rgb(2, 117, 216);\\n color: white;\\n}\\n.custom-day.faded {\\n background-color: rgba(2, 117, 216, 0.5);\\n}\\n.custom-day.today {\\n background-color: rgba(252, 172, 67, 1);\\n color: white;\\n}\\n.custom-day.weekday-chosen {\\n background-color: rgba(2, 117, 216, 0.75);\\n}\\n.custom-day.today-weekday-chosen {\\n background-color: rgba(252, 172, 67, 0.5);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wbGFuLWFzc2Vzc21lbnQvcGxhbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsYUFBYTtBQUNqQjtBQUNBO0lBQ0ksZUFBZTtJQUNmLHdDQUF3QztBQUM1QztBQUVBO0lBQ0ksd0NBQXdDO0FBQzVDO0FBQ0E7SUFDSSxlQUFlO0lBQ2YseUNBQXlDO0FBQzdDO0FBQ0E7SUFDSSx1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLGVBQWU7SUFDZixVQUFVO0lBQ1Ysa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixzQkFBOEI7UUFBOUIsOEJBQThCO0lBQzlCLGNBQWM7SUFDZCxtQkFBbUI7RUFDckI7QUFDQTtJQUNFLDZCQUE2QjtJQUM3QixrQkFBa0I7RUFDcEI7QUFDQTtJQUNFLGVBQWU7RUFDakI7QUFDQTtJQUNFLDRCQUE0QjtJQUM1QixhQUFhO0VBQ2Y7QUFDQTtJQUNFLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsYUFBYTtFQUNmO0FBR0E7SUFDRSxlQUFlO0lBQ2YsMkJBQW9CO0lBQXBCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsV0FBVztBQUNmO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsMkJBQW9CO0lBQXBCLG9CQUFvQjtJQUNwQixnQkFBZ0I7QUFDcEI7QUFFQTtJQUNJLFlBQVk7SUFDWixnQkFBZ0I7QUFDcEI7QUFHQTtJQUNJLGVBQWU7SUFDZixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGVBQWU7QUFDbkI7QUFFQTtJQUNJLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWiw0QkFBNEI7QUFDaEM7QUFDQTtJQUNJLGdDQUFnQztBQUNwQztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QixlQUFlO0lBQ2YsVUFBVTtJQUNWLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysc0JBQThCO1FBQTlCLDhCQUE4QjtJQUM5QixjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0FBQ0E7SUFDRSw2QkFBNkI7SUFDN0Isa0JBQWtCO0VBQ3BCO0FBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtBQUVBO0lBQ0UseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixTQUFTO0lBQ1QsV0FBVztJQUNYLGVBQWU7SUFDZixjQUFjO0lBQ2QsZUFBZTtFQUNqQjtBQUNBO0lBQ0UsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQiw2QkFBNkI7RUFDL0I7QUFDQTtJQUNFLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFDdkIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQiw2QkFBNkI7RUFDL0I7QUFFQTtJQUNFLG9CQUFhO0lBQWIsYUFBYTtJQUNiLHFCQUF1QjtRQUF2Qix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLHlDQUF5QztJQUN6QyxzQkFBc0I7SUFDdEIsdUJBQXVCO0VBQ3pCO0FBQ0E7TUFDSSxvQkFBb0I7TUFDcEIsaUJBQWlCO01BQ2pCLGtCQUFrQjtFQUN0QjtBQUVBO0lBQ0UsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSxZQUFZO0FBQ2hCO0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixlQUFlO0FBQ25CO0FBQ0E7SUFDSSxlQUFlO0FBQ25CO0FBRUE7SUFDSSwwQkFBMEI7QUFDOUI7QUFHQTtJQUNJLDZCQUE2QjtBQUNqQztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDckIsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxrQ0FBa0M7RUFDbEMsWUFBWTtBQUNkO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLHVDQUF1QztFQUN2QyxZQUFZO0FBQ2Q7QUFDQTtFQUNFLHlDQUF5QztBQUMzQztBQUNBO0VBQ0UseUNBQXlDO0FBQzNDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wbGFuLWFzc2Vzc21lbnQvcGxhbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi5kaXNjcmV0ZS1idXR0b24sIC5kaXNjcmV0ZS1idXR0b246Zm9jdXN7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5kaXNjcmV0ZS1idXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjMpO1xufVxuXG4uY2hvb3NlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC4zKTtcbn1cbi5ob3Zlci1yb3c6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuOSkgIWltcG9ydGFudDtcbn1cbi5hY3Rpdml0eS10YWJsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tbGVmdDogMSU7ICBcbiAgICB3aWR0aDogOTglO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAycHg7XG4gIH1cbiAgLmFjdGl2aXR5LXRhYmxlIHRyOmZpcnN0LWNoaWxke1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBncmF5O1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgfVxuICAuYWN0aXZpdHktdGFibGUgdHI6aG92ZXJ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC5hY3Rpdml0eS10YWJsZSB0ZCwgLmFjdGl2aXR5LXRhYmxlIHRoIHtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cbiAgLmFjdGl2aXR5LXRhYmxlIHNlbGVjdCwgLmFjdGl2aXR5LXRhYmxlIHNlbGVjdDpmb2N1cyB7XG4gICAgcGFkZGluZzogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cblxuICAudGV4dFBhcnRzIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbn1cbi50ZXh0UGFydHMyIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHRQYXJ0cyBwLCAudGV4dFBhcnRzIGIsIC50ZXh0UGFydHMyIHAsIC50ZXh0UGFydHMyIGIge1xuICAgIG1hcmdpbjogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5cbi5zcGVjaWFsVGV4dCB7XG4gICAgZGlzcGxheTppbmhlcml0OyBcbiAgICBtYXJnaW46IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLm15LWlucHV0IHsgICAgXG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLC40Mik7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XG59XG4ubXktaW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNjkxNkI2O1xufVxuXG4uY2FsZW5kZXItZHJvcGRvd24ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luLWxlZnQ6IDElOyAgXG4gICAgd2lkdGg6IDk4JTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBib3JkZXItc3BhY2luZzogMnB4OyAgICBcbiAgfVxuICAuY2FsZW5kZXItZHJvcGRvd24gdHI6Zmlyc3QtY2hpbGR7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICB9XG4gIC5jYWxlbmRlci1kcm9wZG93biB0ZHtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG5cbiAgLmNhbGVuZGVyLWRyb3Bkb3duIGJ1dHRvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lOjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0OyBcbiAgICBjdXJzb3I6IGluaGVyaXQ7IFxuICB9XG4gIC5yaW5nIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlci1jb2xvcjogIzIyMiAhaW1wb3J0YW50O1xuICB9XG4gIC5tYXJrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHB1cnBsZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjIyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubW9udGgtbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgIFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjMpO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7ICAgIFxuICB9XG4gIC5tb250aC1sYWJlbCBtZC1pY29uIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IFxuICB9XG5cbiAgLm15RGF0ZVBpY2tlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgICAgXG59XG5cbi5teURhdGVQaWNrZXIgaW5wdXQge1xuICAgIHdpZHRoOiAxNjVweDtcbn1cblxuLm15RGF0ZVBpY2tlciBtZC1pY29uIHtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDIycHg7XG59XG4ubXlEYXRlUGlja2VyOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXQtaW5wdXQtaW5maXgge1xuICAgIHBhZGRpbmc6IC4zZW0gMCAhaW1wb3J0YW50O1xufVxuXG5cbi5pY29uRGF0ZVBpY2tlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG59XG5cbi5jdXN0b20tZGF5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjE4NXJlbSAwLjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMnJlbTtcbiAgd2lkdGg6IDJyZW07XG59XG4uY3VzdG9tLWRheS5mb2N1c2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cbi5jdXN0b20tZGF5LnJhbmdlLCAuY3VzdG9tLWRheTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyLCAxMTcsIDIxNik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5jdXN0b20tZGF5LmZhZGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyLCAxMTcsIDIxNiwgMC41KTtcbn1cbi5jdXN0b20tZGF5LnRvZGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTIsIDE3MiwgNjcsIDEpO1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3VzdG9tLWRheS53ZWVrZGF5LWNob3NlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMiwgMTE3LCAyMTYsIDAuNzUpO1xufVxuLmN1c3RvbS1kYXkudG9kYXktd2Vla2RheS1jaG9zZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MiwgMTcyLCA2NywgMC41KTtcbn0iXX0= */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Planera aktiviteter

\\n

Välj användare först!

\\n
\\n

I listan nedan finns alla aktuella bedömningstester som kan planeras i Alkit eSense-systemen. Markera alla\\n aktiviteter i\\n listan som ska planeras för den valda användaren. Klicka därefter på \\\"planera\\\"-knappen längst ner på sidan\\n för\\n att komma till inställningssidan. Mer information om aktiviteten fås genom att klicka på informationsikonen\\n för\\n övningen.\\n

\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NamnSyfteInformation
\\n \\n {{act.name}}{{act.benefits}}\\n info\\n
\\n
\\n
\\n

Valda aktiviteter

\\n \\n {{game.name}}\\n \\n\\n

Välj datum och dagar

\\n \\n \\n \\n \\n {{ date.day }}\\n \\n \\n
\\n \\n {{day}}\\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\"","import { Component, OnInit, Inject, ViewChild, ElementRef, Injectable} from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { GameInformationService } from '../../services/game-information.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport {NgbDate, NgbCalendar, NgbDatepickerI18n, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';\nimport Utils from '../utils';\n\nconst I18N_VALUES = {\n 'se': {\n weekdays: ['Må', 'Ti', 'On', 'To', 'Fr', 'Lö', 'Sö'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Juni', 'Juli', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n }\n // other languages you would support\n};\n\n// Define a service holding the language. You probably already have one if your app is i18ned. Or you could also\n// use the Angular LOCALE_ID value\n@Injectable()\nexport class I18n {\n language = 'se';\n}\n\n// Define custom service providing the months and weekdays translations\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\n@Component({\n selector: 'app-plan-assessment',\n templateUrl: './plan-assessment.component.html',\n styleUrls: ['./plan-assessment.component.css']\n})\nexport class PlanAssessmentComponent implements OnInit {\n @ViewChild('scroller', { static: true }) private myScrollContainer: ElementRef;\n newMessage: boolean = false;\n showWarning: boolean = false;\n\n settingPage: boolean = false;\n allGames: any[] = new Array();\n choosenGames: any[];\n days: string[] = [\"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\", \"Sön\", \"Alla\"];\n choosenDays: boolean[] = new Array(8).fill(false);\n set: number = 2;\n repetioner: number = 10;\n level: number = 3;\n measureSatAndPul: boolean = false;\n performVasBreath: boolean = false;\n performVasEffort: boolean = false;\n performRpe: boolean = false;\n performCR10: boolean = false;\n\n calendarContent: any[];\n calenderWeeks1: any[];\n calenderWeeks2: any[];\n month: string;\n monthNumber: number;\n yearNumber: number;\n currentMonth: number;\n currentYear: number;\n startDate: string;\n endDate: string;\n startMonth: string;\n endMonth: string;\n fromDate: Date;\n untilDate: Date;\n today: Date;\n mObs;\n\n hoveredDate: NgbDate; // NgbDate is a date for the calendar\n model: NgbDateStruct; \n defaultDaySpan: number = 14;\n\n constructor(private dataservice: DataserviceService, private router: Router, private gi: GameInformationService,\n private dialog: MatDialog, public snackBar: MatSnackBar, private mhs: MessageHandlerService, calendar: NgbCalendar) {\n this.fromDate = Utils.NgbDateToJSDate(calendar.getToday());\n this.untilDate = Utils.NgbDateToJSDate(calendar.getNext(calendar.getToday(), 'd', this.defaultDaySpan));\n }\n\n ngOnInit() {\n this.allGames = this.gi.assessmentVersions;\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n }\n\n onDateSelection(ngbDate: NgbDate) {\n let date = Utils.NgbDateToJSDate(ngbDate);\n if (!this.fromDate && !this.untilDate) {\n this.fromDate = date;\n } else if (this.fromDate && !this.untilDate && ngbDate.after(Utils.JSDateToNgbDate(this.fromDate))) {\n this.untilDate = date;\n } else {\n this.untilDate = null;\n this.fromDate = date;\n }\n }\n\n isHovered(date: NgbDate) {\n return this.fromDate && !this.untilDate && this.hoveredDate && date.after(Utils.JSDateToNgbDate(this.fromDate)) \n && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n return date.after(Utils.JSDateToNgbDate(this.fromDate)) && date.before(Utils.JSDateToNgbDate(this.untilDate));\n }\n\n isRange(date: NgbDate) {\n return date.equals(Utils.JSDateToNgbDate(this.fromDate)) || date.equals(Utils.JSDateToNgbDate(this.untilDate)) || this.isInside(date) || this.isHovered(date);\n }\n\n isWeekdayChosen(date: NgbDate) {\n let jsDate = Utils.NgbDateToJSDate(date);\n if (this.choosenDays[7]) return true;\n let dayNumber = jsDate.getDay();\n if (dayNumber == 0) dayNumber =7;\n dayNumber--;\n return this.choosenDays[dayNumber]\n }\n\n isToday(date: NgbDate) {\n var todayDate = new Date();\n if(date.day == todayDate.getDate()\n && date.month == (todayDate.getMonth() + 1)\n && date.year == todayDate.getFullYear()) {\n return true;\n }\n return false;\n }\n\n scheduleActivities() {\n let assessmentActivities = new Array();\n for (let activity of this.choosenGames) {\n assessmentActivities = assessmentActivities.concat(activity);\n }\n this.sendPlanToDB(assessmentActivities, \"NONE\");\n }\n\n private sendPlanToDB(activities: any[], position: string) {\n let names = new Array();\n for (let activity of activities) {\n names.push(activity.dbName);\n }\n let days = new Array();\n for (let i = 0; i < 7; i++) {\n if (this.choosenDays[i]) {\n days.push(i + 1);\n }\n }\n let settings = {\n level: 0,\n sets: 1,\n repetitions: 0,\n positionType: position\n }\n let body = {\n activityName: names,\n scheduledFrom: this.fromDate.getTime(),\n scheduledUntil: this.untilDate.getTime(),\n daysOfWeek: days,\n settings: settings,\n variant: \"ASSESSMENT\",\n }\n this.dataservice.scheduleActivity(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.snackBar.open('Övningar planerade!', 'Sparat', { duration: 4500 });\n this.goBack();\n }\n });\n }\n\n setupSettingPage() {\n if (this.showWarning) {\n this.snackBar.open('Du måste välja en användare först!', 'ERROR', { duration: 4500 });\n return false;\n }\n this.choosenGames = new Array();\n for (let game of this.allGames) {\n if (game.choosen) {\n this.choosenGames = this.choosenGames.concat(game);\n }\n }\n if (this.choosenGames.length < 1) {\n this.snackBar.open('Du måste välja minst en övning att planera!', 'ERROR', { duration: 4500 });\n return false;\n }\n this.settingPage = true;\n this.myScrollContainer.nativeElement.scrollTop = 0;\n return false;\n }\n\n chooseDay(day: number) {\n if (day == 7) {\n this.choosenDays = new Array(8).fill(!this.choosenDays[7]);\n return false;\n }\n this.choosenDays[7] = false;\n this.choosenDays[day] = !this.choosenDays[day];\n return false;\n }\n\n chooseExercise(activity: any) {\n activity.choosen = !activity.choosen;\n return false;\n }\n\n popupInfo(activity: any) {\n let dialogRef = this.dialog.open(AssessmentInfoDialog, {\n width: 'auto',\n data: {\n name: activity.name, picture: activity.picture, information: activity.description\n }\n });\n return false;\n }\n\n cleanField() {\n for (let game of this.allGames) {\n game.choosen = false;\n }\n return false;\n }\n\n goBack() {\n for (let game of this.allGames) {\n game.choosen = false;\n }\n this.settingPage = false;\n this.myScrollContainer.nativeElement.scrollTop = 0;\n return false;\n }\n}\n\n@Component({\n selector: 'assessment-info',\n templateUrl: 'assessment-info.html',\n styleUrls: ['./plan-assessment.component.css']\n})\nexport class AssessmentInfoDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n}","module.exports = \".print-button{\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n font-size: 20px; \\n margin-top: 20px;\\n margin-bottom: 40px;\\n }\\n\\n .print-button:hover{\\n color: rgba(17, 175, 253, 0.9);\\n cursor: pointer;\\n }\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IsU0FBUztJQUNULGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VBQ3JCOztFQUVBO0lBQ0UsOEJBQThCO0lBQzlCLGVBQWU7RUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnByaW50LWJ1dHRvbntcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmU6MDtcbiAgICBmb250LXNpemU6IDIwcHg7ICBcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIH1cblxuICAucHJpbnQtYnV0dG9uOmhvdmVye1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxNzUsIDI1MywgMC45KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH0iXX0= */\"","module.exports = \"
\\n \\n
\\n
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Qr-kod

\\n

Välj användare först!

\\n

Detta är den aktiva användarens personliga QR-kod som används vid inloggning på Alkit eSense Station. Visa\\n upp koden framför\\n Kinect-sensorn för att komma åt den personliga träningssida.

\\n
\\n \\n
\\n \\n
\\n
\\n
\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\n\n@Component({\n selector: 'app-qr-code',\n templateUrl: './qr-code.component.html',\n styleUrls: ['./qr-code.component.css']\n})\nexport class QrCodeComponent implements OnInit {\n qrURL: string;\n maximized: boolean = false;\n showWarning: boolean = false;\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService) { }\n\n ngOnInit() {\n this.qrURL = this.dataservice.url;\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n }\n\n print(): void {\n let printContents, popupWin;\n printContents = document.getElementById('print-section').innerHTML;\n popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\n popupWin.document.open();\n popupWin.document.write(`\n \n \n QR-kod\n \n \n ${printContents}\n `\n );\n popupWin.document.close();\n }\n\n switchView(max: boolean) {\n this.maximized = max;\n return false;\n }\n}\n","module.exports = \"\\n\\n.activity-table {\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n .activity-table tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n .activity-table td, .activity-table th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n .activity-table select, .activity-table select:focus {\\n padding: 6px;\\n border-radius: 8px;\\n outline: none;\\n }\\n .background-blue {\\n background-color: rgba(149, 195, 255, 0.3) !important;\\n }\\n .myToolBar{\\n margin-top: 8px;\\n display: -ms-flexbox;\\n display: flex; \\n -ms-flex-pack: center; \\n justify-content: center;\\n text-align: center; \\n vertical-align: middle;\\n }\\n .transperent-button, .transperent-button:focus{\\n border-color: transparent;\\n background-color: transparent;\\n outline:0;\\n font-size: 20px; \\n -ms-flex-line-pack: center; \\n align-content: center;\\n }\\n .black{\\n color: black;\\n }\\n .gray, .gray:focus {\\n color: gray;\\n }\\n .size40{\\n font-size: 40px;\\n height: 40px !important;\\n width: 40px !important; \\n }\\n .explaination {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center; \\n line-height: 30px;\\n vertical-align: middle;\\n }\\n .explaination span {\\n font-size: 15px;\\n margin-left: 10px;\\n margin-right: 20px;\\n }\\n .discrete-button, .discrete-button:focus{\\n padding: 12px;\\n border: 1px solid black;\\n border-radius: 8px;\\n background-color: transparent; \\n font-size: 15px;\\n background-color: white;\\n margin: 10px;\\n outline: none; \\n}\\n .discrete-button:hover {\\n cursor: pointer;\\n background-color: rgba(99, 118, 201, 0.53);\\n}\\n .custom-day {\\n text-align: center;\\n padding: 0.185rem 0.25rem;\\n display: inline-block;\\n height: 2rem;\\n width: 2rem;\\n}\\n .custom-day.focused {\\n background-color: #e6e6e6;\\n}\\n .custom-day.range, .custom-day:hover {\\n background-color: rgb(2, 117, 216);\\n color: white;\\n}\\n .custom-day.faded {\\n background-color: rgba(2, 117, 216, 0.5);\\n}\\n .custom-day.today {\\n background-color: rgba(252, 172, 67, 1);\\n color: white;\\n}\\n .custom-day.weekday-chosen {\\n background-color: rgba(2, 117, 216, 0.75);\\n}\\n .custom-day.today-weekday-chosen {\\n background-color: rgba(252, 172, 67, 0.5);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXN1bHQtb3ZlcnZpZXcvcmVzdWx0LW92ZXJ2aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQTtJQUNJLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsZUFBZTtJQUNmLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHNCQUE4QjtRQUE5Qiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsNkJBQTZCO0lBQzdCLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsNEJBQTRCO0lBQzVCLGFBQWE7RUFDZjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixhQUFhO0VBQ2Y7RUFDQTtJQUNFLHFEQUFxRDtFQUN2RDtFQUVBO0lBQ0UsZUFBZTtJQUNmLG9CQUFhO0lBQWIsYUFBYTtJQUNiLHFCQUF1QjtRQUF2Qix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLHNCQUFzQjtFQUN4QjtFQUVBO0lBQ0UseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixTQUFTO0lBQ1QsZUFBZTtJQUNmLDBCQUFxQjtRQUFyQixxQkFBcUI7RUFDdkI7RUFFQTtJQUNFLFlBQVk7RUFDZDtFQUNBO0lBQ0UsV0FBVztFQUNiO0VBQ0E7SUFDRSxlQUFlO0lBQ2YsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtFQUN4QjtFQUVBO0lBQ0Usb0JBQWE7SUFBYixhQUFhO0lBQ2IscUJBQXVCO1FBQXZCLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsc0JBQXNCO0VBQ3hCO0VBRUE7SUFDRSxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGtCQUFrQjtFQUNwQjtFQUVGO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGFBQWE7QUFDZjtFQUNBO0VBQ0UsZUFBZTtFQUNmLDBDQUEwQztBQUM1QztFQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDckIsWUFBWTtFQUNaLFdBQVc7QUFDYjtFQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0VBQ0E7RUFDRSxrQ0FBa0M7RUFDbEMsWUFBWTtBQUNkO0VBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7RUFDQTtFQUNFLHVDQUF1QztFQUN2QyxZQUFZO0FBQ2Q7RUFDQTtFQUNFLHlDQUF5QztBQUMzQztFQUNBO0VBQ0UseUNBQXlDO0FBQzNDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXN1bHQtb3ZlcnZpZXcvcmVzdWx0LW92ZXJ2aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuLmFjdGl2aXR5LXRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1sZWZ0OiAxJTsgIFxuICAgIHdpZHRoOiA5OCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDtcbiAgfVxuICAuYWN0aXZpdHktdGFibGUgdHI6Zmlyc3QtY2hpbGR7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIGdyYXk7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICB9XG4gIC5hY3Rpdml0eS10YWJsZSB0ZCwgLmFjdGl2aXR5LXRhYmxlIHRoIHtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cbiAgLmFjdGl2aXR5LXRhYmxlIHNlbGVjdCwgLmFjdGl2aXR5LXRhYmxlIHNlbGVjdDpmb2N1cyB7XG4gICAgcGFkZGluZzogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIC5iYWNrZ3JvdW5kLWJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQ5LCAxOTUsIDI1NSwgMC4zKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm15VG9vbEJhcntcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgZGlzcGxheTogZmxleDsgXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyAgXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC50cmFuc3BlcmVudC1idXR0b24sIC50cmFuc3BlcmVudC1idXR0b246Zm9jdXN7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lOjA7XG4gICAgZm9udC1zaXplOiAyMHB4OyAgXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmJsYWNre1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxuICAuZ3JheSwgLmdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiBncmF5O1xuICB9XG4gIC5zaXplNDB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7ICBcbiAgfVxuXG4gIC5leHBsYWluYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgIFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuZXhwbGFpbmF0aW9uIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cbiAgXG4uZGlzY3JldGUtYnV0dG9uLCAuZGlzY3JldGUtYnV0dG9uOmZvY3Vze1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgXG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMTBweDtcbiAgb3V0bGluZTogbm9uZTsgIFxufVxuLmRpc2NyZXRlLWJ1dHRvbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5OSwgMTE4LCAyMDEsIDAuNTMpO1xufVxuXG4uY3VzdG9tLWRheSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMC4xODVyZW0gMC4yNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDJyZW07XG4gIHdpZHRoOiAycmVtO1xufVxuLmN1c3RvbS1kYXkuZm9jdXNlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG59XG4uY3VzdG9tLWRheS5yYW5nZSwgLmN1c3RvbS1kYXk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMiwgMTE3LCAyMTYpO1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3VzdG9tLWRheS5mYWRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMiwgMTE3LCAyMTYsIDAuNSk7XG59XG4uY3VzdG9tLWRheS50b2RheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUyLCAxNzIsIDY3LCAxKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmN1c3RvbS1kYXkud2Vla2RheS1jaG9zZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIsIDExNywgMjE2LCAwLjc1KTtcbn1cbi5jdXN0b20tZGF5LnRvZGF5LXdlZWtkYXktY2hvc2VuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTIsIDE3MiwgNjcsIDAuNSk7XG59Il19 */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Resultat

\\n

Välj användare först!

\\n

Här presenteras resultatet för alla utförda aktiviter för varje månad.

\\n
\\n \\n (as) = Ansträngning\\n \\n (af) = Andfåddhet\\n
\\n
\\n\\n
\\n
\\n

Från

\\n

Till

\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{ date.day }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
DatumAktivitetNivåRepetioner / tidPositionSpeltidPoäng / MaxVASAnsträngning skalaAndfåddhet skala
{{act.date}}\\n \\n   {{act.name}}{{act.level}}{{act.repetitions}}{{act.position}}{{act.duration}}{{act.score}}{{act.vas}}{{act.rpe}}{{act.cr10}}
\\n \\n \\n
\\n
\\n
\\n
\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { GameInformationService } from '../../services/game-information.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport {\n NgbDatepicker,\n NgbInputDatepicker,\n NgbDateStruct,\n NgbCalendar,\n NgbDate,\n NgbDateAdapter,\n NgbDateParserFormatter,\n NgbDatepickerI18n\n} from '@ng-bootstrap/ng-bootstrap';\n\nconst equals = (one: NgbDateStruct, two: NgbDateStruct) =>\n one && two && two.year === one.year && two.month === one.month && two.day === one.day;\n\nconst before = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day < two.day : one.month < two.month : one.year < two.year;\n\nconst after = (one: NgbDateStruct, two: NgbDateStruct) =>\n !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\n ? false : one.day > two.day : one.month > two.month : one.year > two.year;\n\n@Component({\n selector: 'app-result-overview',\n templateUrl: './result-overview.component.html',\n styleUrls: ['./result-overview.component.css']\n})\nexport class ResultOverviewComponent implements OnInit {\n newMessage: boolean = false;\n showWarning: boolean = false;\n ascendingDate: boolean = true;\n ascendingName: boolean = false;\n\n activities: any[];\n mObs;\n\n fromDate: NgbDate;\n untilDate: NgbDate;\n defaultDaySpanBefore: number = 7;\n defaultDaySpanAfter: number = 7;\n prevMonth: NgbDate;\n hoveredDate: NgbDateStruct;\n model: any;\n\n constructor(private dataservice: DataserviceService, private router: Router, private gi: GameInformationService,\n private mhs: MessageHandlerService, calendar: NgbCalendar) {\n this.fromDate = calendar.getPrev(calendar.getToday(), 'd', this.defaultDaySpanBefore);\n this.untilDate = calendar.getNext(calendar.getToday(), 'd', this.defaultDaySpanAfter);\n }\n\n ngOnInit() { \n this.showWarning = this.dataservice.patient == \"Ingen vald\"; \n if (!this.showWarning) {\n let now = new Date();\n this.setupCompleteTable();\n }\n }\n\n isHovered = date =>\n this.fromDate && !this.untilDate && this.hoveredDate && after(date, this.fromDate) && before(date, this.hoveredDate)\nisInside = date => after(date, this.fromDate) && before(date, this.untilDate);\nisFrom = date => equals(date, this.fromDate);\nisTo = date => equals(date, this.untilDate);\n\nNgbDateToNgbDateStruct(ngbDate: NgbDate) {\n const date: NgbDateStruct = { year: ngbDate.year, month: ngbDate.month, day: ngbDate.day };\n return date;\n}\n\nNgbDateStructToNgbDate(ngbDateStruct: NgbDateStruct) {\n return new NgbDate(ngbDateStruct.year, ngbDateStruct.month, ngbDateStruct.day);\n}\n\nonDateSelectionActivityFrom(date: NgbDateStruct) {\n this.fromDate = this.NgbDateStructToNgbDate(date);\n this.setupCompleteTable();\n}\n\nonDateSelectionActivityTo(date: NgbDateStruct) {\n this.untilDate = this.NgbDateStructToNgbDate(date);\n this.setupCompleteTable();\n}\n\nNgbDateToJSDate(ngbDate: NgbDate) {\n let date = new Date();\n date.setDate(ngbDate.day);\n date.setMonth(ngbDate.month - 1);\n date.setFullYear(ngbDate.year);\n return date;\n}\n\nJSDateToNgbDate(date: Date) {\n if (date == null) return null;\n let ngbDate = new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\n return ngbDate;\n}\n\nisRange(date: NgbDate) {\n return date.equals(this.fromDate) || date.equals(this.untilDate) || this.isInside(date) || this.isHovered(date);\n}\n\nisToday(date: NgbDate) {\n var todayDate = new Date();\n if (date.day == todayDate.getDate()\n && date.month == (todayDate.getMonth() + 1)\n && date.year == todayDate.getFullYear()) {\n return true;\n }\n return false;\n}\n\ngetJSFromDate() {\n return new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day, 0, 0, 0, 0);\n}\n\ngetJSUntilDate() {\n return new Date(this.untilDate.year, this.untilDate.month - 1, this.untilDate.day, 23, 59, 59, 99);\n}\n\n sortTableDates() {\n this.ascendingDate = !this.ascendingDate;\n if (this.ascendingDate) {\n this.activities.sort(function (a, b) {\n return a.scheduledFor - b.scheduledFor;\n });\n }\n else {\n this.activities.sort(function (a, b) {\n return b.scheduledFor - a.scheduledFor;\n });\n }\n }\n\n sortTableNames() {\n this.ascendingName = !this.ascendingName;\n if (this.ascendingName) {\n this.activities.sort(function (a, b) {\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n }\n else {\n this.activities.sort(function (a, b) {\n if (a.name > b.name) return -1;\n if (a.name < b.name) return 1;\n return 0;\n });\n }\n }\n\n sortTablePositions() {\n this.ascendingName = !this.ascendingName;\n if (this.ascendingName) {\n this.activities.sort(function (a, b) {\n if (a.position < b.position) return -1;\n if (a.position > b.position) return 1;\n return 0;\n });\n }\n else {\n this.activities.sort(function (a, b) {\n if (a.position > b.position) return -1;\n if (a.position < b.position) return 1;\n return 0;\n });\n }\n }\n\n setupCompleteTable() {\n\n let body = {\n from: this.getJSFromDate().getTime(),\n until: this.getJSUntilDate().getTime(),\n variant: \"ALL\"\n };\n\n this.dataservice.getActivityResultsBetweenDates(body).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.activities = new Array();\n let now = new Date();\n let startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n let data = resp.json();\n data.sort(function (a, b) {\n return a.scheduledFor - b.scheduledFor;\n });\n let prevDay : Date;\n let isDateColored : boolean = false;\n for (let act of data) {\n let tmp = new Date(act.scheduledFor);\n if (prevDay != null) {\n if (this.isDateDifferent(prevDay, tmp)) {\n isDateColored = !isDateColored;\n }\n }\n prevDay = tmp;\n let day = tmp.getFullYear() + \"-\" + (tmp.getMonth() + 1) + \"-\" + tmp.getDate();\n for (let res of act.result) {\n let vas = \"--\";\n let rpeVal = \"--\";\n let cr10Val = \"--\";\n if (res.vasBreath != 0) {\n vas = res.vasBreath + \" (af)\";\n } else if (res.vasEffort != 0) {\n vas = res.vasEffort + \" (as)\";\n }\n if (res.rpe != 0) {\n rpeVal = res.rpe;\n } \n if (res.cr10 != 0) {\n cr10Val = res.cr10;\n }\n let scoreString;\n if (act.type == \"DriveForestExercise\") {\n scoreString = res.distanceTravelledMeters / 1000 + \" km\";\n } else if (res.possibleScore == 0) {\n scoreString = res.score + \"/\" + act.settings.repetitions\n } else {\n scoreString = res.score + \"/\" + res.possibleScore;\n }\n this.activities.push({\n date: day,\n name: this.gi.gameName(act.type),\n level: act.settings.level == 0 ? \"--\" : act.settings.level,\n sets: act.settings.sets,\n repetitions: act.settings.repetitions == 0 ? \"--\" : act.settings.repetitions,\n position: this.gi.positionType(act.settings.positionType),\n score: scoreString,\n duration: act.settings.repetitions == 0 ? '--' : this.gameTime((res.activityEnded - res.activityStarted) / 1000),\n vas: vas,\n rpe: rpeVal,\n cr10: cr10Val,\n scheduledFor: act.scheduledFor,\n isDateColored: isDateColored,\n picture: this.gi.getPictureForGameName(this.gi.gameName(act.type))\n });\n }\n }\n }\n }\n );\n }\n\n // Does not compare hours!\n isDateDifferent(date1:Date, date2:Date) {\n if (date1.getFullYear() != date2.getFullYear() \n || date1.getMonth() != date2.getMonth()\n || date1.getDate() != date2.getDate()) {\n return true;\n }\n return false;\n }\n\n private gameTime(time: number): string {\n if (time / 60 > 1) {\n return Math.round(time / 60).toString() + ' min ' + Math.round(time % 60) + ' s';\n }\n else if (time <= 0) {\n return \"--\";\n }\n return Math.round(time) + ' s';\n }\n}\n","module.exports = \"\\n.textField {\\n width: 80%;\\n padding-left: 10%;\\n padding-right: 10%;\\n display: -ms-flexbox;\\n display: flex;\\n margin-bottom: 20px; \\n}\\n.textField p {\\n margin: 0px;\\n margin-right: 10px; \\n font-size: inherit;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n}\\n.textField input { \\n border: none;\\n outline: none;\\n font-size: inherit;\\n border-bottom: 1px solid rgba(0,0,0,.42);\\n padding-bottom: 5px;\\n text-align: center;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n width: stretch;\\n}\\n.textField input:focus {\\n border-bottom: 2px solid #6916B6;\\n}\\n.textField select, .textField select:focus {\\n width:220px !important;\\n padding: 10px;\\n border: 1px solid rgba(0,0,0,.42);\\n border-radius: 8px;\\n outline: none;\\n text-align: center;\\n}\\n.delete:hover {\\n color: red !important;\\n}\\n.dialogButton {\\n padding: 10px;\\n border: 1px solid black;\\n border-radius: 8px;\\n background-color: transparent; \\n}\\n.dialogButton:hover {\\n cursor: pointer;\\n color: blue;\\n}\\n.blue-txt{\\n color:blue;\\n}\\n.blue-txt:hover{\\n cursor: pointer;\\n}\\n.choosen {\\n background-color: rgba(17, 175, 253, 0.3);\\n}\\n.example-form {\\n min-width: 150px;\\n max-width: 400px;\\n width: 100%;\\n margin-left: auto;\\n margin-right: auto;\\n margin-top: 30px;\\n }\\n.example-full-width {\\n width: 100%;\\n margin-bottom: 20px;\\n }\\n.discrete-button, .discrete-button:focus{\\n padding: 12px;\\n border: 1px solid black;\\n border-radius: 8px;\\n background-color: transparent; \\n font-size: 15px;\\n background-color: white;\\n margin: 30px;\\n outline: none;\\n min-width: 100px;\\n}\\n.discrete-button:hover {\\n cursor: pointer;\\n background-color: rgba(17, 175, 253, 0.5);\\n}\\n.pat-list, .calendar-table{\\n background: transparent;\\n border-collapse: collapse;\\n margin-left: 1%; \\n width: 98%;\\n text-align: center;\\n font-size: 15px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n display: table;\\n border-spacing: 2px;\\n }\\n.pat-list tr:first-child{\\n border-bottom: 3px solid gray;\\n display: table-row;\\n }\\n.pat-list tr:not(:first-child):hover{\\n cursor: pointer;\\n }\\n.pat-list td, .pat-list th {\\n border-bottom:1px solid gray;\\n padding: 10px;\\n }\\n.number-button{\\n padding-top: 8px;\\n padding-bottom: 8px;\\n padding-right: 13px;\\n padding-left: 13px;\\n border: none;\\n font-size: 15px;\\n background-color: transparent;\\n outline: none; \\n margin-top: auto;\\n margin-bottom: auto;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content; \\n }\\n.number-button-circle{\\n padding-top: 8px;\\n padding-bottom: 8px;\\n padding-right: 13px;\\n padding-left: 13px;\\n border: 1px solid #00d0ff;\\n border-radius: 30px;\\n font-size: 15px;\\n background-color: transparent;\\n color: deeppink;\\n outline: none; \\n margin-top: auto;\\n margin-bottom: auto;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content; \\n }\\n.question-box {\\n width: 100%;\\n display: -ms-flexbox;\\n display: flex; \\n padding-bottom: 5px;\\n padding-top: 5px;\\n }\\n.question-box p {\\n -ms-flex-preferred-size: 0;\\n flex-basis: 0;\\n -ms-flex: 1 1 0px;\\n flex: 1 1 0;\\n margin-top: auto;\\n margin-bottom: auto;\\n text-align: left;\\n }\\n.marked-answer {\\n color: #e80094;\\n text-align: left;\\n margin-left: 5%;\\n margin-bottom: 20px;\\n }\\n.unmarked-answer {\\n text-align: left;\\n margin-left: 5%;\\n margin-bottom: 20px;\\n }\\ninput[type=\\\"file\\\"] {\\n display: none;\\n}\\n.custom-file-upload {\\n display: inline-block;\\n padding: 6px 12px;\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLG9CQUFhO0lBQWIsYUFBYTtJQUNiLG1CQUFtQjtBQUN2QjtBQUNBO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsMEJBQWtCO0lBQWxCLHVCQUFrQjtJQUFsQixrQkFBa0I7QUFDdEI7QUFDQTtJQUNJLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLDZCQUFjO0lBQWQscUJBQWM7SUFBZCxjQUFjO0FBQ2xCO0FBQ0E7SUFDSSxnQ0FBZ0M7QUFDcEM7QUFDQTtJQUNJLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IsaUNBQWlDO0lBQ2pDLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2Isa0JBQWtCO0FBQ3RCO0FBRUE7SUFDSSxxQkFBcUI7QUFDekI7QUFFQTtJQUNJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLDZCQUE2QjtBQUNqQztBQUVBO0lBQ0ksZUFBZTtJQUNmLFdBQVc7QUFDZjtBQUVBO0lBQ0ksVUFBVTtBQUNkO0FBQ0E7SUFDSSxlQUFlO0FBQ25CO0FBRUE7SUFDSSx5Q0FBeUM7QUFDN0M7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0VBQ2xCO0FBRUE7SUFDRSxXQUFXO0lBQ1gsbUJBQW1CO0VBQ3JCO0FBRUE7SUFDRSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQiw2QkFBNkI7SUFDN0IsZUFBZTtJQUNmLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osYUFBYTtJQUNiLGdCQUFnQjtBQUNwQjtBQUNBO0lBQ0ksZUFBZTtJQUNmLHlDQUF5QztBQUM3QztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QixlQUFlO0lBQ2YsVUFBVTtJQUNWLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysc0JBQThCO1FBQTlCLDhCQUE4QjtJQUM5QixjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0FBQ0E7SUFDRSw2QkFBNkI7SUFDN0Isa0JBQWtCO0VBQ3BCO0FBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0E7SUFDRSw0QkFBNEI7SUFDNUIsYUFBYTtFQUNmO0FBRUE7SUFDRSxnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGVBQWU7SUFDZiw2QkFBNkI7SUFDN0IsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsMkJBQW1CO0lBQW5CLHdCQUFtQjtJQUFuQixtQkFBbUI7RUFDckI7QUFFQTtJQUNFLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZiw2QkFBNkI7SUFDN0IsZUFBZTtJQUNmLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLDJCQUFtQjtJQUFuQix3QkFBbUI7SUFBbkIsbUJBQW1CO0VBQ3JCO0FBRUE7SUFDRSxXQUFXO0lBQ1gsb0JBQWE7SUFBYixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGdCQUFnQjtFQUNsQjtBQUNBO0lBQ0UsMEJBQWE7UUFBYixhQUFhO0lBQ2IsaUJBQVc7UUFBWCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7RUFDbEI7QUFFQTtJQUNFLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLG1CQUFtQjtFQUNyQjtBQUVBO0lBQ0UsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixtQkFBbUI7RUFDckI7QUFFQTtJQUNFLGFBQWE7QUFDakI7QUFDQTtJQUNJLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsZUFBZTtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLnRleHRGaWVsZCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyBcbn1cbi50ZXh0RmllbGQgcCB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyBcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuLnRleHRGaWVsZCBpbnB1dCB7ICAgIFxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNDIpO1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiBzdHJldGNoO1xufVxuLnRleHRGaWVsZCBpbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM2OTE2QjY7XG59XG4udGV4dEZpZWxkIHNlbGVjdCwgLnRleHRGaWVsZCBzZWxlY3Q6Zm9jdXMge1xuICAgIHdpZHRoOjIyMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC40Mik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZGVsZXRlOmhvdmVyIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5kaWFsb2dCdXR0b24ge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAgICBcbn1cblxuLmRpYWxvZ0J1dHRvbjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiBibHVlO1xufVxuXG4uYmx1ZS10eHR7XG4gICAgY29sb3I6Ymx1ZTtcbn1cbi5ibHVlLXR4dDpob3ZlcntcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaG9vc2VuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNzUsIDI1MywgMC4zKTtcbn1cblxuLmV4YW1wbGUtZm9ybSB7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICB9XG4gIFxuICAuZXhhbXBsZS1mdWxsLXdpZHRoIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLmRpc2NyZXRlLWJ1dHRvbiwgLmRpc2NyZXRlLWJ1dHRvbjpmb2N1c3tcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgXG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbjogMzBweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIG1pbi13aWR0aDogMTAwcHg7XG59XG4uZGlzY3JldGUtYnV0dG9uOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuNSk7XG59XG5cbi5wYXQtbGlzdCwgLmNhbGVuZGFyLXRhYmxle1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luLWxlZnQ6IDElOyAgXG4gICAgd2lkdGg6IDk4JTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBib3JkZXItc3BhY2luZzogMnB4O1xuICB9XG4gIC5wYXQtbGlzdCB0cjpmaXJzdC1jaGlsZHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgZ3JheTtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gIH1cbiAgLnBhdC1saXN0IHRyOm5vdCg6Zmlyc3QtY2hpbGQpOmhvdmVye1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAucGF0LWxpc3QgdGQsIC5wYXQtbGlzdCB0aCB7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG5cbiAgLm51bWJlci1idXR0b257XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEzcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTogbm9uZTsgIFxuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50OyBcbiAgfVxuICBcbiAgLm51bWJlci1idXR0b24tY2lyY2xle1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxM3B4O1xuICAgIHBhZGRpbmctbGVmdDogMTNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBkMGZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBkZWVwcGluaztcbiAgICBvdXRsaW5lOiBub25lOyAgXG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7IFxuICB9XG4gIFxuICAucXVlc3Rpb24tYm94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gIH1cbiAgLnF1ZXN0aW9uLWJveCBwIHtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIFxuICAubWFya2VkLWFuc3dlciB7XG4gICAgY29sb3I6ICNlODAwOTQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogNSU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuICBcbiAgLnVubWFya2VkLWFuc3dlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogNSU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLmN1c3RvbS1maWxlLXVwbG9hZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","module.exports = \"
\\n \\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Ändra inställningar

\\n
\\n

Lösenord:

\\n

Fyll i uppgifterna nedan och klicka därefter på spara för att ändra ditt lösenord.

\\n
\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n
\\n \\n
{{warning}}
\\n\\n

Ändra profilbild:

\\n
\\n \\n \\n
{{warning}}
\\n
\\n
\\n
\"","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { SideContentService } from '../../side-content/side-content.service';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.css']\n})\nexport class SettingsComponent implements OnInit {\n @ViewChild('fileInput', { static: true }) fileInput;\n menuIcon: string;\n title: string = \"Välj användare\";\n username: string;\n patient: string;\n newMessage: boolean = false;\n patients: any[];\n p: number = 1;\n mObs;\n showPatients: boolean = true;\n current_pas: string;\n new_pas: string;\n repeate_pas: string;\n incorrect: boolean = false;\n incorrectFormat: boolean = false;\n warning: string;\n base64textString: string;\n fileName: string = 'Ladda upp bild';\n showWarning: boolean = false;\n\n constructor(private dataservice: DataserviceService, private router: Router, private dialog: MatDialog,\n public snackBar: MatSnackBar, private mhs: MessageHandlerService, private sideContentService: SideContentService) { }\n\n ngOnInit() {\n }\n\n changePassword() {\n this.incorrect = false;\n this.incorrectFormat = false;\n if (!this.current_pas || this.current_pas == 'undefined' || !this.new_pas || this.new_pas == 'undefined' ||\n !this.repeate_pas || this.repeate_pas == 'undefined') {\n this.warning = \"Fyll i alla fälten!\";\n this.incorrect = true;\n return;\n }\n else if (this.current_pas != this.dataservice.identification) {\n this.warning = \"Felaktigt lösenord!\";\n this.incorrect = true;\n return;\n }\n else if (this.new_pas != this.repeate_pas) {\n this.warning = \"Upprepningen stämmer inte överens!\";\n this.incorrect = true;\n return;\n }\n else if (this.new_pas.length < 4 || this.new_pas.length > 16 || this.new_pas.includes(':') || this.new_pas.includes('.')\n || this.new_pas.includes(',') || this.new_pas.includes('?') || this.new_pas.includes(';')) {\n this.warning = \"Lösenordet måste vara mellan 4-16 tecken och inte innehålla .,:;? tecken\";\n this.incorrect = true;\n return;\n }\n\n let settings = {\n password: this.new_pas\n };\n this.dataservice.changePassword(settings).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.mhs.changePassword(settings).subscribe(\n (resp) => {\n if (resp.status == 200) {\n this.dataservice.identification = this.new_pas;\n this.new_pas = '';\n this.current_pas = '';\n this.repeate_pas = '';\n this.showPatients = true;\n this.snackBar.open('Lösenordet är ändrat', 'Sparat', { duration: 4500 });\n }\n else {\n this.snackBar.open('Något gick fel, försök igen eller kontakta support!', 'Error', { duration: 4500 });\n let redo = {\n password: this.dataservice.identification\n };\n this.dataservice.changePassword(redo).subscribe(\n (resp) => {\n });\n }\n });\n }\n else {\n this.snackBar.open('Något gick fel, försök igen eller kontakta support!', 'Error', { duration: 4500 });\n }\n });\n }\n\n fileChosen() {\n let fileBrowser = this.fileInput.nativeElement;\n if (fileBrowser.files && fileBrowser.files[0]) {\n this.fileName = fileBrowser.files[0].name;\n }\n else {\n this.fileName = 'Ladda upp bild';\n }\n }\n\n uploadPicture() {\n this.incorrect = false;\n this.incorrectFormat = false;\n let fileBrowser = this.fileInput.nativeElement;\n if (fileBrowser.files && fileBrowser.files[0]) {\n var file = fileBrowser.files[0];\n if (file.name.includes('png') || file.name.includes('jpeg') || file.name.includes('jpg')) {\n var reader = new FileReader();\n reader.onload = this._handleReaderLoaded.bind(this);\n reader.readAsBinaryString(fileBrowser.files[0]);\n }\n else {\n this.incorrectFormat = true;\n this.warning = 'Felaktigt format! Välj en png eller jpeg bild för uppladdning.'\n }\n }\n }\n\n _handleReaderLoaded(readerEvt) {\n var binaryString = readerEvt.target.result;\n this.base64textString = btoa(binaryString);\n\n if (this.byteCount(this.base64textString) > 16 * 1000000) { // Check that the base64 encoded string is < 16MB. \n this.incorrectFormat = true;\n this.warning = 'Bilden är för stor för uppladdning.';\n return;\n }\n\n var body = {\n picture: this.base64textString\n };\n this.mhs.changeImage(body).subscribe(\n (resp) => {\n if (resp.status != 200) {\n this.incorrectFormat = true;\n this.warning = 'Något gick fel vid uppladdning. Försök igen eller kontakta support.'\n }\n else {\n this.dataservice.userImg = body.picture;\n this.sideContentService.updateImage(body.picture);\n }\n }\n );\n }\n\n byteCount(s) {\n return encodeURI(s).split(/%..|./).length - 1;\n }\n}\n","import {\n NgbDatepicker,\n NgbInputDatepicker,\n NgbDateStruct,\n NgbCalendar,\n NgbDate,\n NgbDateAdapter,\n NgbDateParserFormatter,\n NgbDatepickerI18n\n} from '@ng-bootstrap/ng-bootstrap';\n\nconst I18N_VALUES = {\n 'se': {\n weekdays: ['Må', 'Ti', 'On', 'To', 'Fr', 'Lö', 'Sö'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Juni', 'Juli', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n }\n // other languages you would support\n};\n\nconst NmbrOfDaysExerciseStillDoable : number = 1;\n\nexport default class Utils {\n\n static GetNmbrOfDaysExerciseStillDoable() {\n return NmbrOfDaysExerciseStillDoable;\n }\n\n static NgbDateToNgbDateStruct(ngbDate: NgbDate) {\n const date: NgbDateStruct = { year: ngbDate.year, month: ngbDate.month, day: ngbDate.day };\n return date;\n }\n\n static NgbDateStructToNgbDate(ngbDateStruct: NgbDateStruct) {\n return new NgbDate(ngbDateStruct.year, ngbDateStruct.month, ngbDateStruct.day);\n }\n\n static NgbDateToJSDate(ngbDate: NgbDate) {\n let date = new Date();\n date.setDate(ngbDate.day);\n date.setMonth(ngbDate.month - 1);\n date.setFullYear(ngbDate.year);\n return date;\n }\n\n static JSDateToNgbDate(date: Date) {\n if (date == null) return null;\n let ngbDate = new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\n return ngbDate;\n }\n\n}","module.exports = \"\\n\\n.message-field {\\n width: 75%;\\n height: 100%;\\n border-right: 2px solid #222;\\n display: block;\\n overflow-y: auto; \\n}\\n\\n.contact-field {\\n width:25%;\\n height: inherit;\\n}\\n\\n.contact-container{\\n border-bottom:1px solid gray; \\n height:50px; \\n vertical-align: middle; \\n line-height: 50px; \\n font-size: 15px;\\n}\\n\\n.contact-container:hover{\\n cursor: pointer;\\n background-color: rgba(48, 51, 51, 0.3);\\n}\\n\\n.message-title {\\n background-color: rgba(17, 175, 253, 0.3);\\n border-bottom: 2px solid #222;\\n height: 60px;\\n font-size: 30px;\\n line-height: 60px;\\n vertical-align: middle;\\n}\\n\\nselect {\\n border: none;\\n border-bottom: 1px solid rgba(0,0,0,.67);\\n font-size: 20px;\\n margin-top: 10px;\\n padding: 9px 0px 8px 0px; \\n color: rgba(0,0,0,.67);\\n background-color: whitesmoke;\\n}\\n\\n.nice-button, .nice-button:focus {\\n border: 1px solid #222;\\n border-radius: 4px;\\n background-color: transparent;\\n outline: none;\\n margin: 35px;\\n padding: 15px;\\n font-size: 15px;\\n}\\n\\n.nice-button:hover {\\n cursor: pointer;\\n background-color: rgba(17, 175, 253, 0.9);\\n}\\n\\n.msg_button, .msg_button:focus{\\n vertical-align: middle;\\n text-align: center;\\n font-size: 15px;\\n background-color: transparent;\\n border: none;\\n padding: 10px;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n height:50px; \\n line-height: 24px;\\n -ms-flex-pack: center;\\n justify-content: center;\\n outline: none;\\n margin-bottom: 50px;\\n}\\n\\n.msg_button:hover {\\n cursor: pointer;\\n color: rgba(17, 175, 253, 0.9);\\n}\\n\\n.msg_button md-icon, .icon {\\n line-height: 24px !important;\\n vertical-align: middle !important;\\n margin-right: 5px; \\n}\\n\\nh3 md-icon {\\n width: 28px !important;\\n height: 28px !important;\\n font-size: 28px !important;\\n vertical-align: bottom !important;\\n}\\n\\nh3 md-icon:hover {\\n color: rgba(17, 175, 253, 0.9) !important;\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy92aWRlby92aWRlby5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7SUFDSSxVQUFVO0lBQ1YsWUFBWTtJQUNaLDRCQUE0QjtJQUM1QixjQUFjO0lBQ2QsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksU0FBUztJQUNULGVBQWU7QUFDbkI7O0FBQ0E7SUFDSSw0QkFBNEI7SUFDNUIsV0FBVztJQUNYLHNCQUFzQjtJQUN0QixpQkFBaUI7SUFDakIsZUFBZTtBQUNuQjs7QUFDQTtJQUNJLGVBQWU7SUFDZix1Q0FBdUM7QUFDM0M7O0FBRUE7SUFDSSx5Q0FBeUM7SUFDekMsNkJBQTZCO0lBQzdCLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLFlBQVk7SUFDWix3Q0FBd0M7SUFDeEMsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQix3QkFBd0I7SUFDeEIsc0JBQXNCO0lBQ3RCLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsNkJBQTZCO0lBQzdCLGFBQWE7SUFDYixZQUFZO0lBQ1osYUFBYTtJQUNiLGVBQWU7QUFDbkI7O0FBQ0E7SUFDSSxlQUFlO0lBQ2YseUNBQXlDO0FBQzdDOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsNkJBQTZCO0lBQzdCLFlBQVk7SUFDWixhQUFhO0lBQ2IsMkJBQW9CO0lBQXBCLG9CQUFvQjtJQUNwQixXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLHFCQUF1QjtRQUF2Qix1QkFBdUI7SUFDdkIsYUFBYTtJQUNiLG1CQUFtQjtBQUN2Qjs7QUFDQTtJQUNJLGVBQWU7SUFDZiw4QkFBOEI7QUFDbEM7O0FBQ0E7SUFDSSw0QkFBNEI7SUFDNUIsaUNBQWlDO0lBQ2pDLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLHlDQUF5QztJQUN6QyxlQUFlO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy92aWRlby92aWRlby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbi5tZXNzYWdlLWZpZWxkIHtcbiAgICB3aWR0aDogNzUlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMjIyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93LXk6IGF1dG87IFxufVxuXG4uY29udGFjdC1maWVsZCB7XG4gICAgd2lkdGg6MjUlO1xuICAgIGhlaWdodDogaW5oZXJpdDtcbn1cbi5jb250YWN0LWNvbnRhaW5lcntcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5OyBcbiAgICBoZWlnaHQ6NTBweDsgXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgXG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7IFxuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5jb250YWN0LWNvbnRhaW5lcjpob3ZlcntcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0OCwgNTEsIDUxLCAwLjMpO1xufVxuXG4ubWVzc2FnZS10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyMjI7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5zZWxlY3Qge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNjcpO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDlweCAwcHggOHB4IDBweDsgICAgXG4gICAgY29sb3I6IHJnYmEoMCwwLDAsLjY3KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlO1xufVxuXG4ubmljZS1idXR0b24sIC5uaWNlLWJ1dHRvbjpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzIyMjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBtYXJnaW46IDM1cHg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG4ubmljZS1idXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNzUsIDI1MywgMC45KTtcbn1cblxuLm1zZ19idXR0b24sIC5tc2dfYnV0dG9uOmZvY3Vze1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBoZWlnaHQ6NTBweDsgICAgXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuLm1zZ19idXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogcmdiYSgxNywgMTc1LCAyNTMsIDAuOSk7XG59XG4ubXNnX2J1dHRvbiBtZC1pY29uLCAuaWNvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IFxufVxuXG5oMyBtZC1pY29uIHtcbiAgICB3aWR0aDogMjhweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMjhweCAhaW1wb3J0YW50O1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDtcbn1cblxuaDMgbWQtaWNvbjpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE3NSwgMjUzLCAwLjkpICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufSJdfQ== */\"","module.exports = \"
\\n \\n
\\n
ReactProfessional
\\n\\n
\\n {{menuIcon}}\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n \\n
\\n
\\n
\\n account_circle\\n
{{username}}\\n
\\n

Vald användare: {{patient}}

\\n

Nya meddelanden: {{newMsgNr}}

\\n
\\n \\n \\n \\n
\\n
\\n
\\n

Videosamtal

\\n

Här kan du kommunicera med dina kontakter via video-samtal. Välj en kontakt i listan nedan och klicka därefter på\\n \\\"starta video-samtal\\\". Observera att det behövs en webb-kamera eller liknande kopplad till din enhet för att skicka\\n video.\\n

\\n\\n \\n
\\n \\n \\n
\\n

{{errorMsg}}

\\n
\\n

Min video\\n visibility\\n

\\n

Min video\\n visibility_off\\n

\\n \\n
\\n

{{currentContact.displayName}}

\\n \\n
\\n \\n
\\n
\\n
\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DataserviceService } from '../../services/dataservice.service';\nimport { MessageHandlerService } from '../../services/message-handler.service';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { MatSnackBar } from '@angular/material';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'app-video',\n templateUrl: './video.component.html',\n styleUrls: ['./video.component.css']\n})\nexport class VideoComponent implements OnInit {\n menuIcon: string;\n username: string;\n newMessage: boolean = false;\n plannedQuest: boolean = false;\n newMsgNr: number = 0;\n\n contacts: Contact[];\n\n @ViewChild('myVideo', { static: true }) myVideo: any;\n @ViewChild('mySnap', { static: true }) mySnap: any;\n snap: any;\n obs1;\n obs2;\n canvas: HTMLCanvasElement;\n errorMsg: string;\n\n webcamStarted: boolean = false;\n videoSession: boolean = false;\n showMyVideo: boolean = true;\n currentContact: Contact;\n current: string = \"Välj kontakt\";\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService,\n private http: Http, public snackBar: MatSnackBar) { }\n\n ngOnInit() {\n // standard node module\n /*var execFile = child.execFile;\n\n // this launches the executable and returns immediately\n var child = execFile(\"../../services/webconfero/WebConferoTcp.exe\", [\"arg1\", \"arg2\"],\n function (error, stdout, stderr) {\n // This callback is invoked once the child terminates\n // You'd want to check err/stderr as well!\n console.log(\"Here is the complete output of the program: \");\n console.log(stdout);\n console.log(stderr);\n });*/\n\n if (this.dataservice.username == 'undefined' || !this.dataservice.username) {\n this.router.navigate(['']);\n return;\n }\n this.dataservice.pingServer().subscribe(\n (resp) => {\n if (resp && (resp == 401 || resp == 503)) {\n this.router.navigate(['']);\n return;\n }\n });\n this.username = this.dataservice.username;\n this.repeatedCheckIfNewMessages();\n this.setupContactList();\n\n this.canvas = document.createElement('canvas');\n this.canvas.width = 320;\n this.canvas.height = 240;\n //this.startWebcam();\n this.shouldPerformAssessment();\n }\n\n private shouldPerformAssessment() {\n this.dataservice.getTodaysActivities().subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let data = resp.json();\n for (let entry of data) {\n if (entry.type == \"CATAssessment\" && !entry.completed) {\n this.plannedQuest = true;\n }\n }\n }\n });\n }\n\n private repeatedCheckIfNewMessages() {\n this.mhs.getNewMessages().subscribe(\n (resp) => {\n if (resp._body.includes(\"message\")) {\n this.newMessage = true;\n let data = resp.json();\n this.newMsgNr = data.length;\n }\n else {\n this.newMsgNr = 0;\n }\n });\n this.mhs.getNewMessagesPeriodically(15000).subscribe(\n (resp) => {\n if (resp._body.includes(\"message\")) {\n this.newMessage = true;\n let data = resp.json();\n this.newMsgNr = data.length;\n }\n else {\n this.newMsgNr = 0;\n }\n });\n }\n\n private setupContactList() {\n this.mhs.getAllContactsFromChatService().subscribe(\n (resp) => {\n if (resp && resp.status == 200) {\n let allContacts = resp.json();\n this.contacts = new Array();\n for (let entry of allContacts) {\n this.contacts.push({\n id: entry.contactId,\n instance: entry.instance,\n name: entry.name,\n sessionId: entry.sessionId,\n displayName: entry.name + \" (\" + entry.instance + \")\",\n isPatient: entry.isPatient\n });\n }\n\n let c = this.mhs.getCurrentContact();\n if (c) {\n for (let contact of this.contacts) {\n if (c.displayName == contact.displayName) {\n this.current = c.sessionId;\n }\n }\n this.mhs.setCurrentContact(null);\n }\n }\n });\n }\n\n private startWebcam() {\n this.myVideo.nativeElement.width = 320;\n this.myVideo.nativeElement.height = 240;\n let video = this.myVideo.nativeElement;\n let constraints = {\n audio: false,\n video: true\n };\n let popup = this.snackBar;\n navigator.mediaDevices.getUserMedia(constraints)\n .then(function (stream) {\n let videoTracks = stream.getVideoTracks();\n console.log('Got stream with constraints:', constraints);\n console.log('Using video device: ' + videoTracks[0].label);\n stream.onremovetrack = function () {\n console.log('Stream ended');\n };\n video.src = window.URL.createObjectURL(stream);\n video.srcObject = stream;\n video.play();\n })\n .catch(function (error) {\n if (error.name === 'ConstraintNotSatisfiedError') {\n console.log('The resolution is not supported by your device.');\n popup.open('Upplösningen stöds inte av din enhet', 'ERROR', { duration: 4500 });\n } else if (error.name === 'PermissionDeniedError') {\n console.log('Permissions have not been granted to use your camera and ' +\n 'microphone, you need to allow the page access to your devices in ' +\n 'order for the demo to work.');\n popup.open('Tillstånd har inte beviljats för att använda din kamera', 'ERROR', { duration: 4500 });\n }\n else {\n console.log('getUserMedia error: ' + error.name, error);\n popup.open(error, 'ERROR', { duration: 4500 });\n }\n });\n }\n\n private startMilesApp() {\n this.obs1 = this.startMiles().subscribe(\n (data) => {\n if (data.status == 200) {\n this.handleApplicationCalls();\n }\n });\n }\n private handleApplicationCalls() {\n /*this.obs1 = this.getVideo().subscribe(\n (data) => {\n if (data.status == 200) {\n this.mySnap.nativeElement.src = data._body;\n //this.snap = 'data:image/png;base64,' + data._body;\n }\n });*/\n\n this.obs2 = this.setVideo().subscribe(\n (data) => {\n });\n }\n startMiles = () => {\n let body = {\n sessionName: 'Alkit1', //this.currentContact.sessionId,\n width: 320,\n height: 240,\n fps: 10\n };\n return this.http.post('http://localhost:6677/startMiles', body)\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n stopMiles = () => {\n let body = \"\";\n return this.http.post('http://localhost:6677/endCall', body)\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n getVideo = () => {\n let body = \"{}\";\n let headers = new Headers({ 'Content-Type': 'undefined' });\n let options = new RequestOptions({ headers: headers, withCredentials: false });\n return Observable\n .interval(100)\n .flatMap((i) => this.http.post(\"http://localhost:6677/getVideo\", body, options)\n .map(this.data)\n .catch((error: any) => Observable.of(error)));\n }\n setVideo = () => {\n return Observable\n .interval(1000)\n .flatMap((i) => this.http.post(\"http://localhost:6677/setVideo\", this.getCurrentImage())\n .map(this.data)\n .catch((error: any) => Observable.of(error)));\n }\n private getCurrentImage(): any {\n var ctx = this.canvas.getContext('2d');\n ctx.drawImage(this.myVideo.nativeElement, 0, 0, 320, 240);\n var data = this.canvas.toDataURL('image/jpeg');\n /*this.canvas.getContext('2d').drawImage(this.myVideo.nativeElement, 0, 0, 320, 240);\n var data = canvas.toDataURL('image/jpeg');*/\n\n //var data = ctx.getImageData(0, 0, 320, 240).data;\n //console.log(ctx.getImageData(0, 0, 320, 240).data.length);\n //console.log(data);\n //var test = [].slice.call(data);\n return data; //[].slice.call(ctx.getImageData(0, 0, 320, 240).data);\n }\n private data(res: Response) {\n return res;\n }\n\n testWebcam() {\n if (this.webcamStarted) {\n return false;\n }\n this.myVideo.nativeElement.width = 320;\n this.myVideo.nativeElement.height = 240;\n this.webcamStarted = true;\n let video = this.myVideo.nativeElement;\n let constraints = {\n audio: false,\n video: true\n };\n let errorMsg = this.errorMsg;\n let webcamStarted = this.webcamStarted;\n let popup = this.snackBar;\n navigator.mediaDevices.getUserMedia(constraints)\n .then(function (stream) {\n let videoTracks = stream.getVideoTracks();\n console.log('Got stream with constraints:', constraints);\n console.log('Using video device: ' + videoTracks[0].label);\n video.src = window.URL.createObjectURL(stream);\n video.srcObject = stream;\n video.play();\n })\n .catch(function (error) {\n errorMsg = 'Kunde inte starta webb-kameran!';\n webcamStarted = false;\n video.width = 0;\n video.height = 0;\n if (error.name === 'ConstraintNotSatisfiedError') {\n console.log('The resolution is not supported by your device.');\n popup.open('Upplösningen stöds inte av din enhet', 'ERROR', { duration: 4500 });\n } else if (error.name === 'PermissionDeniedError') {\n console.log('Permissions have not been granted to use your camera and ' +\n 'microphone, you need to allow the page access to your devices in ' +\n 'order for the demo to work.');\n popup.open('Tillstånd har inte beviljats för att använda din kamera', 'ERROR', { duration: 4500 });\n }\n else {\n console.log('getUserMedia error: ' + error.name, error);\n popup.open(error, 'ERROR', { duration: 4500 });\n }\n });\n }\n\n hideMyVideo(hide: boolean) {\n if (hide) {\n this.showMyVideo = false;\n this.myVideo.nativeElement.width = 0;\n this.myVideo.nativeElement.height = 0;\n }\n else {\n this.showMyVideo = true;\n this.myVideo.nativeElement.width = 320;\n this.myVideo.nativeElement.height = 240;\n }\n }\n\n startConferoSession() {\n if (this.current == \"Välj kontakt\") {\n this.errorMsg = \"Välj en kontakt i listan först!\";\n return false;\n }\n this.errorMsg = 'undefined';\n for (let c of this.contacts) {\n if (c.sessionId == this.current) {\n this.currentContact = c;\n }\n }\n this.videoSession = true;\n if (!this.webcamStarted) {\n this.startWebcam();\n }\n this.startMilesApp();\n }\n\n endCall() {\n if (this.videoSession) {\n this.videoSession = false;\n this.myVideo.nativeElement.width = 0;\n this.myVideo.nativeElement.height = 0;\n this.myVideo.nativeElement.srcObject.getVideoTracks()[0].stop();\n this.myVideo.nativeElement.srcObject = null;\n this.stopMiles().subscribe(\n (data) => {\n this.obs1.unsubscribe();\n this.obs2.unsubscribe();\n this.obs1 = null;\n this.obs2 = null;\n });\n }\n else if (this.webcamStarted && this.myVideo.nativeElement.srcObject) {\n this.myVideo.nativeElement.srcObject.getVideoTracks()[0].stop();\n }\n }\n\n snapShot() {\n var canvas = document.createElement('canvas');\n canvas.width = 320;\n canvas.height = 240;\n var ctx = canvas.getContext('2d');\n\n ctx.drawImage(this.myVideo.nativeElement, 0, 0, 320, 240);\n var dataURI = canvas.toDataURL('image/jpeg');\n\n this.mySnap.nativeElement.src = dataURI;\n }\n\n hover(name: string) {\n this.menuIcon = name;\n return false;\n }\n loadPage(path: string) {\n this.endCall();\n this.router.navigate([path]);\n return false;\n }\n logout() {\n this.endCall();\n this.dataservice.logOutCall().subscribe(\n (resp) => {\n this.router.navigate(['']);\n });\n return false;\n }\n\n downloadXmlFileForPatient() {\n \n }\n\n}\n\n\ninterface Contact {\n id: number;\n instance: string;\n name: string;\n displayName: string;\n sessionId: string;\n isPatient: boolean;\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21lbnUvbWVudS5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n
Alkit eSense Professional
\\n\\n
\\n {{menuIcon}}\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\"","import { Component, Input, OnInit } from '@angular/core';\nimport { DataserviceService } from '../services/dataservice.service';\nimport { Router } from '@angular/router';\nimport { MessageHandlerService } from '../services/message-handler.service';\nimport { MatSnackBar } from '@angular/material';\n\n@Component({\n selector: 'menu-input',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css']\n})\nexport class MenuComponent implements OnInit {\n @Input()\n menuIcon;\n\n @Input()\n side: number;\n \n showWarning: boolean;\n newMessage: boolean = false;\n mObs;\n\n constructor(private router: Router, private dataservice: DataserviceService, private mhs : MessageHandlerService, public snackBar: MatSnackBar) { }\n\n ngOnInit(){\n this.showWarning = this.dataservice.patient == \"Ingen vald\";\n if (this.side != 4){\n this.repeatedCheckIfNewMessages();\n } \n }\n\n ngOnDestroy(){ \n if (this.mObs && this.side!=4){\n this.mObs.unsubscribe();\n }\n }\n\n private repeatedCheckIfNewMessages() {\n this.mhs.getNewMessages().subscribe(\n (resp) => {\n if (resp._body.includes(\"message\")) {\n this.newMessage = true;\n }\n });\n this.mObs = this.mhs.getNewMessagesPeriodically(15000).subscribe(\n (resp) => {\n if (resp._body.includes(\"message\")) {\n this.newMessage = true;\n }\n });\n }\n\n hover(name: string) {\n this.menuIcon = name;\n return false;\n }\n\n loadPage(path: string) {\n this.router.navigate([path]);\n return false;\n }\n\n logout() {\n this.dataservice.logOutCall().subscribe(\n (resp) => {\n this.router.navigate(['']);\n });\n return false;\n }\n\n downloadXmlFileForPatient() {\n if (this.dataservice.patient == \"Ingen vald\") {\n this.snackBar.open('Du måste först välja en patient', 'Error', { duration: 4500 });\n return false;\n }\n\n this.dataservice.downloadExcelFileForPatient().subscribe( \n response => {\n var contentDisposition= response.headers.get('content-disposition');\n var fileName = contentDisposition.substring(20, contentDisposition.length);\n let downloadLink = document.createElement('a');\n let blob:any = new Blob([response.blob()], { type: 'application/vnd.ms-excel' });\n downloadLink.href = window.URL.createObjectURL(blob);\n downloadLink.setAttribute('download', fileName);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n\t\t }), error => console.log('Error downloading the file'),\n () => console.info('File downloaded successfully');\n return false;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { DataserviceService } from '../services/dataservice.service';\n\n@Injectable()\nexport class CalendarService {\n calendarContent: any[];\n\n constructor(private dataservice : DataserviceService) { }\n\n setupCalender(date: Date, currentlyChoosen : Date) : any[] {\n let firstDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), 1)).getDay();\n this.calendarContent = new Array();\n\n // Fill days from previous month in gray.\n if (firstDay == 0) {\n let days = this.dataservice.daysInMonth(date.getMonth());\n for (let i = 5; i >= 0; i--) {\n this.calendarContent.push({\n day: days - i,\n thisMonth: false,\n markedDay: false,\n today: false\n });\n }\n }\n else if (firstDay > 1) {\n let days = this.dataservice.daysInMonth(date.getMonth());\n for (let i = firstDay - 2; i >= 0; i--) {\n this.calendarContent.push({\n day: days - i,\n thisMonth: false,\n markedDay: false,\n today: false,\n });\n }\n }\n\n\n // Add all days on this month\n let today = new Date();\n let days = this.dataservice.daysInMonth(date.getMonth() + 1);\n for (let j = 1; j <= days; j++) {\n this.calendarContent.push({\n day: j,\n thisMonth: true,\n today: (j == today.getDate() && date.getMonth() == today.getMonth()),\n markedDay: (j == currentlyChoosen.getDate() && date.getMonth() == currentlyChoosen.getMonth()),\n });\n }\n\n // Sum up the weeks\n let weeks = new Array();\n for (let k = 0; k < this.calendarContent.length; k += 7) {\n weeks.push({\n day1: this.calendarContent[k] || null,\n day2: this.calendarContent[k + 1] || null,\n day3: this.calendarContent[k + 2] || null,\n day4: this.calendarContent[k + 3] || null,\n day5: this.calendarContent[k + 4] || null,\n day6: this.calendarContent[k + 5] || null,\n day7: this.calendarContent[k + 6] || null\n });\n }\n return weeks;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response, ResponseContentType } from '@angular/http';\nimport { Observable } from 'rxjs/Rx';\n\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class DataserviceService {\n username: string;\n care_instance: string;\n care_unit_name: string;\n patient: string = \"Ingen vald\";\n patientObject: any;\n url: string;\n serverURL: string = \"https://kol.alkit.se/ReactServer/servlet/\";//'https://kol.alkit.se/ReactServer/servlet/'; //\"http://mandolin:4400/ReactServer/servlet/\"; //'http://localhost:8080/ReactServer/servlet/';\n // serverURL: string = \"http://kol-demo.alkit.se/ReactServer/servlet/\";\n // serverURL: string = \"http://192.168.0.174:4400/ReactServer/servlet/\";\n auth_token: string;\n identification: string;\n userImg: string = null;\n\n constructor(public http: Http) {\n }\n\n setCareUnit(unit: string){\n if (unit == \"Angered\"){\n this.care_instance = 'angered';\n } \n else if (unit == 'Skövde'){\n this.care_instance = 'skovde';\n } \n else if (unit == 'Sahlgrenska'){\n this.care_instance = 'sahlgrenska'; \n } \n else if (unit == 'Alkit'){\n this.care_instance = 'alkit';\n } \n this.care_unit_name = unit;\n }\n\n logInCall(user: string, pw: string): Observable {\n this.username = user;\n this.identification = pw;\n\n let body = {\n username: user,\n password: pw,\n instance: this.care_instance\n };\n\n // Set request header and send request.\n let headers = new Headers({ 'Access-Control-Allow-Origin': '*' });\n let options = new RequestOptions({ headers: headers });\n return this.http.post(this.serverURL + 'login', body, options)\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n logOutCall(): Observable {\n let token = this.auth_token;\n this.username = null;\n this.auth_token = null;\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': token });\n return this.http.get(this.serverURL + 'logout', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n changePassword(body: any){\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'changeUserState', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n pingServer() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'ping', { headers: headers })\n .map(this.checkStatus)\n .catch((error: any) => Observable.of(error.status));\n }\n\n findNextExercise() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'nextExerciseDate', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getResultsOfDay(variant: any) {\n let now = new Date();\n let from = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0).getTime();\n let body = JSON.stringify({\n from: from,\n until: from + (1000 * 60 * 60 * 24),\n variant: variant\n });\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'resultBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getResultsOfMonth(from: Date, until: Date, variant: string) {\n let body = {\n from: from.getTime(),\n until: until.getTime(),\n variant: variant\n };\n return this.getActivityResultsBetweenDates(body);\n }\n\n getActivityResultsBetweenDates(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'resultBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n lastReportedExerciseDate() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'lastReportedExerciseDate', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getTodaysActivities() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'todaysActivities', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getPlannedActivitiesBetweenDates(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'activitiesBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n createNewPatientUser(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'createPatientUser', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n deletePatientUser(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'deletePatientUser', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getPatientList() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'patientList', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getPatientInformation(id: number) {\n let body = {\n id: id\n };\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'getDateInformation', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getFullInformation(body: any) { \n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'fullInformation', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getStepsDataBetweenDates(body: any) { \n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'getStepsDataBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getActiveMinutesDataBetweenDates(body: any) { \n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'getActiveMinutesBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getExtremePoxValuesBetweenDates(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'getExtremePoxValuesBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getAllActivitiesThatInitiatedEditBetweenDates(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'allEditsBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n \n selectActivePatient(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'chooseActivePatient', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n scheduleActivity(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'planActivity', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getAllActivitiesBetweenDates(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'allActivitiesBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n changeSettingsOfActivities(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'changeSettings', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n deleteSingleActivity(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'deleteSingleActivity', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n deleteAllOfSameType(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'deleteAllOfSameTypeActivity', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getPlanningSettings() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'getPlanningSettings', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n setPlanningSettings(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'setPlanningSettings', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getPreBuiltPlan() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'getPreBuiltPlan', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n savePreBuiltPlan(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'setPreBuiltPlan', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getConferoSessionUrl() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.serverURL + 'conferoSession', { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n downloadExcelFileForPatient(): Observable{// TODO Detta borde fungera...\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token, 'Access-Control-Allow-Origin': '*' });\n\t\treturn this.http.post(this.serverURL + 'getDataAsExcelForPatient', this.patient, {responseType: ResponseContentType.Blob, headers: headers});\n }\n\n downloadConfero(): Observable{// TODO Detta borde fungera...\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token, 'Access-Control-Allow-Origin': '*' });\n\t\treturn this.http.post(this.serverURL + 'downloadConferoSessionFile', this.patient, {responseType: ResponseContentType.Blob, headers: headers});\n }\n\n\n // Measurments\n\n\n getDiariesFromDate(date:number) {\n let body = {\n from: date,\n until: 0,\n variant: 'ASSESSMENT'\n };\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'diariesFromDate', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n getParameterData(from: Date, until: Date) {\n let body = {\n from: Date.UTC(from.getFullYear(), from.getMonth(), from.getDate()),\n until: Date.UTC(until.getFullYear(), until.getMonth(), until.getDate(), 23, 59, 59),\n variant: \"ASSESSMENT\"\n };\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.serverURL + 'diariesBetweenDates', body, { headers: headers })\n .map(this.serverResponse)\n .catch((error: any) => Observable.of(error));\n }\n\n\n\n\n\n\n private checkStatus(res: Response) {\n let reply = res.status;\n return reply;\n }\n\n private serverResponse(res: Response) {\n return res;\n }\n\n daysInMonth(month: number): number {\n if (month == -1 || month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {\n return 31;\n }\n else if (month == 2) {\n let year = new Date().getFullYear();\n if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {\n return 29;\n }\n return 28;\n }\n return 30;\n }\n\n shortMonthName(month: number): string {\n if (month == 0) {\n return 'Jan';\n }\n else if (month == 1) {\n return 'Feb';\n }\n else if (month == 2) {\n return 'Mar';\n }\n else if (month == 3) {\n return 'Apr';\n }\n else if (month == 4) {\n return 'Maj';\n }\n else if (month == 5) {\n return 'Jun';\n }\n else if (month == 6) {\n return 'Jul';\n }\n else if (month == 7) {\n return 'Aug';\n }\n else if (month == 8) {\n return 'Sep';\n }\n else if (month == 9) {\n return 'Okt';\n }\n else if (month == 10) {\n return 'Nov';\n }\n else if (month == 11) {\n return 'Dec';\n }\n }\n\n monthName(month: number): string {\n if (month == 0) {\n return 'Januari';\n }\n else if (month == 1) {\n return 'Februari';\n }\n else if (month == 2) {\n return 'Mars';\n }\n else if (month == 3) {\n return 'April';\n }\n else if (month == 4) {\n return 'Maj';\n }\n else if (month == 5) {\n return 'Juni';\n }\n else if (month == 6) {\n return 'Juli';\n }\n else if (month == 7) {\n return 'Augusti';\n }\n else if (month == 8) {\n return 'September';\n }\n else if (month == 9) {\n return 'Oktober';\n }\n else if (month == 10) {\n return 'November';\n }\n else if (month == 11) {\n return 'December';\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class GameInformationService {\n\n constructor() { }\n\n availableBenefits: any[] = [{\n index: 1,\n name: \"Rörlighet\"\n }, \n {\n index: 2,\n name: \"Balans\"\n }, \n {\n index: 3,\n name: \"Ben\"\n }, \n {\n index: 4,\n name: \"Bål-stabilitet\"\n }, \n {\n index: 5,\n name: \"Höft\"\n },\n {\n index: 6,\n name: \"Kognitiv\"\n }, \n {\n index: 7,\n name: \"Koordination\"\n }, \n {\n index: 8,\n name: \"Styrka\"\n }, \n {\n index: 9,\n name: \"Uthållighet\"\n }, \n {\n index: 10,\n name: \"Axlar\"\n }, \n {\n index: 11,\n name: \"Armar\"\n },\n {\n index: 12,\n name: \"Vader\"\n },\n {\n index: 13,\n name: \"Framsida lår\"\n }, ];\n\n allGameInformation: InformationContent[] = [{\n title: \"Plocka bananer\",\n information: [\"Bananerna fångas ovanför huvudet växelvis med höger och vänster hand. Mängden repetitioner ökar och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger rörlighetsträning i axellederna samt stabilitetsträning för bål/rygg.\",\n \"Sitt på en stol med ryggstöd, sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna. Utgångsläge för händerna är under midjehöjd.\",\n \"Sitt eller stå med rak/sträckt rygg, indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Plocka så många bananer som möjligt växelvis med vänster och höger hand. Efter varje plockad banan måste båda händerna sänkas ner under midjan innan nästa banan dyker upp på skärmen.\",\n \"Om armen inte sträcks rakt uppåt för att plocka bananen ges instruktioner i text på skärmen och via röstkommando för att korrigera rörelsen. Vägledning ges även då användaren inte sänker händerna under midjan efter plockad banan, samt om användaren sträcker sig med motsatt hand mot bananen. I slutet av spelet presenteras den spelade nivå, snabbaste hastigheten, medelhastigheten och antalet plockade bananer i text på skärmen.\",\n \"Antal bananer som dyker upp\"],\n picture: \"assets/img/banana.png\",\n searchParameters: \"plocka bananer rörlighet armar 2d sittande stående\",\n benefits: \"Rörlighet axellederna\",\n benefitSearchIndexes: [1, 10],\n choosen: false,\n dbName: \"PickBananaExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Plocka äpplen\",\n information: [\"Äpplena fångas på sidorna om kroppen i höjd med axlarna växelvis med motsatt hand. Mängden repetitioner och avståndet från axlarna ökar, och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger rörlighetsträning i axellederna samt stabilitetsträning för bål/rygg. Om användaren står upp vid utförandet av de högre nivåerna ger övningen också benstyrka eller balans beroende på fötternas separationsavstånd.\",\n \"Sitt på en stol med ryggstöd, sitt på stol/pall utan ryggstöd eller stå upp med fötterna ihop (för balansträning) eller med längre avstånd mellan fötterna (för att träna benstyrka).\",\n \"Sitt eller stå med rak/sträckt rygg, indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Plocka så många äpplen vid sidan om kroppen att så snabbt som möjligt. Äpplena på höger sida plockas med vänster hand och äpplena på vänster sida plockas med höger hand. Mellan varje plockat äpple måste båda händerna föras tillbaka till mitten av kroppen innan nästa äpple visas.\",\n \"Vägledning ges om användaren försöker ta äpplet med fel hand. I slutet av spelet presenteras den spelade nivå, snabbaste hastigheten, medelhastigheten och antalet tagna äpplen i text på skärmen.\",\n \"Antal äpplen som dyker upp\"],\n picture: \"assets/img/apple.png\",\n searchParameters: \"plocka äpplen rörlighet armar balans 2d sittande stående\",\n benefits: \"Rörlighet axellederna, balans/benstyrka\",\n benefitSearchIndexes: [1, 10, 8, 3, 2],\n choosen: false,\n dbName: \"PickAppleExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Boxning\",\n information: [\"Slå måltavlorna med händerna. Mängden repetitioner och avståndet till måltavlorna ökar och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger rörlighetsträning i axellederna samt uthållighetsstyrka i arm/skuldermuskulaturen. \",\n \"Sitt på stol med ryggstöd, sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna. Utgångsläge för händerna är ”i försvarsläge” framför kroppen (armarna parallella).\",\n \"Sitt eller stå med rak/sträckt rygg, indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Måltavlor dyker upp på slumpmässig plats inom ett begränsat område, med lika stor mängd placerade på vänster och höger sida av skärmen. Boxa växelvis med höger och vänster hand mot målet så snabbt du kan. Efter att ha träffat målet måste båda händerna åter igen placeras i försvarsläge innan nästa måltavla visas.\",\n \"Vägledning ges om användaren sänker ner händerna eller inte håller händerna försvarsläge. I slutet av spelet presenteras den spelade nivån, den snabbaste hastigheten, medelhastigheten och antalet träffade måltavlor i text på skärmen.\",\n \"Antal mål att slå som dyker upp\"],\n picture: \"assets/img/boxing.png\",\n searchParameters: \"boxning uthållighet armar 2d sittande stående\",\n benefits: \"Rörlighet axellederna, uthållighet\",\n benefitSearchIndexes: [1, 10, 9],\n choosen: false,\n dbName: \"BoxingExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Huvud, axlar, knä & tå\",\n information: [\"Sträck båda armarna uppåt, för dem till axlarna, knäna och fötterna (underbenen) osv. Mängden repetitioner ökar och fotmarkeringen placeras längre ner för varje nivå. Övningen ger rörlighetsträning i axlar, armar, bål och höfter.\",\n \"Sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna.\",\n \"Sitt eller stå med rak/sträckt rygg, indragen haka och sänkta axlar. En röd linje är dragen mellan händerna. Förflytta händerna så att det röda sträcket hamnar inom de blå markerade områdena. Först vid huvudet, sedan vid axlarna, knäna, fötterna och så vidare. Sträck på ryggen/kroppen igen efter sista fot-markeringen.\",\n \"I slutet av spelet presenteras den spelade nivån och antalet tagna markeringar i text på skärmen.\",\n \"Antal gånger användaren övningen\"],\n picture: \"assets/img/hakt.png\",\n searchParameters: \"huvud, axlar, knä & tå rörlighet 2d sittande stående\",\n benefits: \"Rörlighet\",\n benefitSearchIndexes: [1],\n choosen: false,\n dbName: \"HsktExercice\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Sparka bollar\",\n information: [\"Sparka fotbollar i ungefär knähöjd med fötterna. Mängden repetitioner och höjdplaceringen av bollarna från marken ökar, och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger uthållighetsstyrketräning i quadricep (lårets framsida) samt stabilitetsträning för bål/rygg. Om användaren står upp vid utförandet av övningen utan stöd fås även balansträning.\",\n \"Sitt på stol med ryggstöd, sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna.\",\n \"Sitt eller stå med rak/sträckt rygg, indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Sparka med valfri fot på bollen när den dyker upp. Sparka så många bollar som möjligt och så snabbt du kan. Sätt ner fötterna på marken mellan sparkarna för att nästa boll skall dyka upp.\",\n \"Vägledning ges om användaren drastiskt förändrar positionen relativt till kameran under spelets gång. I slutet av spelet presenteras den spelade nivån, snabbaste hastigheten, medelhastigheten och antalet sparkade bollar i text på skärmen.\",\n \"Antal bollar som dyker upp\"],\n picture: \"assets/img/fotboll.png\",\n searchParameters: \"sparka bollar stabilitet uthållighetsstyrka balans 2d sittande stående\",\n benefits: \"Styrka/uthållighet framsida lår, bål-stabilitet\",\n benefitSearchIndexes: [8, 9, 4, 13],\n choosen: false,\n dbName: \"KickBallsExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Fotboll\",\n information: [\"Trixa med bollen för att hålla den levande i luften så länge som möjligt. Bollens hastighet ökar gradvis för varje nivå. Övningen ger uthållighetsstyrketräning i quadricep (lårets framsida), balansträning samt stabilitetsträning för bål/rygg. Vid längre spelsessioner fås även en del konditionsträning.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Stå med indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Håll fotbollen levande i luften så länge som möjligt genom att kicka den med knäna eller fötterna. Förflytta kroppen i sidled för att anpassa positionen efter bollens bana i luften. Sätt ner fötterna på marken mellan sparkarna.\",\n \"Vägledning ges om användaren drastiskt förändrar positionen relativt till kameran under spelets gång. I slutet av spelet presenteras den spelade nivån, antalet sparkar och den totala speltiden med bollen i luften i text på skärmen.\",\n \"Antal bollar som man får chans att trixa med\"],\n picture: \"assets/img/fotboll.png\",\n searchParameters: \"fotboll uthållighetsstyrka kondition balans 2d stående\",\n benefits: \"Uthållighetsstyrka framsida lår, balans, koordination\",\n benefitSearchIndexes: [9, 13, 2, 7],\n choosen: false,\n dbName: \"FootballExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Kicka bollar\",\n information: [\"Kicka bollar går ut på att kicka så många bollar med knäna som möjligt under den angivna tiden. Bollarnas höjd och tiden mellan objekten ökar respektive minskar gradvis för varje nivå. Övningen ger styrkeuthållighet i quadriceps (lårets framsida), balansträning i stående läge utan stöd och konditionsträning vid högre nivåer.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Stå med rak rygg, indragen haka och sänkta axlar. Kicka bollarna så snabbt som möjligt växelvis med höger respektive vänster knä. Bollarna på höger sida tas med höger knä och vice versa. Försök bibehålla en upprätt hållning under hela övningen.\",\n \"Vägledning ges om användaren drastiskt förändrar positionen relativt till kameran under spelets gång, antingen genom att gå för mycket framåt eller genom att tappa hållningen. I slutet av spelet presenteras den spelade nivån, snabbaste hastigheten, medelhastigheten och antalet kickade bollar i text på skärmen.\",\n \"Antal sekunder övningen skall utföras\"],\n picture: \"assets/img/blueball.png\",\n searchParameters: \"kicka bollar styrka ben balans 2d stående\",\n benefits: \"Styrka ben/höft, balans\",\n benefitSearchIndexes: [8, 3, 5, 2],\n choosen: false,\n dbName: \"KneeBallsExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Höja knäna\",\n information: [\"Höja knäna går ut på att kicka bollar med knäna. Mängden repetitioner ökar och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger styrkeuthållighet i quadriceps (lårets framsida) och konditionsträning vid högre nivåer.\",\n \"Sitt på en stol/pall med fötterna relativt nära varandra.\",\n \"Sitt med rak rygg, indragen haka och sänkta axlar. Kicka bollarna så snabbt som möjligt växelvis med höger respektive vänster knä. Bollarna på höger sida tas med höger knä och vice versa. Försök bibehålla en upprätt hållning under hela övningen.\",\n \"Vägledning ges om användaren försöker ta bollarna med händerna. I slutet av spelet presenteras den spelade nivån, snabbaste hastigheten, medelhastigheten och antalet kickade bollar i text på skärmen.\",\n \"Antal bollar som dyker upp\"],\n picture: \"assets/img/blueball.png\",\n searchParameters: \"höja knäna styrka ben 2d sittande\",\n benefits: \"Styrka ben/höft\",\n benefitSearchIndexes: [8, 3, 5],\n choosen: false,\n dbName: \"KneeBallsSittingExercise\",\n positions: [\"Sittande\"],\n activePos: \"Sittande\",\n variant: \"EXERCISE\",\n }, {\n title: \"Trampa svamp\",\n information: [\"Trampa på svamparna vid sidorna med fötterna. Mängden repetitioner och avståndet mellan fötterna och svamparna ökar, och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger rörlighet och styrka i höfter, styrka i quadriceps (lårets framsida), samt stabilitetsträning i bålen/ryggen. Vid stående utförande utan stöd fås även balansträning.\",\n \"Sitt på stol/pall utan ryggstöd eller stå upp. Placera fötterna nära varandra som utgångsposition.\",\n \"Sitt eller stå med rak/sträckt rygg, indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Förflytta en fot i taget i sidled för att trampa på svamparna så snabbt som möjligt. Sätt ihop fötterna åter igen efter att ha trampat på svampen.\",\n \"Vägledning ges om användaren förflyttar båda fötterna för att ta svampen eller inte sätter ihop fötterna igen efter att ha trampat på svampen. I slutet av spelet presenteras den spelade nivån, snabbaste hastigheten, medelhastigheten och antalet trampade svampar i text på skärmen.\",\n \"Antal svampar som dyker upp\"],\n picture: \"assets/img/mushroom.png\",\n searchParameters: \"trampa svamp höft rörlighet styrka balans 2d stående sittande\",\n benefits: \"Höft, rörlighet, balans, styrka\",\n benefitSearchIndexes: [5, 1, 2, 8],\n choosen: false,\n dbName: \"StompMushroomsExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Undvik flygplan (stillastående)\",\n information: [\"Ducka för flygplanen som flyger över skärmen. Mängden repetitioner ökar och flygplanet flyger lägre för varje nivå. Övningen ger styrketräning i benen.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Stå med indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Undvik flygplanen genom att böja på knäna så att flygplanet kan passera utan förhinder ovanför huvudet. Tänk på att verkligen böja på knäna och inte bara luta överkroppen framåt.\",\n \"Vägledning ges om användaren inte böjer ordentligt på knäna. Om användaren förflyttar sig utanför kamerans synfält under spelets gång pausas flygplanets färd tills spelaren blir synlig igen. I slutet av spelet presenteras den spelade nivån, antalet korrekt undvikta flygplan och totala antalet undvikta flygplan i text på skärmen.\",\n \"Antal flygplan att undvika\"],\n picture: \"assets/img/flygplan2.png\",\n searchParameters: \"undvik flygplan undvik styrka ben 2d stående\",\n benefits: \"Styrka ben\",\n benefitSearchIndexes: [8, 3],\n choosen: false,\n dbName: \"AvoidAirplanesStillExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Undvik flygplan (med sidorörelse)\",\n information: [\"Förflytta kroppen i sidled till markerade områdena och ducka för flygplanen som flyger över skärmen. Mängden repetitioner och sidoförflyttningarnas avstånd ökar, och flygplanet flyger gradvis lägre för varje nivå. Övningen ger styrketräning i benen samt konditionsträning.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Stå med indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. Förflytta kroppen i sidled till de markerade områdena på skärmens sidor. Efter att ha placerat kroppen innanför markerat område dyker ett flygplan upp som ska undvikas genom att böja på knäna. Tänk på att verkligen böja på knäna och inte bara luta överkroppen framåt. Flytta till nästa markerade område på andra sidan skärmen efter att flygplanet har passerat.\",\n \"Vägledning ges om användaren inte böjer ordentligt på knäna och vid behov vid sidoförflyttningarna. I slutet av spelet presenteras den spelade nivån, totala antalet undvikta flygplan och antalet korrekt undvika flygplan (med böjda knän) i text på skärmen.\",\n \"Antal flygplan att undvika\"],\n picture: \"assets/img/flygplan.png\",\n searchParameters: \"undvik flygplan undvik styrka ben 2d stående\",\n benefits: \"Styrka ben\",\n benefitSearchIndexes: [8, 3],\n choosen: false,\n dbName: \"AvoidAirplanesExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Nicka ballonger\",\n information: [\"Nicka ballongerna ovanför kroppen med huvudet genom uppresning från sittande läge. Mängden repetitioner ökar och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger styrketräning i quadriceps (lårets framsida).\",\n \"Sitt på en stol med ryggstöd/sidostöd eller sitt på stol/pall utan stöd.\",\n \"Sitt med rak/sträckt rygg, indragen haka och sänkta axlar. Res dig upp så snabbt som möjligt och nicka ballongerna som dyker upp. Sitt ner på stolen igen mellan varje uppresning för att nästa ballong skall dyka upp.\",\n \"Vägledning ges om användaren försöker ta ballongen med handen, inte sträcker på sig fullt ut för att nicka ballongen eller om användaren inte sätter sig ner efter tagen ballong. I slutet av spelet presenteras den spelade nivån, snabbaste hastigheten, medelhastigheten och antalet tagna ballonger i text på skärmen.\",\n \"Antal ballonger att nicka\"],\n picture: \"assets/img/balloon.png\",\n searchParameters: \"nicka ballonger styrka ben 2d uppresning\",\n benefits: \"Styrka ben\",\n benefitSearchIndexes: [8, 3],\n choosen: false,\n dbName: \"BalloonExercise\",\n positions: [\"Sittande\"],\n activePos: \"Sittande\",\n variant: \"EXERCISE\",\n }, {\n title: \"Tåhävningar\",\n information: [\"Placera ananasen ovanför den blåa linjen genom att göra tåhävningar. Mängden repetitioner ökar och tiden mellan objekten minskar gradvis för varje nivå. Övningen ger träning av vadmuskulaturen samt balans.\",\n \"Stå stadigt med hela fotsulan i marken med axelbredds avstånd mellan fötterna.\",\n \"Stå med rak/sträckt rygg, indragen haka och sänkta axlar. Försök bibehålla denna hållning under hela övningen. En ananas är placerad ovanför spelarens huvud och en blå linje är dragen en bit ovanför. Gör tåhävningar genom att skjuta ifrån golvet och kom upp på tå för att placera ananasen ovanför den blåa linjen. Sänk ner hälen sakta mot marken efter att ha passerat den blåa linjen.\",\n \"Vägledning ges om användaren drastiskt förändrar positionen relativt till kameran under spelets gång. I slutet av spelet presenteras den spelade nivån och antalet ananaser detekterade ovanför linjen i text på skärmen.\",\n \"Antal tåhävningar att utföra\"],\n picture: \"assets/img/Pineapple.png\",\n searchParameters: \"tåhävningar styrka vader 2d stående\",\n benefits: \"Styrka vader\",\n benefitSearchIndexes: [8, 12],\n choosen: false,\n dbName: \"HeelRaisesExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Fruktplockning\",\n information: [\"Fånga så många av frukterna på skärmen som möjligt och undvik de andra objekten. Antal objekt, avståndet mellan objekten och speltiden ökar gradvis för varje nivå. Övningen ger kognitiv träning och uthållighetsstyrka i arm/skuldermuskulaturen.\",\n \"Sitt på stol med ryggstöd, sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna. Håll upp händerna framför kroppen.\",\n \"Ett antal olika objekt dyker upp på skärmen. Målet är att fånga på så många frukter som möjligt genom att sträcka händerna framåt. Plocka en frukt i taget och för tillbaka handen efter varje fångat objekt. Undvik att fånga objekt som inte är frukter, dessa ger minus poäng. Förflytta kroppen i sidled för att nå objekten vid kanterna av skärmen.\",\n \"Vägledning ges om händerna inte förs tillbaka mot kroppen mellan plockningen. I slutet av spelet presenteras den spelade nivån, antalet plockade frukter, antal feltagna objekt samt den totala poängen.\",\n \"Antal frukter som dyker upp\"],\n picture: \"assets/img/fruits.png\",\n searchParameters: \"fruktplockning uthållighet armar kognitiv 2d stående sittande\",\n benefits: \"Uthållighet/Rörlighet armar\",\n benefitSearchIndexes: [9, 1, 11],\n choosen: false,\n dbName: \"PickFruitsExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Plattform-hoppning\",\n information: [\"Styr kaninen på skärmen uppåt genom att hoppa på plattformarna som dyker upp. Kaninen hoppar automatiskt och styrs till höger eller vänster med benlyft åt sidan. Avståndet mellan plattformarna ökar och speciella effekter läggs till för att göra övningen gradvis svårare för varje nivå. Övningen ger styrketräning för höften och balans om inget stöd används.\",\n \"Stå med rak/sträckt rygg, indragen haka och sänkta axlar. Placera fötterna med axelbredds avstånd.\",\n \"Styr den hoppande kaninen uppåt genom att hoppa på plattformarna som dyker upp på skärmen. Sträck höger ben åt sidan eller bakåt för att svänga åt höger och vice versa för att svänga åt vänster. Plattformarna har olika färger som representerar olika beteenden och svårighetsgrader. Det går även att transportera kaninen från den ena sidan av skärmen till den andra genom att styra kaninen genom väggen. Övningen avslutas då kaninen missar alla plattformarna och faller ner genom den nedre delen av skärmen.\",\n \"Vägledning ges om kaninen inte har nått högre höjder inom en viss tid. I slutet av spelet presenteras den spelade nivån, totala poängen (som motsvarar hur högt upp man kom) och hur länge spelet varade i text på skärmen.\",\n \"Tid i sekunder som spelet ska utföras.\"],\n picture: \"assets/img/Fluffy_Bunny.png\",\n searchParameters: \"plattform-hoppning höfter styrka balans kognitiv 2d stående\",\n benefits: \"Styrka höft, balans\",\n benefitSearchIndexes: [8, 5, 2],\n choosen: false,\n dbName: \"PlatformJumpingExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Ormen\",\n information: [\"Styr ormen mot maten så att ormen växer och undvik att korsa sin egen svans. Ju högre nivån är desto längre avstånd är det till maten. Det här är en planering och utförande variant av kognitivträning. Övningen ger även rörlighetsträning i arm/skulderområdet och längre spelsessioner bidrar till uthållighetsstyrka i arm/skulderområdet.\",\n \"Sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna.\",\n \"Kontrollera ormens huvud med handen och för den mot maten (rosa prickarna på skärmen). För varje tagen matbit ökar ormens längd och tar därmed upp mer plats på skärmen. Ormen får inte korsa sin egen svans under spelets gång, dvs om ormen biter sin egen svans så avslutas spelomgången. Till och från dyker det upp specialobjekt på skärmen: ett hjärta, en mus eller en bomb. Hjärtat minskar längden på ormen, musen är värd mer poäng men ger en utbuktnad på svansen och bomben exploderar efter några sekunder och skadar ormen om den är för nära (vilket ger minus poäng). Första spelomgången styrs ormen med höger hand och i andra omgången styrs den med vänster hand.\",\n \"I slutet av spelet presenteras den spelade nivån, ormens längd med höger hand, ormens längd med vänster hand och speltiden på höger respektive vänster sida i text på skärmen.\",\n \"Har ingen inverkan på övningen\"],\n picture: \"assets/img/snake.png\",\n searchParameters: \"ormen armar rörlighet kognitiv 2d stående sittande\",\n benefits: \"Rörlighet/uthållighetsstyrka armar, koordination\",\n benefitSearchIndexes: [1, 9, 8, 11, 7],\n choosen: false,\n dbName: \"SnakeExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Fånga rektanglar\",\n information: [\"Fånga så många rektanglar som möjligt med den aktiva handen. Storleken på rektanglarna minskar och dess hastighet ökar gradvis för varje nivå. Det här är en planering och utförande variant av kognitivträning som utformats speciellt för strokepatienter.\",\n \"Sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna.\",\n \"Röda rektanglar i varierande storlek färdas längs med skärmen. När de röda rektanglarna passerat halva skärmen skiftar de färg till blått. Ta de blåa rektanglarna med den aktiva handen, markerad med en rosa prick. Skifta aktiv hand genom att överföra den rosa pricken till andra handen genom handkontakt.\",\n \"I slutet av spelet presenteras den spelade nivån, totala antalet tagna rektanglar, antal rektanglar tagna med höger hand och antalet rektanglar tagna med vänster hand i text på skärmen.\",\n \"Antal rektanglar som dyker upp\"],\n picture: \"assets/img/rect.png\",\n searchParameters: \"fånga rektanglar kognitiv 2d stående sittande\",\n benefits: \"Kognitiv träning\",\n benefitSearchIndexes: [6],\n choosen: false,\n dbName: \"CaptureRectanglesExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Studsa bollen\",\n information: [\"Kontrollera bollen med händerna och se till att den befinner sig innanför ramens kanter. Bollens hastighet ökar och ramens storlek minskar gradvis för varje nivå. Det här är en planering och utförande variant av kognitivträning som utformats speciellt för strokepatienter.\",\n \"Sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna.\",\n \"Använd händerna för att hålla den blåa bollen innanför den vita ramens kanter. Bollen färdas i motsatt vinkelrät riktning från där handen nuddade kanten. Spelet avslutas när bollen passerar en av kanterna på ramen.\",\n \"I slutet av spelet presenteras den spelade nivån, längsta speltiden och antalet beröringar på bollen under den speltiden i text på skärmen.\",\n \"Antal bollar som får komma utanför ramen innan spelet tar slut\"],\n picture: \"assets/img/ball.png\",\n searchParameters: \"studsa bollen kognitiv 2d stående sittande\",\n benefits: \"Kognitiv träning\",\n benefitSearchIndexes: [6],\n choosen: false,\n dbName: \"BounceBallExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Jonglering\",\n information: [\"Trixa med bollarna för att hålla dem levande i luften så länge som möjligt. Antalet bollar samt dess hastighet ökar gradvis för varje nivå. Övningen ger rörlighetsträning i arm/skulderområdet och koordinationsträning.\",\n \"Sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna.\",\n \"Använd händerna för att hålla bollarna levande i luften så länge som möjligt. Ju högre nivå desto fler bollar hanteras samtidigt. Vid nivå 4 - 5 kolliderar även bollarna med varandra så att riktningen på bollarna kan ändras i luften. Övningen avslutas då samtliga bollar har hamnat på marken.\",\n \"I slutet av spelet presenteras den spelade nivån och speltiden med bollarna i luften i text på skärmen.\",\n \"Har ingen inverkan på övningen\"],\n picture: \"assets/img/Tennisboll.png\",\n searchParameters: \"jonglering kognitiv koordination 2d stående sittande\",\n benefits: \"Kognitiv träning, koordination\",\n benefitSearchIndexes: [6, 7],\n choosen: false,\n dbName: \"JugglingExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Boule\",\n information: [\"Kasta bollarna (med en underarms sving) så nära som möjligt den lilla röda bollen placerad en bit bort. Terrängen ändras gradvis för att göra det svårare och mer fart behövs i svingen vid högre nivåer. Övningen ger koordnitationsträning.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Målet med övningen är att kasta bollarna så att de hamnar så nära den röda lilla bollen som möjligt. Håll upp handen du vill kasta med ovanför huvudet för att få kontroll över bollen. För handen bakåt och svinga därefter handen framåt för att kasta.\",\n \"Vägledning ges om handen inte förs tillbaka ordentligt innan kastet. I slutet av spelet presenteras den spelade nivån, kortaste avståndet och medelavståndet till den lilla röda bollen i text på skärmen.\",\n \"Antal bollar att kasta\"],\n picture: \"assets/img/boule.png\",\n searchParameters: \"boule koordination 3d stående\",\n benefits: \"Koordination\",\n benefitSearchIndexes: [7],\n choosen: false,\n dbName: \"BouleExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Jage i skogen\",\n information: [\"Spring runt i skogen och fånga så många av de gömda objekten som möjligt. För varje nivå förlängs speltiden, antalet eftersökta objekt minskar och efter nivå 3 förflyttar sig även objekten under tiden. Övningen ger uthållighetsträning och uthållighetsstyrka i benen.\",\n \"Stå upp med axelbredds avstånd mellan fötterna. Försök bibehålla en upprätt hållning under hela övningen.\",\n \"Din uppgift är att hitta så många av de gömda objekten i skogen som möjligt (fjärilar eller kaniner). Gå på stället med höjda knän för att flytta ramåt i spelet. Desto snabbare frekvens på benen desto snabbare förflyttningar framåt. Sträck ut höger arm åt sidan för att svänga åt höger och vänster arm utsträckt för att gå åt vänster.\",\n \"Vägledning ges om fötterna inte är synliga för sensorn och om ingen förflyttning skett under en viss period. I slutet av spelet presenteras den spelade nivån, antal fångade objekt och speltiden i text på skärmen.\",\n \"Tid i sekunder som spelet ska utföras.\"],\n picture: \"assets/img/hqdefault.jpg\",\n searchParameters: \"jage i skogen uthållighet styrka ben 3d stående\",\n benefits: \"Uthållighetsstyrka ben\",\n benefitSearchIndexes: [9, 8, 3],\n choosen: false,\n dbName: \"ForestRunningExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Bågskytte\",\n information: [\"Skjut pilar mot måltavlan. Desto närmare mitten av tavlan pilen träffar, desto mer poäng ges. Övningen ger koordnination- och kognitiv träning.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Sträck fram höger eller vänster arm för att sikta på måltavlan. Placera den andra handen bredvid den utsträckta handen, som att du laddar upp för att skjuta iväg en pil. Dra den andra handen sakta bakåt mot axeln med armbågen vinklad utåt i axelhöjd. Pilen skjuts iväg då handen är i närheten av axeln.\",\n \"Vägledning ges om armbågen inte är vinklad ut från kroppen när pilen skjuts iväg eller om ingen siktet är utanför det markerade området. I slutet av spelet presenteras den spelade nivån, antal skjutna pilar och totala poängen.\",\n \"Antal pilar att skjuta\"],\n picture: \"assets/img/targetboard.png\",\n searchParameters: \"bågskytte koordniation armar styrka 3d stående\",\n benefits: \"Koordination\",\n benefitSearchIndexes: [7],\n choosen: false,\n dbName: \"ArrowExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Rymdspel\",\n information: [\"Styr rymdfarkosten genom asteroidbältet och samla poäng genom att skjuta på objekten (ateroider, meteroiter, stridsskepp osv). För varje nivå ökar antalet objekt och dess hastighet, samt att det tillkommer nya/svårare objekt. Övningen ger styrketräning i biceps och koordinationsträning.\",\n \"Sitt på en stol med ryggstöd, sitt på stol/pall utan ryggstöd eller stå upp med axelbredds avstånd mellan fötterna. Håll överarmarna parallellt med kroppen. Det rekommenderas att ha vikter eller liknande i händerna vid övningens utförande.\",\n \"Spelet går ut på att undvika asteroider och fiendeskepp genom att styra rymdfarkosten i sidled eller genom att skjuta. Farkosten styrs genom att köra bicepcurls med höger eller vänster arm. Håll överarmen stilla parallellt med kroppen och för handen upp mot axeln. Skjut genom att separera knäna på valfritt sätt eller genom att gapa med munnen.\",\n \"Vägledning ges om handen inte förs upp framför/parallellt med kroppen eller om händerna inte sänks ner ordentligt mellan lyften. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Tid i sekunder som spelet ska utföras.\"],\n picture: \"assets/img/spaceship.png\",\n searchParameters: \"rymdspel koordniation armar styrka 3d stående\",\n benefits: \"Styrka armar\",\n benefitSearchIndexes: [8, 11],\n choosen: false,\n dbName: \"SpaceShooterExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Bubbelattack\",\n information: [\"Styr avataren med kroppen genom fältet av färgade objekt och samla så många poäng som möjligt. För varje nivå ökar antalet och hastigheten på de förbifarande objekten. Övningen ger kognitiv- och koordinationsträning samt uthållighet och rörlighet för hela kroppen.\",\n \"Stå upp med axelbredds avstånd mellan fötterna.\",\n \"Styr avataren och fånga så många gröna former som möjligt och undik samtidigt alla röda och gula former. Styr avataren genom att röra dig själv i sidled, böja knäna eller luta på kroppen. Spelet avslutas efter att 10 st gröna markeringar har passerat bakom avataren. Varje fångad grön form ger 1 poäng och de röda och gula formerna ger minus poäng.\",\n \"Vägledning ges i form av ljud när rätt/fel objekt tas. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Tid i sekunder som spelet ska utföras.\"],\n picture: \"assets/img/ball.png\",\n searchParameters: \"bubbelattack kognitiv koordniation kroppen uthållighet rörlighet 3d stående\",\n benefits: \"Kognitiv träning, rörlighet, uthållighet\",\n benefitSearchIndexes: [6, 1, 9],\n choosen: false,\n dbName: \"BubbleInvaderExercise\",\n positions: [\"Stående\"],\n activePos: \"Stående\",\n variant: \"EXERCISE\",\n }, {\n title: \"Plocka apelsiner\",\n information: [\n \"Stå på gummibandet och håll ett handtag i var hand. Lyft ena armen snett framför kroppen. Armen skall vara lätt böjd och lyftas till axelhöjd, inte över 90 grader. Nudda apelsinen och upprepa. Kan även göras i sittande.\",\n \"Övningen kan göras i sittande eller stående. \" + \n \"Placera mittendelen av gummibandet under fötterna och håll ett handtag i var hand. Lyft ena armen snett framför kroppen.\",\n \"Armen skall vara lätt böjd och lyftas ungefär till axelhöjd, inte över 90 grader. \" +\n \"Tänk på att ha stolt hållning och spänna bålen under hela övningen. Gummibandet skall hålla spänt under hela övningen.\" +\n \"Utför samtliga repetitioner på ena sidan och byt sedan till andra armen.\" +\n \"Övningen kan göras i sittande eller stående.\" + \n \"Ifall övningen görs i sittande behöver gummibandet kortas något för att kunna hållas spänt under hela rörelsen.\",\n \"Vägledning ges i form av val av rätt band. Feedback ges i form av ljud vid tagna objekt. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Totalt antal apelsiner som ska tas.\"],\n picture: \"assets/img/orange.png\",\n searchParameters: \"plocka apelsiner armar sittande styrka stående\",\n benefits: \"Styrka armar axlar\",\n benefitSearchIndexes: [10, 11, 8],\n choosen: false,\n dbName: \"PickOrangesExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Sparka stjärnor\",\n information: [\n \"Utförs i sittande med ryggen mot ryggstödet. Sätt utprovat gummiband runt anklarna. Sparka det ena benet rakt fram så att foten nuddar stjärnan. Knät skall bli rakt. Återgå långsamt och upprepa.\",\n \"Placera händerna vid sidan av stolen så att du har något att hålla fast i. Sparka det ena benet rakt \" +\n \"fram tills knät är helt rakt, den andra foten skall vara kvar i marken.\",\n \"Sätt dig långt in på en stol och stöd ryggen mot ryggstödet. Sätt utprovat gummiband runt vristerna. \" +\n \"Placera händerna vid sidan av stolen så att du har något att hålla fast i. Sparka det ena benet rakt \" +\n \"fram tills knät är helt rakt, den andra foten skall vara kvar i marken. Återgå långsamt och upprepa. \" +\n \"Utför samtliga repetitioner på ena sidan och byt sedan till andra benet.\",\n \"Vägledning ges i form av val av rätt band. Feedback ges i form av ljud vid tagna objekt. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Totalt antal stjärnor som ska tas.\"],\n picture: \"assets/img/star.png\",\n searchParameters: \"sparka stjärnor armar sittande styrka stående\",\n benefits: \"Styrka ben\",\n benefitSearchIndexes: [3, 8],\n choosen: false,\n dbName: \"KickStarsExercise\",\n positions: [\"Sittande\"],\n activePos: \"Sittande\",\n variant: \"EXERCISE\",\n }, {\n title: \"Kombocurl\",\n information: [\n \"Stå på gummibandet och håll ett handtag i var hand. Armbågarna placeras vid sidan av kroppen. Dra en hand i taget mot axeln genom att böja i armbågen. Övningen kan också göras i sittande.\",\n \"Placera gummibandet under fötterna och håll ett handtag i var hand. \" +\n \"Håll armbågarna stilla längs med sidan av kroppen och dra en hand i taget mot axeln genom att böja i armbågen. Du skall nudda alla klot på vägen. \",\n \"Placera gummibandet under fötterna och håll ett handtag i var hand. \" +\n \"Håll armbågarna stilla längs med sidan av kroppen och dra en hand i taget mot axeln genom att böja i armbågen. Du skall nudda alla klot på vägen. \" +\n \"Spänn bålen och ha stolt hållning under hela övningen. Utför samtliga repetitioner på ena sidan och byt sedan till andra armen. \" +\n \"Övningen kan göras i sittande eller stående. \" +\n \"Om övningen görs i sittande måste gummibandet kortas något för att hållas spänt under hela rörelsen. \",\n \"Vägledning ges i form av val av rätt band. Feedback ges i form av ljud vid tagna objekt. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Totalt antal curls som ska göras. En curl räknas som en arm som rör sig från höften till axeln och tillbaka.\"],\n picture: \"assets/img/blueball.png\",\n searchParameters: \"kombocurl curl armar sittande styrka stående\",\n benefits: \"Styrka armar\",\n benefitSearchIndexes: [11, 8],\n choosen: false,\n dbName: \"KomboCurlExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Rodd med raka armar\",\n information: [\n \"Sitt eller stå vänd med sidan mot skärmen och din näsa mot gummibandets fästpunkt. Ha lätt böjda armar framför kroppen och dra armarna bakåt längs med sidan av kroppen. Återgå långsamt och upprepa.\",\n \"Fäst utprovat gummiband i ett dörrhandtag eller annan fästanordning. \" +\n \"Stå vänd mot fästpunkten med sidan mot kameran. Ta tag i gummibandet och backa så att bandet hålls spänt under hela övningen. \" +\n \"Ha lätt böjda armar framför kroppen och dra armarna bakåt längs med sidan av kroppen. Återgå långsamt och upprepa. \",\n \"Ro så att båten flyttar sig framåt. Fäst utprovat gummiband i ett dörrhandtag eller annan fästanordning. \" +\n \"Stå vänd mot fästpunkten med sidan mot kameran. Ta tag i gummibandet och backa så att bandet hålls spänt under hela övningen. \" +\n \"Ha lätt böjda armar framför kroppen och dra armarna bakåt längs med sidan av kroppen. Återgå långsamt och upprepa. \" +\n \"Tänk på att spänna bålen och skjut frambröstkorgen något. Övningen kan göras i sittande eller stående. \",\n \"Vägledning ges i form av val av rätt band samt uppmaningar om att ha raka armar. Feedback ges i form av att båten ros framåt. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Totalt antal strokes som ska göras. En stroke räknas som en hand som rör sig från att ha varit framför höften till bakom den.\"],\n picture: \"assets/img/row-straigth.png\",\n searchParameters: \"rodd axlar armar sittande styrka stående\",\n benefits: \"Styrka armar axlar\",\n benefitSearchIndexes: [11, 8, 10],\n choosen: false,\n dbName: \"RowingStraigthExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Rodd med böjda armar\",\n information: [\n \"Sitt eller stå vänd med sidan mot skärmen och din näsa mot gummibandets fästpunkt. Håll armarna framför kroppen, dra gummibandet mot bröstet med armbågarna böjda i ca 90 grader. Återgå långsamt och upprepa.\",\n \"Fäst utprovat gummiband i ett dörrhandtag eller annan fästanordning. \" +\n \"Stå vänd mot fästpunkten med sidan mot kameran. Ta tag i gummibandet och backa så att bandet hålls spänt under hela övningen. \" +\n \"Håll armarna framför kroppen och dra gummibandet mot bröstet med armbågarna böjda i ca 90 grader. Låt skulderbladen följa med i rörelsen. \",\n \"Ro så att båten flyttar sig framåt. Fäst utprovat gummiband i ett dörrhandtag eller annan fästanordning. \" +\n \"Stå vänd mot fästpunkten med sidan mot kameran. Ta tag i gummibandet och backa så att bandet hålls spänt under hela övningen. \" +\n \"Håll armarna framför kroppen och dra gummibandet mot bröstet med armbågarna böjda i ca 90 grader. Låt skulderbladen följa med i rörelsen. \" +\n \"Återgå långsamt och upprepa. Tänk på att spänna bålen och skjuta frambröstkorgen något. Övningen kan göras i sittande eller stående. \",\n \"Vägledning ges i form av val av rätt band samt uppmaningar om att ha raka och böjda armar vid respektive steg i rörelsen. Feedback ges i form av att båten ros framåt. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Totalt antal strokes som ska göras. En stroke räknas som en hand som rör sig från att ha varit framför kroppen till bröstet.\"],\n picture: \"assets/img/row-bent.png\",\n searchParameters: \"rodd axlar armar sittande styrka stående\",\n benefits: \"Styrka armar axlar\",\n benefitSearchIndexes: [11, 8, 10],\n choosen: false,\n dbName: \"RowingBentExercise\",\n positions: [\"Sittande\", \"Stående\", \"Valfri\"],\n activePos: \"Valfri\",\n variant: \"EXERCISE\",\n }, {\n title: \"Köra i skog\",\n information: [\n \"Denna övning kräver att det finns en tillgänglig cykel. Cykla runt bilen runt sjön.\", \n \"Ställ cyklen framför systemet och cykla för att starta igång den. Låt systemet koppla upp sig mot cykeln och börja cykla.\",\n \"Om man väljer att patienten ska uppskatta sin ansträngning och andfåddhet under övningen så sker detta efter spelets avslutas. Om man väljer att patienten skall mäta saturation och puls så görs detta en gång i minuten. Nivån bestämmer initiella trögheten på cykeln. Denna kan användaren sedan sänka under cyklingens gång.\",\n \"Feedback ges i form av att bilen körs framåt i hastighet relativt hastigheten på cyklandet. I slutet av spelet presenteras den spelade nivån, totala poängen och speltiden i text på skärmen.\",\n \"Antal minuter som ska cyklas\"],\n picture: \"assets/img/cycleForest.png\",\n searchParameters: \"cykla skog köra sittande styrka\",\n benefits: \"Uthållighet styrka ben\",\n benefitSearchIndexes: [3, 8, 9],\n choosen: false,\n dbName: \"DriveForestExercise\",\n positions: [\"Sittande\"],\n activePos: \"Sittande\",\n variant: \"EXERCISE\",\n }\n ];\n\n assessmentVersions: any[] = [\n {\n name: \"Ballong-test\",\n picture: \"assets/img/balloon.png\",\n description: \"Ballong-testet används för att skatta individens benstyrkekapacitet. Ballong-testet är en form av Nicka ballonger övningen, där övningen körs under 30 sekunder med målet att nicka så många ballonger som möjligt under den perioden. Antalet fångade ballonger representerar antalet uppresningar användaren lyckats genomföra under 30 sekunder.\",\n dbName: \"BalloonTestAssessment\",\n benefits: \"Benstyrketest\",\n choosen: false,\n }, {\n name: \"VAS ansträngning\",\n picture: \"assets/img/effort.png\",\n description: \"För att skatta individens ansträngningsnivå används en vas-skala från 0-100, där 0 motsvarar minimal ansträngning och 100 motsvarar maximal ansträngning. Det är utövaren själv som skattar sin egen nivå genom att dra en slider till det värdet som bäst passar in på situationen. Skattningen sker antingen direkt efter en specifik övning eller efter att alla planerade övningar för dagen utförts för att skatta nivån för hela passet.\",\n dbName: \"VASEffortAssessment\",\n benefits: \"Uppskatta ansträngningsnivå\",\n choosen: false,\n }, {\n name: \"VAS andfåddhet\",\n picture: \"assets/img/breath.png\",\n description: \"För att skatta individens andfåddhetsnivå används en vas-skala från 0-100, där 0 motsvarar minimal andfåddhet och 100 motsvarar maximal andfåddhet. Det är utövaren själv som skattar sin egen nivå genom att dra en slider till det värdet som bäst passar in på situationen. Skattningen sker antingen direkt efter en specifik övning eller efter att alla planerade övningar för dagen utförts för att skatta nivån för hela passet.\",\n dbName: \"VASBreathAssessment\",\n benefits: \"Uppskatta andfåddhet\",\n choosen: false,\n }, {\n name: \"CAT (COPD assessment test)\",\n picture: \"assets/img/cat.png\",\n description: \"Frågeformuläret hjälper till att mäta den inverkan KOL (kroniskt obstruktiv lungsjukdom) har på användarens välbefinnande och dagliga liv. Svaren och testresultaten kan användas för att förbättra vården av användarens KOL och för att få bästa utbyte av behandlingen.\",\n dbName: \"CATAssessment\",\n benefits: \"Frågeformulär\",\n choosen: false,\n }, {\n name: \"mMRC\",\n picture: \"assets/img/lungs.png\",\n description: \"mMRC-skalan används för att beskriva hur en individs andningssvårigheter påverkar dagliga aktiviteter. Skalan mäter en persons begränsningsbas mellan 1-5. Det slutliga värdet motsvarar personens grad av funktionshinder som orsakas av andfåddhet.\",\n dbName: \"mMRCAssessment\",\n benefits: \"Andningssvårigheters påverkan på daglig aktivitet\",\n choosen: false,\n }, {\n name: \"Ansträngning skala\",\n picture: \"assets/img/EffortRPE.png\",\n description: \"Skala som mäter användarens uppskattade ansträngningsgrad på en skala mellan 7 och 20.\",\n dbName: \"RPEAssesment\",\n benefits: \"Upplevd ansträngningsgrad under övningar\",\n choosen: false,\n }\n , {\n name: \"Andfåddhet skala\",\n picture: \"assets/img/BreathCR10.png\",\n description: \"Skala som mäter användarens uppskattade andfåddhet på en skala mellan 0 och 11.\",\n dbName: \"CR10Assesment\",\n benefits: \"Upplevd andfåddhet under övningar\",\n choosen: false,\n }\n ];\n\n getCompleteInformation(): any[] {\n return this.allGameInformation;\n }\n\n getPictureForGameName(name: string) : string {\n for(var i = 0; i < this.allGameInformation.length; i++) {\n if (this.allGameInformation[i].title == name) {\n return this.allGameInformation[i].picture;\n }\n }\n for(var i = 0; i < this.assessmentVersions.length; i++) {\n if (this.assessmentVersions[i].name == name) {\n return this.assessmentVersions[i].picture;\n }\n }\n }\n\n gameName(name: string): string {\n if (name === 'PickBananaExercise') {\n return 'Plocka bananer';\n }\n else if (name === 'PickAppleExercise') {\n return 'Plocka äpplen';\n }\n else if (name === 'BoxingExercise') {\n return 'Boxning';\n }\n else if (name === 'HsktExercice') {\n return 'Huvud, axlar, knä & tå';\n }\n else if (name === 'KickBallsExercise') {\n return 'Sparka bollar';\n }\n else if (name === 'FootballExercise') {\n return 'Fotboll';\n }\n else if (name === 'KneeBallsExercise') {\n return 'Kicka bollar';\n }\n else if (name === 'StompMushroomsExercise') {\n return 'Trampa svamp';\n }\n else if (name === 'AvoidAirplanesStillExercise') {\n return 'Undvik flygplan (stillastående)';\n }\n else if (name === 'AvoidAirplanesExercise') {\n return 'Undvik flygplan (med sidorörelse)';\n }\n else if (name === 'BalloonExercise') {\n return 'Nicka ballonger';\n }\n else if (name === 'HeelRaisesExercise') {\n return 'Tåhävningar';\n }\n else if (name === 'SnakeExercise') {\n return 'Ormen';\n }\n else if (name === 'CaptureRectanglesExercise') {\n return 'Fånga rektanglar';\n }\n else if (name === 'BounceBallExercise') {\n return 'Studsa Bollen';\n }\n else if (name === 'JugglingExercise') {\n return 'Jonglering';\n }\n else if (name === 'KneeBallsSittingExercise') {\n return 'Höja knäna';\n }\n else if (name === 'PickFruitsExercise') {\n return 'Fruktplockning';\n }\n else if (name === 'PlatformJumpingExercise') {\n return 'Plattform-hoppning';\n }\n else if (name === 'BouleExercise') {\n return 'Boule';\n }\n else if (name === 'ForestRunningExercise') {\n return 'Jage i skogen';\n }\n else if (name === 'ArrowExercise') {\n return 'Bågskytte';\n }\n else if (name === 'SpaceShooterExercise') {\n return 'Rymdspel';\n }\n else if (name === 'BubbleInvaderExercise') {\n return 'Bubbelattack';\n }\n else if (name === 'BalloonTestAssessment') {\n return 'Ballong-test';\n }\n else if (name === 'VASEffortAssessment') {\n return 'VAS ansträngning';\n }\n else if (name === 'VASBreathAssessment') {\n return 'VAS andfåddhet';\n }\n else if (name === 'CATAssessment') {\n return 'CAT (COPD assessment test)';\n }\n else if (name === 'mMRCAssessment') {\n return 'mMRC';\n }\n else {\n for (let index = 0; index < this.allGameInformation.length; index++) {\n if (this.allGameInformation[index].dbName === name) {\n return this.allGameInformation[index].title;\n }\n }\n for (let index = 0; index < this.assessmentVersions.length; index++) {\n if (this.assessmentVersions[index].dbName === name) {\n return this.assessmentVersions[index].name;\n }\n }\n }\n \n return name;\n }\n\n positionType(pos: string): string {\n if (pos === 'SITTING') {\n return 'Sittande';\n }\n else if (pos === 'STANDING') {\n return 'Stående';\n }\n return 'Valfri';\n }\n\n getCATQuestionair(): any[] {\n let quest = [\n {\n minText: \"Jag hostar aldrig\",\n maxText: \"Jag hostar ständigt\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1,\n }, {\n minText: \"Jag har inte något slem i bröstet alls\",\n maxText: \"Mitt bröst är helt fyllt med slem\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }, {\n minText: \"Jag känner inte alls något tryck över bröstet\",\n maxText: \"Jag känner mycket tryck över bröstet\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }, {\n minText: \"När jag går uppför en backe eller en trappa blir jag inte andfådd\",\n maxText: \"När jag går uppför en backe eller en trappa blir jag mycket andfådd\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }, {\n minText: \"Jag är inte begränsad när det gäller att utföra några aktiviteter i hemmet\",\n maxText: \"Jag är mycket begränsad när det gäller att utföra aktiviteter i hemmet\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }, {\n minText: \"Jag känner mig trygg att lämna mitt hem trots mitt lungtillstånd\",\n maxText: \"Jag känner mig inte alls trygg att lämna mitt hem på grund av mitt lungtillstånd\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }, {\n minText: \"Jag sover bra\",\n maxText: \"Jag sover inte bra på grund av mitt lungtillstånd\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }, {\n minText: \"Jag har massor av energi\",\n maxText: \"Jag har inte någon energi alls\",\n values: [0, 1, 2, 3, 4, 5],\n currentValue: -1\n }];\n return quest;\n }\n\n getmMRCQuestionair(): any[] {\n let mMRC = [{\n text: \"Ingen andnöd annat än vid mycket kraftig ansträngning\",\n choosen: false,\n }, {\n text: \"Andnöd vid snabb promenad eller vid gång i uppförsbacke\",\n choosen: false,\n }, {\n text: \"Går långsammare än personer i samma ålder på grund av andnöd eller behov av att stanna och hämta andan vid gång i egen takt på plan mark\",\n choosen: false,\n }, {\n text: \"Stannar efter ca 100 meters promenad eller några minuters gång på plan mark på grund av andnöd\",\n choosen: false,\n }, {\n text: \"Kan inte lämna huset på grund av andnöd eller andnöd vid på- och avklädning\",\n choosen: false,\n }];\n return mMRC;\n }\n}\n\ninterface InformationContent {\n title: string;\n information: string[];\n picture: string;\n searchParameters: string;\n benefits: string;\n benefitSearchIndexes: number[];\n choosen: boolean;\n dbName: string;\n positions: string[];\n activePos: string;\n variant: string;\n}","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { Observable } from 'rxjs';\nimport { DataserviceService } from '../services/dataservice.service';\n\n@Injectable()\nexport class MessageHandlerService {\n private contact: any;\n // private url: string = \"http://192.168.0.174:4300/MessageServiceServer/chat/\"; //\"https://kol.alkit.se/MessageServiceServer/chat/\"; //\"http://mandolin:4300/MessageServiceServer/chat/\"; //\"http://localhost:8080/MessageServiceServer/chat/\";//\"https://kol.alkit.se/MessageServiceServer/chat/\";\n // private url: string = \"http://kol-demo.alkit.se/MessageServiceServer/chat/\";\n private url: string = \"https://kol.alkit.se/MessageServiceServer/chat/\"; //\n auth_token: string;\n\n constructor(private http: Http, private dataservice: DataserviceService) { }\n\n logIn(user: string, pw: string): Observable {\n let body = {\n username: user,\n password: pw,\n instance: this.dataservice.care_unit_name\n };\n\n // Set request header and send request.\n let headers = new Headers({ 'Access-Control-Allow-Origin': '*' });\n let options = new RequestOptions({ headers: headers });\n return this.http.post(this.url + 'login', body, options)\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n logOut(): Observable {\n let token = this.auth_token;\n this.auth_token = null;\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.url + 'logout', { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n changePassword(body: any){\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'changePassword', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n changeImage(body: any){\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'changeUserImage', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n getCurrentContact() {\n return this.contact;\n }\n\n setCurrentContact(contact: any) {\n this.contact = contact;\n }\n\n getNewMessages() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.url + \"getNewMessages\", { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n getNewMessagesPeriodically = (interval) => {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return Observable\n .interval(interval)\n .flatMap((i) => this.http.get(this.url + \"getNewMessages\", { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error)));\n }\n\n getMessagesFromUser(message: any) {\n let body = message;\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'getMessagesFromUser', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n getNewestMessagesFromUser(message: any) {\n let body = message;\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'getNewestMessagesFromUser', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n sendMessagesToUser(message: any) {\n let body = message;\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'newMessages', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n changeUnreadStatus(message: any) {\n let body = message;\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'changeUnreadStatus', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n getFriendContactsFromChatService() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.url + 'getPrivateContacts', { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n getProfContactsFromChatService() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.url + 'getProfessionalContacts', { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n getAllContactsFromChatService() {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.get(this.url + 'getAllContacts', { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n \n\n createUser(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'addPatient', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n deleteUser(body: any) {\n let headers = new Headers({ 'content-type': 'application/json', 'auth-token': this.auth_token });\n return this.http.post(this.url + 'deletePatient', body, { headers: headers })\n .map(this.data)\n .catch((error: any) => Observable.of(error));\n }\n\n\n private data(res: Response) {\n return res;\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NpZGUtY29udGVudC9zaWRlLWNvbnRlbnQuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n \\n account_circle\\n
{{username}}\\n
\\n

Vald användare: {{patient}}

\\n

Nya meddelanden: {{newMsgNr}}

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \"","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { DataserviceService } from '../services/dataservice.service';\nimport { Router } from '@angular/router';\nimport { MessageHandlerService } from '../services/message-handler.service';\nimport { SideContentService } from './side-content.service';\n\n@Component({\n selector: 'app-side-content',\n templateUrl: './side-content.component.html',\n styleUrls: ['./side-content.component.css']\n})\nexport class SideContentComponent implements OnInit {\n @Input()\n side: number;\n @Input()\n active: number;\n @ViewChild('myImage', { static: true }) myImage: any; \n showImg:boolean\n\n mObs;\n newMessage: boolean;\n newMsgNr: number = 0;\n\n username:string;\n patient:string; \n showWarning: boolean= false;\n\n constructor(private dataservice: DataserviceService, private router: Router, private mhs: MessageHandlerService, private sideContentService: SideContentService) { }\n\n ngOnInit(){\n if (this.dataservice.username == 'undefined' || !this.dataservice.username) {\n this.router.navigate(['']);\n return;\n }\n this.dataservice.pingServer().subscribe(\n (resp) => {\n if (resp && (resp == 401 || resp == 503)) {\n this.router.navigate(['']);\n return;\n }\n });\n this.username = this.dataservice.username;\n this.patient = this.dataservice.patient;\n this.showWarning = this.patient == \"Ingen vald\";\n if (this.dataservice.userImg){\n this.showImg = true;\n this.myImage.nativeElement.width = 100;\n this.myImage.nativeElement.height = 100;\n this.myImage.nativeElement.src = 'data:image/png;base64,' + this.dataservice.userImg; \n }\n if (this.side == 4){\n this.repeatedCheckIfNewMessages();\n }\n this.sideContentService.changeImage.subscribe(newImage => {\n this.showImg = true;\n this.myImage.nativeElement.width = 100;\n this.myImage.nativeElement.height = 100;\n this.myImage.nativeElement.src = 'data:image/png;base64,' + newImage;\n this.dataservice.userImg = this.myImage.nativeElement.src;\n });\n }\n\n ngOnDestroy(){ \n if (this.mObs && this.side==4){\n this.mObs.unsubscribe();\n }\n }\n\n private repeatedCheckIfNewMessages() {\n this.mhs.getNewMessages().subscribe(\n (resp) => {\n if (resp._body.includes(\"message\")) {\n let messages = resp.json();\n this.newMsgNr = messages.length;\n this.newMessage = true;\n }\n });\n this.mObs = this.mhs.getNewMessagesPeriodically(15000).subscribe(\n (resp) => {\n if (resp._body.includes(\"message\")) {\n this.newMessage = true;\n let messages = resp.json();\n this.newMsgNr = messages.length;\n }\n });\n }\n\n startConfero() {\n this.dataservice.downloadConfero().subscribe( \n response => {\n var contentDisposition= response.headers.get('content-disposition');\n var fileName = contentDisposition.substring(20, contentDisposition.length);\n let downloadLink = document.createElement('a');\n let blob:any = new Blob([response.blob()], { type: 'application/sdp' });\n downloadLink.href = window.URL.createObjectURL(blob);\n downloadLink.setAttribute('download', fileName);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n }), error => console.log('Error downloading the file'),\n () => console.info('File downloaded successfully');\n return false;\n }\n\n loadPage(path: string) {\n this.router.navigate([path]);\n return false;\n }\n}\n","import { Injectable, Output, EventEmitter } from '@angular/core'\n\n@Injectable()\nexport class SideContentService {\n\n @Output() changeImage: EventEmitter = new EventEmitter();\n\n updateImage(newImage:String) {\n this.changeImage.emit(newImage);\n }\n\n}","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""}