text: (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{
  
  /***/ "./$$_lazy_route_resource lazy recursive":
  /*!******************************************************!*\
    !*** ./$$_lazy_route_resource lazy namespace object ***!
    \******************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function webpackEmptyAsyncContext(req) {
  	// Here Promise.resolve().then() is used instead of new Promise() to prevent
  	// uncaught exception popping up in devtools
  	return Promise.resolve().then(function() {
  		var e = new Error("Cannot find module '" + req + "'");
  		e.code = 'MODULE_NOT_FOUND';
  		throw e;
  	});
  }
  webpackEmptyAsyncContext.keys = function() { return []; };
  webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
  module.exports = webpackEmptyAsyncContext;
  webpackEmptyAsyncContext.id = "./$$_lazy_route_resource lazy recursive";
  
  /***/ }),
  
  /***/ "./node_modules/@ionic/core/dist/esm lazy recursive ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$":
  /*!*****************************************************************************************************************************************!*\
    !*** ./node_modules/@ionic/core/dist/esm lazy ^\.\/.*\.entry\.js$ include: \.entry\.js$ exclude: \.system\.entry\.js$ namespace object ***!
    \*****************************************************************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var map = {
  	"./ion-action-sheet.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js",
  		"common",
  		0
  	],
  	"./ion-alert.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js",
  		"common",
  		1
  	],
  	"./ion-app_8.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js",
  		"common",
  		2
  	],
  	"./ion-avatar_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js",
  		"common",
  		3
  	],
  	"./ion-back-button.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js",
  		"common",
  		4
  	],
  	"./ion-backdrop.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js",
  		5
  	],
  	"./ion-button_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js",
  		"common",
  		6
  	],
  	"./ion-card_5.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js",
  		"common",
  		7
  	],
  	"./ion-checkbox.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js",
  		"common",
  		8
  	],
  	"./ion-chip.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js",
  		"common",
  		9
  	],
  	"./ion-col_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js",
  		10
  	],
  	"./ion-datetime_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js",
  		"common",
  		11
  	],
  	"./ion-fab_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js",
  		"common",
  		12
  	],
  	"./ion-img.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-img.entry.js",
  		13
  	],
  	"./ion-infinite-scroll_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js",
  		14
  	],
  	"./ion-input.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-input.entry.js",
  		"common",
  		15
  	],
  	"./ion-item-option_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js",
  		"common",
  		16
  	],
  	"./ion-item_8.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js",
  		"common",
  		17
  	],
  	"./ion-loading.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js",
  		"common",
  		18
  	],
  	"./ion-menu_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js",
  		"common",
  		19
  	],
  	"./ion-modal.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js",
  		"common",
  		20
  	],
  	"./ion-nav_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js",
  		"common",
  		21
  	],
  	"./ion-popover.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js",
  		"common",
  		22
  	],
  	"./ion-progress-bar.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js",
  		"common",
  		23
  	],
  	"./ion-radio_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js",
  		"common",
  		24
  	],
  	"./ion-range.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-range.entry.js",
  		"common",
  		25
  	],
  	"./ion-refresher_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js",
  		"common",
  		26
  	],
  	"./ion-reorder_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js",
  		"common",
  		27
  	],
  	"./ion-ripple-effect.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js",
  		28
  	],
  	"./ion-route_4.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js",
  		"common",
  		29
  	],
  	"./ion-searchbar.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js",
  		"common",
  		30
  	],
  	"./ion-segment_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js",
  		"common",
  		31
  	],
  	"./ion-select_3.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js",
  		"common",
  		32
  	],
  	"./ion-slide_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js",
  		33
  	],
  	"./ion-spinner.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js",
  		"common",
  		34
  	],
  	"./ion-split-pane.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js",
  		35
  	],
  	"./ion-tab-bar_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js",
  		"common",
  		36
  	],
  	"./ion-tab_2.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js",
  		"common",
  		37
  	],
  	"./ion-text.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-text.entry.js",
  		"common",
  		38
  	],
  	"./ion-textarea.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js",
  		"common",
  		39
  	],
  	"./ion-toast.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js",
  		"common",
  		40
  	],
  	"./ion-toggle.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js",
  		"common",
  		41
  	],
  	"./ion-virtual-scroll.entry.js": [
  		"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js",
  		42
  	]
  };
  function webpackAsyncContext(req) {
  	if(!__webpack_require__.o(map, req)) {
  		return Promise.resolve().then(function() {
  			var e = new Error("Cannot find module '" + req + "'");
  			e.code = 'MODULE_NOT_FOUND';
  			throw e;
  		});
  	}
  
  	var ids = map[req], id = ids[0];
  	return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {
  		return __webpack_require__(id);
  	});
  }
  webpackAsyncContext.keys = function webpackAsyncContextKeys() {
  	return Object.keys(map);
  };
  webpackAsyncContext.id = "./node_modules/@ionic/core/dist/esm lazy recursive ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$";
  module.exports = webpackAsyncContext;
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html":
  /*!**************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***!
    \**************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-app>\n  <ion-split-pane contentId=\"main-content\">\n    <ion-menu contentId=\"main-content\" type=\"overlay\">\n      <ion-content>\n        <ion-list id=\"inbox-list\">\n          <ion-list-header color=\"primary\">Menu</ion-list-header>\n\n          <ion-menu-toggle auto-hide=\"false\" *ngFor=\"let p of appPages; let i = index\">\n            <ion-item (click)=\"selectedIndex = i\" routerDirection=\"root\" [routerLink]=\"[p.url]\" lines=\"none\" detail=\"false\" [class.selected]=\"selectedIndex == i\">\n              <ion-icon slot=\"start\" [ios]=\"p.icon + '-outline'\" [md]=\"p.icon + '-sharp'\"></ion-icon>\n              <ion-label>{{ p.title }}</ion-label>\n            </ion-item>\n          </ion-menu-toggle>\n        </ion-list>\n        <ion-item>\n          <ion-label>Dark Mode</ion-label>\n          <ion-toggle [checked]=\"isDarkMode\" (ionChange)=\"onToggleTheme($event)\"></ion-toggle>\n        </ion-item>\n      </ion-content>\n    </ion-menu>\n    <ion-router-outlet id=\"main-content\"></ion-router-outlet>\n  </ion-split-pane>\n</ion-app>\n");
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/groups/pages/group-details/group-details.component.html":
  /*!********************************************************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/core/groups/pages/group-details/group-details.component.html ***!
    \********************************************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-header [translucent]=\"true\">\r\n  <ion-toolbar color=\"primary\">\r\n    <ion-buttons slot=\"start\">\r\n      <ion-back-button defaultHref=\"/groups\"></ion-back-button>\r\n    </ion-buttons>\r\n    <ion-title><h2 id=\"title\">{{group.name}}</h2></ion-title>\r\n    <ion-buttons slot=\"end\" style=\"margin-right: 20px;\">\r\n      <ion-item color=\"translucent\" (click)=\"removeGroup()\">\r\n        <ion-icon name=\"trash-outline\" color=\"danger\"></ion-icon>\r\n      </ion-item>\r\n    </ion-buttons>\r\n  </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n  <div id=\"container\">\r\n    <ion-grid>\r\n      <ion-row>\r\n        <ion-col>\r\n          <ion-select multiple=\"true\" okText=\"Update Group\" [(ngModel)]=\"selectedStudents\" selectedText=\"Select Students\"\r\n          (ionChange)=\"onSelectionChange()\">\r\n            <ion-label>Select Students</ion-label>\r\n            <ion-select-option *ngFor=\"let student of allStudents\" [value]=\"student.id\">\r\n              {{student.name}}\r\n            </ion-select-option>\r\n          </ion-select>\r\n        </ion-col>\r\n      </ion-row>\r\n      <ion-row>\r\n        <ion-col>\r\n          <div *ngIf=\"!group.students || group.students.length === 0\">\r\n            <p>This group is pretty empty, huh? <br/> Just click on the dropdown above to add someone to this group!</p>\r\n          </div>\r\n          <ion-list *ngIf=\"group.students && group.students.length > 0\">\r\n            <ion-item *ngFor=\"let student of group.students\">\r\n              <ion-label><ion-icon name=\"person\" style=\"margin-right: 5px;\"></ion-icon>{{student.name}}</ion-label>\r\n            </ion-item>\r\n          </ion-list>\r\n        </ion-col>\r\n      </ion-row>\r\n    </ion-grid>\r\n  </div>\r\n</ion-content>\r\n");
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/groups/pages/group-list/group-list.component.html":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/core/groups/pages/group-list/group-list.component.html ***!
    \**************************************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-header [translucent]=\"true\">\n  <ion-toolbar color=\"primary\">\n    <ion-buttons slot=\"start\">\n      <ion-menu-button></ion-menu-button>\n    </ion-buttons>\n    <ion-title><h1 id=\"title\">Groups</h1></ion-title>\n    <ion-buttons slot=\"end\" style=\"margin-right: 20px;\">\n      <ion-item (click)=\"toggleGroupInput()\" color=\"translucent\">\n        <ion-icon name=\"person-add-outline\"></ion-icon>\n      </ion-item>\n    </ion-buttons>\n  </ion-toolbar>\n</ion-header>\n\n<ion-content>\n  <div id=\"container\">\n    <ion-grid>\n      <ion-row *ngIf=\"showGroupInput\">\n        <ion-col>\n          <ion-item>\n            <ion-label>Group Name:</ion-label>\n            <ion-input [(ngModel)]=\"groupName\"></ion-input>\n            <ion-button (click)=\"createGroup()\">Add</ion-button>\n          </ion-item>\n        </ion-col>\n      </ion-row>\n      <ion-row>\n        <ion-col>\n          <div *ngIf=\"groups && groups.length > 0\">\n            <ion-row *ngFor=\"let group of groups\">\n              <ion-col>\n                <ion-item [routerLink]=\"'/groups/details/' + group.id\">\n                  <ion-icon name=\"people-outline\" slot=\"start\"></ion-icon>\n                  <ion-label>\n                    {{group.name}}\n                    <ion-badge>{{group.students.length}}</ion-badge>\n                  </ion-label>\n                </ion-item>\n              </ion-col>\n            </ion-row>\n          </div>\n        </ion-col>\n      </ion-row>\n    </ion-grid>\n  </div>\n</ion-content>\n");
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/students/pages/students-list/students-list.component.html":
  /*!**********************************************************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/core/students/pages/students-list/students-list.component.html ***!
    \**********************************************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-header [translucent]=\"true\">\r\n  <ion-toolbar color=\"primary\">\r\n    <ion-buttons slot=\"start\">\r\n      <ion-menu-button></ion-menu-button>\r\n    </ion-buttons>\r\n    <ion-title><h1 id=\"title\">Students</h1></ion-title>\r\n  </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n  <div id=\"container\">\r\n    <strong class=\"capitalize\">Student List:</strong>\r\n    <ion-grid>\r\n      <ion-row *ngFor=\"let student of students\">\r\n        <ion-col size=\"8\">\r\n          <ion-label>{{student.name}}</ion-label>\r\n        </ion-col>\r\n        <ion-col size=\"4\">\r\n          <ion-icon name=\"trash-outline\" class=\"icon-btn\" color=\"danger\" size=\"small\"\r\n          (click)=\"deleteStudent(student.id)\"></ion-icon>\r\n        </ion-col>\r\n      </ion-row>\r\n      <ion-row>\r\n        <ion-col size=\"12\">\r\n          <form>\r\n            <ion-item>\r\n              <ion-label>New Student</ion-label>\r\n              <ion-input placeholder=\"John Doe\" #nameInput></ion-input>\r\n              <ion-icon name=\"add-circle-outline\" color=\"success\" slot=\"end\"\r\n              (click)=\"addStudent()\"></ion-icon>\r\n            </ion-item>\r\n          </form>\r\n        </ion-col>\r\n      </ion-row>\r\n    </ion-grid>\r\n  </div>\r\n</ion-content>\r\n");
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/components/print-view/print-view.component.html":
  /*!*********************************************************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/components/print-view/print-view.component.html ***!
    \*********************************************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-grid>\r\n  <ion-row>\r\n    <ion-col>\r\n      <h2>Print View</h2>\r\n    </ion-col>\r\n  </ion-row>\r\n  <ion-row id=\"printArea\" #printArea>\r\n    <ion-col>\r\n          <table class=\"table\">\r\n            <thead>\r\n            <tr>\r\n              <th>Date</th>\r\n              <th>Group Name</th>\r\n              <th>Student Name</th>\r\n              <th>Student Status</th>\r\n            </tr>\r\n            </thead>\r\n            <tbody>\r\n            <tr *ngFor=\"let row of flattenData()\">\r\n              <td>{{row.Date  | date: \"dd.MM.yyyy HH:mm\"}}</td>\r\n              <td>{{row.GroupName}}</td>\r\n              <td>{{row.StudentName}}</td>\r\n              <td>{{row.StudentStatus}}</td>\r\n            </tr>\r\n            </tbody>\r\n          </table>\r\n    </ion-col>\r\n  </ion-row>\r\n</ion-grid>\r\n\r\n");
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/pages/new-training/new-training.component.html":
  /*!********************************************************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/pages/new-training/new-training.component.html ***!
    \********************************************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-header [translucent]=\"true\">\n  <ion-toolbar color=\"primary\">\n    <ion-buttons slot=\"start\">\n      <ion-menu-button></ion-menu-button>\n    </ion-buttons>\n    <ion-title><h1 id=\"title\">New Training</h1></ion-title>\n  </ion-toolbar>\n</ion-header>\n\n<ion-content>\n  <div id=\"container\">\n    <ion-grid>\n      <ion-row *ngIf=\"!training\">\n        <ion-col size=\"12\">\n          <p><strong class=\"capitalize\">Record a new training session!</strong></p>\n          <ion-item>\n            <ion-label>Set Date & Time</ion-label>\n            <ion-datetime\n                    display-format=\"DD.MMM.YYYY HH:mm\"\n                    placeholder=\"01.Jan.2020 16:00\"\n                    [value]=\"currentDate.toDateString()\"\n                    [(ngModel)]=\"selectedDate\">\n            </ion-datetime>\n          </ion-item>\n          <ion-item>\n            <ion-label>Select Group</ion-label>\n            <ion-select (ionChange)=\"groupSelectChange()\" [(ngModel)]=\"groupId\">\n              <ion-select-option *ngFor=\"let group of groups\" [value]=\"group.id\">{{group.name}}</ion-select-option>\n            </ion-select>\n          </ion-item>\n          <ion-button color=\"success\" class=\"ion-float-right\" [disabled]=\"!selectedDate || !selectedGroup\" (click)=\"startTraining()\">Start Training</ion-button>\n        </ion-col>\n      </ion-row>\n      <ion-row *ngIf=\"training\">\n        <ion-col>\n          <p><strong class=\"capitalize\">{{training.group.name}}, {{selectedDate | date: \"dd.MMM.yyyy HH:mm\"}}</strong></p>\n          <ion-row *ngFor=\"let item of training.students\">\n            <ion-col size=\"6\">\n                <ion-label>{{item.student.name}}</ion-label>\n            </ion-col>\n            <ion-col size=\"6\">\n              <ion-icon [name]=\"item.status === -1 ? 'close-circle' : 'close-circle-outline'\" color=\"danger\" size=\"large\" class=\"icon-btn\"\n                        (click)=\"item.status = -1\"></ion-icon>\n              <ion-icon [name]=\"item.status === 0 ? 'help-circle' : 'help-circle-outline'\" color=\"warning\" size=\"large\" class=\"icon-btn\"\n                        (click)=\"item.status = 0\"></ion-icon>\n              <ion-icon [name]=\"item.status === 1 ? 'checkmark-circle' : 'checkmark-circle-outline'\" color=\"success\" size=\"large\" class=\"icon-btn\"\n                        (click)=\"item.status = 1\"></ion-icon>\n            </ion-col>\n          </ion-row>\n          <ion-row>\n            <ion-col size=\"12\">\n              <ion-button class=\"ion-float-right\" color=\"success\" (click)=\"saveTraining()\">Save</ion-button>\n              <ion-button class=\"ion-float-right\" color=\"warning\" (click)=\"training = null\">Cancel</ion-button>\n            </ion-col>\n          </ion-row>\n        </ion-col>\n      </ion-row>\n    </ion-grid>\n  </div>\n</ion-content>\n");
  
  /***/ }),
  
  /***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/pages/training-archive/training-archive.component.html":
  /*!****************************************************************************************************************************!*\
    !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/pages/training-archive/training-archive.component.html ***!
    \****************************************************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("<ion-header [translucent]=\"true\">\r\n  <ion-toolbar color=\"primary\">\r\n    <ion-buttons slot=\"start\">\r\n      <ion-menu-button></ion-menu-button>\r\n    </ion-buttons>\r\n    <ion-title><h1 id=\"title\">Training Archive</h1></ion-title>\r\n    <ion-buttons slot=\"end\">\r\n      <ion-item color=\"translucent\">\r\n        <ion-icon name=\"ellipsis-vertical-outline\" (click)=\"toggleActionSheet()\"></ion-icon>\r\n      </ion-item>\r\n    </ion-buttons>\r\n  </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n  <div id=\"container\">\r\n    <ion-grid *ngIf=\"!printView\">\r\n      <ion-row>\r\n        <ion-col>\r\n          <p>This is a list of previous training sessions!</p>\r\n          <div *ngIf=\"trainings\">\r\n            <ion-row *ngFor=\"let training of trainings\">\r\n              <ion-col>\r\n                <ion-card style=\"cursor: pointer;\" [id]=\"'card-' + training.id\" (click)=\"toggleList(training.id)\">\r\n                  <ion-card-header>\r\n                    <ion-card-title>{{training.group? training.group.name : 'No Group'}}\r\n                      <ion-icon name=\"trash\" color=\"danger\" size=\"default\" style=\"float: right;\" (click)=\"removeTraining(training)\"></ion-icon>\r\n                    </ion-card-title>\r\n                    <ion-card-subtitle>{{training.datetime | date: \"dd.MM.yyyy HH:mm\"}}\r\n                      <ion-badge color=\"danger\" class=\"badge\">{{countStatus(training, -1)}}</ion-badge>\r\n                      <ion-badge color=\"warning\" class=\"badge\">{{countStatus(training, 0)}}</ion-badge>\r\n                      <ion-badge color=\"success\" class=\"badge\">{{countStatus(training, 1)}}</ion-badge>\r\n                    </ion-card-subtitle>\r\n                  </ion-card-header>\r\n                  <ion-card-content  [id]=\"'content-' + training.id\" class=\"ion-hide\">\r\n                    <ion-list>\r\n                      <ion-item *ngFor=\"let item of training.students\">\r\n                        <ion-label>\r\n                          <ion-icon name=\"person\" style=\"margin-right: 5px;\"></ion-icon>{{item.student.name}}</ion-label>\r\n                        <ion-icon *ngIf=\"item.status === 1\" name=\"checkmark-circle\" color=\"success\" size=\"large\" slot=\"end\" class=\"ion-float-right\"></ion-icon>\r\n                        <ion-icon *ngIf=\"item.status === 0\" name=\"help-circle\" color=\"warning\" size=\"large\" slot=\"end\" class=\"ion-float-right\"></ion-icon>\r\n                        <ion-icon *ngIf=\"item.status === -1\" name=\"close-circle\" color=\"danger\" size=\"large\" slot=\"end\" class=\"ion-float-right\"></ion-icon>\r\n                      </ion-item>\r\n                    </ion-list>\r\n                  </ion-card-content>\r\n                </ion-card>\r\n              </ion-col>\r\n            </ion-row>\r\n          </div>\r\n        </ion-col>\r\n      </ion-row>\r\n    </ion-grid>\r\n    <app-print-view *ngIf=\"printView\" [trainings]=\"trainings\"></app-print-view>\r\n  </div>\r\n</ion-content>\r\n\r\n");
  
  /***/ }),
  
  /***/ "./src/app/app-routing.module.ts":
  /*!***************************************!*\
    !*** ./src/app/app-routing.module.ts ***!
    \***************************************/
  /*! exports provided: AppRoutingModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function() { return AppRoutingModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  
  
  
  const routes = [
      {
          path: 'groups',
          loadChildren: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! ./core/groups/group.module */ "./src/app/core/groups/group.module.ts")).then(m => m.GroupModule)
      },
      {
          path: 'students',
          loadChildren: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! ./core/students/students.module */ "./src/app/core/students/students.module.ts")).then(m => m.StudentsModule)
      },
      {
          path: 'training',
          loadChildren: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! ./core/training/training.module */ "./src/app/core/training/training.module.ts")).then(m => m.TrainingModule)
      },
  ];
  let AppRoutingModule = class AppRoutingModule {
  };
  AppRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          imports: [
              _angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forRoot(routes, { preloadingStrategy: _angular_router__WEBPACK_IMPORTED_MODULE_2__["PreloadAllModules"] })
          ],
          exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
      })
  ], AppRoutingModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/app.component.scss":
  /*!************************************!*\
    !*** ./src/app/app.component.scss ***!
    \************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("ion-menu ion-content {\n  --background: var(--ion-item-background, var(--ion-background-color, #fff));\n}\n\nion-menu.md ion-content {\n  --padding-start: 8px;\n  --padding-end: 8px;\n  --padding-top: 20px;\n  --padding-bottom: 20px;\n}\n\nion-menu.md ion-list {\n  padding: 20px 0;\n}\n\nion-menu.md ion-note {\n  margin-bottom: 30px;\n}\n\nion-menu.md ion-list-header,\nion-menu.md ion-note {\n  padding-left: 10px;\n}\n\nion-menu.md ion-list#inbox-list {\n  border-bottom: 1px solid var(--ion-color-step-150, #d7d8da);\n}\n\nion-menu.md ion-list#inbox-list ion-list-header {\n  font-size: 22px;\n  font-weight: 600;\n  min-height: 20px;\n}\n\nion-menu.md ion-list#labels-list ion-list-header {\n  font-size: 16px;\n  margin-bottom: 18px;\n  color: #757575;\n  min-height: 26px;\n}\n\nion-menu.md ion-item {\n  --padding-start: 10px;\n  --padding-end: 10px;\n  border-radius: 4px;\n}\n\nion-menu.md ion-item.selected {\n  --background: rgba(var(--ion-color-primary-rgb), 0.14);\n}\n\nion-menu.md ion-item.selected ion-icon {\n  color: var(--ion-color-primary);\n}\n\nion-menu.md ion-item ion-icon {\n  color: #616e7e;\n}\n\nion-menu.md ion-item ion-label {\n  font-weight: 500;\n}\n\nion-menu.ios ion-content {\n  --padding-bottom: 20px;\n}\n\nion-menu.ios ion-list {\n  padding: 20px 0 0 0;\n}\n\nion-menu.ios ion-note {\n  line-height: 24px;\n  margin-bottom: 20px;\n}\n\nion-menu.ios ion-item {\n  --padding-start: 16px;\n  --padding-end: 16px;\n  --min-height: 50px;\n}\n\nion-menu.ios ion-item.selected ion-icon {\n  color: var(--ion-color-primary);\n}\n\nion-menu.ios ion-item ion-icon {\n  font-size: 24px;\n  color: #73849a;\n}\n\nion-menu.ios ion-list#labels-list ion-list-header {\n  margin-bottom: 8px;\n}\n\nion-menu.ios ion-list-header,\nion-menu.ios ion-note {\n  padding-left: 16px;\n  padding-right: 16px;\n}\n\nion-menu.ios ion-note {\n  margin-bottom: 8px;\n}\n\nion-note {\n  display: inline-block;\n  font-size: 16px;\n  color: var(--ion-color-medium-shade);\n}\n\nion-item.selected {\n  --color: var(--ion-color-primary);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsMkVBQUE7QUFDRjs7QUFFQTtFQUNFLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxlQUFBO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBQTtBQUNGOztBQUVBOztFQUVFLGtCQUFBO0FBQ0Y7O0FBRUE7RUFDRSwyREFBQTtBQUNGOztBQUVBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBRUEsZ0JBQUE7QUFBRjs7QUFHQTtFQUNFLGVBQUE7RUFFQSxtQkFBQTtFQUVBLGNBQUE7RUFFQSxnQkFBQTtBQUhGOztBQU1BO0VBQ0UscUJBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FBSEY7O0FBTUE7RUFDRSxzREFBQTtBQUhGOztBQU1BO0VBQ0UsK0JBQUE7QUFIRjs7QUFNQTtFQUNFLGNBQUE7QUFIRjs7QUFNQTtFQUNFLGdCQUFBO0FBSEY7O0FBTUE7RUFDRSxzQkFBQTtBQUhGOztBQU1BO0VBQ0UsbUJBQUE7QUFIRjs7QUFNQTtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7QUFIRjs7QUFNQTtFQUNFLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtBQUhGOztBQU1BO0VBQ0UsK0JBQUE7QUFIRjs7QUFNQTtFQUNFLGVBQUE7RUFDQSxjQUFBO0FBSEY7O0FBTUE7RUFDRSxrQkFBQTtBQUhGOztBQU1BOztFQUVFLGtCQUFBO0VBQ0EsbUJBQUE7QUFIRjs7QUFNQTtFQUNFLGtCQUFBO0FBSEY7O0FBTUE7RUFDRSxxQkFBQTtFQUNBLGVBQUE7RUFFQSxvQ0FBQTtBQUpGOztBQU9BO0VBQ0UsaUNBQUE7QUFKRiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImlvbi1tZW51IGlvbi1jb250ZW50IHtcbiAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24taXRlbS1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xufVxuXG5pb24tbWVudS5tZCBpb24tY29udGVudCB7XG4gIC0tcGFkZGluZy1zdGFydDogOHB4O1xuICAtLXBhZGRpbmctZW5kOiA4cHg7XG4gIC0tcGFkZGluZy10b3A6IDIwcHg7XG4gIC0tcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1saXN0IHtcbiAgcGFkZGluZzogMjBweCAwO1xufVxuXG5pb24tbWVudS5tZCBpb24tbm90ZSB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1saXN0LWhlYWRlcixcbmlvbi1tZW51Lm1kIGlvbi1ub3RlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG5pb24tbWVudS5tZCBpb24tbGlzdCNpbmJveC1saXN0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1zdGVwLTE1MCwgI2Q3ZDhkYSk7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1saXN0I2luYm94LWxpc3QgaW9uLWxpc3QtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuXG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1saXN0I2xhYmVscy1saXN0IGlvbi1saXN0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMTZweDtcblxuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuXG4gIGNvbG9yOiAjNzU3NTc1O1xuXG4gIG1pbi1oZWlnaHQ6IDI2cHg7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1pdGVtIHtcbiAgLS1wYWRkaW5nLXN0YXJ0OiAxMHB4O1xuICAtLXBhZGRpbmctZW5kOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1pdGVtLnNlbGVjdGVkIHtcbiAgLS1iYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiksIDAuMTQpO1xufVxuXG5pb24tbWVudS5tZCBpb24taXRlbS5zZWxlY3RlZCBpb24taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1pdGVtIGlvbi1pY29uIHtcbiAgY29sb3I6ICM2MTZlN2U7XG59XG5cbmlvbi1tZW51Lm1kIGlvbi1pdGVtIGlvbi1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbmlvbi1tZW51LmlvcyBpb24tY29udGVudCB7XG4gIC0tcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG5cbmlvbi1tZW51LmlvcyBpb24tbGlzdCB7XG4gIHBhZGRpbmc6IDIwcHggMCAwIDA7XG59XG5cbmlvbi1tZW51LmlvcyBpb24tbm90ZSB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG5pb24tbWVudS5pb3MgaW9uLWl0ZW0ge1xuICAtLXBhZGRpbmctc3RhcnQ6IDE2cHg7XG4gIC0tcGFkZGluZy1lbmQ6IDE2cHg7XG4gIC0tbWluLWhlaWdodDogNTBweDtcbn1cblxuaW9uLW1lbnUuaW9zIGlvbi1pdGVtLnNlbGVjdGVkIGlvbi1pY29uIHtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbn1cblxuaW9uLW1lbnUuaW9zIGlvbi1pdGVtIGlvbi1pY29uIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBjb2xvcjogIzczODQ5YTtcbn1cblxuaW9uLW1lbnUuaW9zIGlvbi1saXN0I2xhYmVscy1saXN0IGlvbi1saXN0LWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuaW9uLW1lbnUuaW9zIGlvbi1saXN0LWhlYWRlcixcbmlvbi1tZW51LmlvcyBpb24tbm90ZSB7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy1yaWdodDogMTZweDtcbn1cblxuaW9uLW1lbnUuaW9zIGlvbi1ub3RlIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG5pb24tbm90ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuXG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlKTtcbn1cblxuaW9uLWl0ZW0uc2VsZWN0ZWQge1xuICAtLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG59Il19 */");
  
  /***/ }),
  
  /***/ "./src/app/app.component.ts":
  /*!**********************************!*\
    !*** ./src/app/app.component.ts ***!
    \**********************************/
  /*! exports provided: AppComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic-native/splash-screen/ngx */ "./node_modules/@ionic-native/splash-screen/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic-native/status-bar/ngx */ "./node_modules/@ionic-native/status-bar/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  /* harmony import */ var _core_groups_services_group_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./core/groups/services/group.service */ "./src/app/core/groups/services/group.service.ts");
  
  
  
  
  
  
  
  let AppComponent = class AppComponent {
      constructor(platform, splashScreen, statusBar, animCtrl, route, groupService) {
          this.platform = platform;
          this.splashScreen = splashScreen;
          this.statusBar = statusBar;
          this.animCtrl = animCtrl;
          this.route = route;
          this.groupService = groupService;
          this.selectedIndex = 0;
          this.isDarkMode = false;
          this.appPages = [
              {
                  title: 'Groups',
                  url: '/groups',
                  icon: 'people'
              },
              {
                  title: 'Students',
                  url: '/students',
                  icon: 'person'
              },
              {
                  title: 'New Training',
                  url: '/training/new',
                  icon: 'list'
              },
              {
                  title: 'Training Archive',
                  url: '/training/archive',
                  icon: 'archive'
              },
          ];
          this.initializeApp();
      }
      ngAfterViewInit() {
          setInterval(() => {
              const elements = document.getElementById('title');
              const animRed = this.animCtrl.create()
                  .addElement(elements)
                  .duration(2000)
                  .iterations(1)
                  .fromTo('color', 'white', 'red');
              animRed.play().then(() => {
                  const animWhite = this.animCtrl.create()
                      .addElement(elements)
                      .duration(2000)
                      .iterations(1)
                      .fromTo('color', 'red', 'white');
                  animWhite.play();
              });
          }, 4000);
      }
      initializeApp() {
          this.platform.ready().then(() => {
              this.statusBar.styleDefault();
              this.splashScreen.hide();
          });
      }
      ngOnInit() {
          const path = window.location.pathname.split('folder/')[1];
          if (path !== undefined) {
              this.selectedIndex = this.appPages.findIndex(page => page.title.toLowerCase() === path.toLowerCase());
          }
          document.body.setAttribute('color-theme', localStorage.getItem('theme'));
          if (localStorage.getItem('theme') === 'dark') {
              this.isDarkMode = true;
          }
      }
      onToggleTheme(event) {
          var _a;
          if ((_a = event === null || event === void 0 ? void 0 : event.detail) === null || _a === void 0 ? void 0 : _a.checked) {
              document.body.setAttribute('color-theme', 'dark');
              localStorage.setItem('theme', 'dark');
          }
          else {
              document.body.setAttribute('color-theme', 'light');
              localStorage.setItem('theme', 'light');
          }
      }
  };
  AppComponent.ctorParameters = () => [
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["Platform"] },
      { type: _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_3__["SplashScreen"] },
      { type: _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_4__["StatusBar"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["AnimationController"] },
      { type: _angular_router__WEBPACK_IMPORTED_MODULE_5__["ActivatedRoute"] },
      { type: _core_groups_services_group_service__WEBPACK_IMPORTED_MODULE_6__["GroupService"] }
  ];
  AppComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-root',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./app.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")).default]
      })
  ], AppComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/app.module.ts":
  /*!*******************************!*\
    !*** ./src/app/app.module.ts ***!
    \*******************************/
  /*! exports provided: AppModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic-native/splash-screen/ngx */ "./node_modules/@ionic-native/splash-screen/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ionic-native/status-bar/ngx */ "./node_modules/@ionic-native/status-bar/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts");
  /* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js");
  /* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts");
  /* harmony import */ var _core_core_module__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/core.module */ "./src/app/core/core.module.ts");
  
  
  
  
  
  
  
  
  
  
  
  let AppModule = class AppModule {
  };
  AppModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          declarations: [_app_component__WEBPACK_IMPORTED_MODULE_7__["AppComponent"]],
          entryComponents: [],
          imports: [
              _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__["BrowserModule"],
              _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"].forRoot(),
              _app_routing_module__WEBPACK_IMPORTED_MODULE_9__["AppRoutingModule"],
              _core_core_module__WEBPACK_IMPORTED_MODULE_10__["CoreModule"],
              _angular_common_http__WEBPACK_IMPORTED_MODULE_8__["HttpClientModule"],
          ],
          providers: [
              _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_6__["StatusBar"],
              _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_5__["SplashScreen"],
              { provide: _angular_router__WEBPACK_IMPORTED_MODULE_3__["RouteReuseStrategy"], useClass: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicRouteStrategy"] }
          ],
          bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_7__["AppComponent"]]
      })
  ], AppModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/core.module.ts":
  /*!*************************************!*\
    !*** ./src/app/core/core.module.ts ***!
    \*************************************/
  /*! exports provided: CoreModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CoreModule", function() { return CoreModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js");
  /* harmony import */ var _groups_group_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./groups/group.module */ "./src/app/core/groups/group.module.ts");
  /* harmony import */ var _students_students_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./students/students.module */ "./src/app/core/students/students.module.ts");
  /* harmony import */ var _training_training_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./training/training.module */ "./src/app/core/training/training.module.ts");
  
  
  
  
  
  
  let CoreModule = class CoreModule {
  };
  CoreModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          declarations: [],
          imports: [
              _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"],
              _groups_group_module__WEBPACK_IMPORTED_MODULE_3__["GroupModule"],
              _students_students_module__WEBPACK_IMPORTED_MODULE_4__["StudentsModule"],
              _training_training_module__WEBPACK_IMPORTED_MODULE_5__["TrainingModule"]
          ],
          exports: []
      })
  ], CoreModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/groups/group-routing.module.ts":
  /*!*****************************************************!*\
    !*** ./src/app/core/groups/group-routing.module.ts ***!
    \*****************************************************/
  /*! exports provided: GroupRoutingModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupRoutingModule", function() { return GroupRoutingModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  /* harmony import */ var _pages_group_list_group_list_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages/group-list/group-list.component */ "./src/app/core/groups/pages/group-list/group-list.component.ts");
  /* harmony import */ var _pages_group_details_group_details_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/group-details/group-details.component */ "./src/app/core/groups/pages/group-details/group-details.component.ts");
  
  
  
  
  
  const routes = [
      {
          path: '',
          component: _pages_group_list_group_list_component__WEBPACK_IMPORTED_MODULE_3__["GroupListComponent"]
      },
      {
          path: 'details/:id',
          component: _pages_group_details_group_details_component__WEBPACK_IMPORTED_MODULE_4__["GroupDetailsComponent"]
      },
  ];
  let GroupRoutingModule = class GroupRoutingModule {
  };
  GroupRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)],
          exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
      })
  ], GroupRoutingModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/groups/group.module.ts":
  /*!*********************************************!*\
    !*** ./src/app/core/groups/group.module.ts ***!
    \*********************************************/
  /*! exports provided: GroupModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupModule", function() { return GroupModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js");
  /* harmony import */ var _group_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./group-routing.module */ "./src/app/core/groups/group-routing.module.ts");
  /* harmony import */ var _pages_group_list_group_list_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/group-list/group-list.component */ "./src/app/core/groups/pages/group-list/group-list.component.ts");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js");
  /* harmony import */ var _services_group_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./services/group.service */ "./src/app/core/groups/services/group.service.ts");
  /* harmony import */ var _pages_group_details_group_details_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages/group-details/group-details.component */ "./src/app/core/groups/pages/group-details/group-details.component.ts");
  
  
  
  
  
  
  
  
  
  let GroupModule = class GroupModule {
  };
  GroupModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          declarations: [
              _pages_group_list_group_list_component__WEBPACK_IMPORTED_MODULE_4__["GroupListComponent"],
              _pages_group_details_group_details_component__WEBPACK_IMPORTED_MODULE_8__["GroupDetailsComponent"]
          ],
          imports: [
              _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"],
              _ionic_angular__WEBPACK_IMPORTED_MODULE_5__["IonicModule"],
              _group_routing_module__WEBPACK_IMPORTED_MODULE_3__["GroupRoutingModule"],
              _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormsModule"]
          ],
          exports: [
              _pages_group_list_group_list_component__WEBPACK_IMPORTED_MODULE_4__["GroupListComponent"],
              _pages_group_details_group_details_component__WEBPACK_IMPORTED_MODULE_8__["GroupDetailsComponent"]
          ],
          providers: [
              _services_group_service__WEBPACK_IMPORTED_MODULE_7__["GroupService"]
          ]
      })
  ], GroupModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/groups/pages/group-details/group-details.component.scss":
  /*!******************************************************************************!*\
    !*** ./src/app/core/groups/pages/group-details/group-details.component.scss ***!
    \******************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvcmUvZ3JvdXBzL3BhZ2VzL2dyb3VwLWRldGFpbHMvZ3JvdXAtZGV0YWlscy5jb21wb25lbnQuc2NzcyJ9 */");
  
  /***/ }),
  
  /***/ "./src/app/core/groups/pages/group-details/group-details.component.ts":
  /*!****************************************************************************!*\
    !*** ./src/app/core/groups/pages/group-details/group-details.component.ts ***!
    \****************************************************************************/
  /*! exports provided: GroupDetailsComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupDetailsComponent", function() { return GroupDetailsComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _services_group_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/group.service */ "./src/app/core/groups/services/group.service.ts");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  /* harmony import */ var _students_services_student_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../students/services/student.service */ "./src/app/core/students/services/student.service.ts");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  
  
  
  
  
  
  let GroupDetailsComponent = class GroupDetailsComponent {
      constructor(router, route, groupService, studentService, alertCtrl) {
          this.router = router;
          this.route = route;
          this.groupService = groupService;
          this.studentService = studentService;
          this.alertCtrl = alertCtrl;
          const id = this.route.snapshot.paramMap.get('id');
          this.group = this.groupService.getGroupById(id);
          this.studentsSub = this.studentService.studentsSubject.subscribe((data) => this.allStudents = data);
          this.selectedStudents = [];
          this.group.students.forEach(student => this.selectedStudents.push(student.id));
      }
      ngOnInit() { }
      onSelectionChange() {
          if (!this.selectedStudents || this.selectedStudents.length <= 0) {
              return;
          }
          this.group.students = this.allStudents.filter(item => this.selectedStudents.some(id => id === item.id));
          this.save();
      }
      save() {
          this.groupService.updateGroup(this.group);
      }
      removeGroup() {
          return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
              const alert = yield this.alertCtrl.create({
                  header: 'Confirm delete',
                  message: 'Do you really want to delete this group? The archive is not affected by this.',
                  buttons: [
                      {
                          text: 'Cancel',
                          role: 'cancel',
                          handler: () => { }
                      },
                      {
                          text: 'Confirm',
                          handler: () => {
                              this.groupService.removeGroup(this.group);
                              this.router.navigateByUrl('/groups');
                          }
                      }
                  ]
              });
              yield alert.present();
          });
      }
  };
  GroupDetailsComponent.ctorParameters = () => [
      { type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] },
      { type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"] },
      { type: _services_group_service__WEBPACK_IMPORTED_MODULE_2__["GroupService"] },
      { type: _students_services_student_service__WEBPACK_IMPORTED_MODULE_4__["StudentService"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__["AlertController"] }
  ];
  GroupDetailsComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-group-details',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./group-details.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/groups/pages/group-details/group-details.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./group-details.component.scss */ "./src/app/core/groups/pages/group-details/group-details.component.scss")).default]
      })
  ], GroupDetailsComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/groups/pages/group-list/group-list.component.scss":
  /*!************************************************************************!*\
    !*** ./src/app/core/groups/pages/group-list/group-list.component.scss ***!
    \************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvcmUvZ3JvdXBzL3BhZ2VzL2dyb3VwLWxpc3QvZ3JvdXAtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */");
  
  /***/ }),
  
  /***/ "./src/app/core/groups/pages/group-list/group-list.component.ts":
  /*!**********************************************************************!*\
    !*** ./src/app/core/groups/pages/group-list/group-list.component.ts ***!
    \**********************************************************************/
  /*! exports provided: GroupListComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupListComponent", function() { return GroupListComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var _services_group_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../services/group.service */ "./src/app/core/groups/services/group.service.ts");
  
  
  
  
  let GroupListComponent = class GroupListComponent {
      constructor(groupService, modalController) {
          this.groupService = groupService;
          this.modalController = modalController;
          this.showGroupInput = false;
          this.groupSub = this.groupService.getGroups().subscribe((data) => {
              this.groups = data;
          });
      }
      ngOnInit() { }
      ngOnDestroy() {
          if (this.groupSub) {
              this.groupSub.unsubscribe();
          }
      }
      toggleGroupInput() {
          this.showGroupInput = !this.showGroupInput;
      }
      createGroup() {
          this.toggleGroupInput();
          if (!this.groupName) {
              return;
          }
          const group = this.groupService.createGroup(this.groupName);
          this.groupName = null;
      }
      removeGroup(group) {
          this.groupService.removeGroup(group);
      }
  };
  GroupListComponent.ctorParameters = () => [
      { type: _services_group_service__WEBPACK_IMPORTED_MODULE_3__["GroupService"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["ModalController"] }
  ];
  GroupListComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-group-list',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./group-list.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/groups/pages/group-list/group-list.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./group-list.component.scss */ "./src/app/core/groups/pages/group-list/group-list.component.scss")).default]
      })
  ], GroupListComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/groups/services/group.service.ts":
  /*!*******************************************************!*\
    !*** ./src/app/core/groups/services/group.service.ts ***!
    \*******************************************************/
  /*! exports provided: GroupService */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupService", function() { return GroupService; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _shared_classes_helper_class__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../shared/classes/helper.class */ "./src/app/shared/classes/helper.class.ts");
  /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js");
  
  
  
  
  let GroupService = class GroupService {
      constructor() {
          this.groupsSubject = new rxjs__WEBPACK_IMPORTED_MODULE_3__["BehaviorSubject"]([]);
          this.load();
      }
      /**
       * Checks if the provided group already exists or not (by id) and adds it to the groups array
       * @param group the group object to add
       */
      addGroup(group) {
          if (!this.groups.some(item => item.id === group.id)) {
              this.groups.push(group);
          }
          this.save();
      }
      getGroups() {
          return this.groupsSubject.asObservable();
      }
      /**
       * Create a new group
       * @param name the name of the group
       */
      createGroup(name) {
          const group = {
              id: _shared_classes_helper_class__WEBPACK_IMPORTED_MODULE_2__["Helper"].uuid(),
              name,
              students: [],
              createdAt: new Date(),
              updatedAt: new Date()
          };
          this.addGroup(group);
          return group;
      }
      /**
       * Remove a group from the groups array
       * @param group the group object to remove
       */
      removeGroup(group) {
          return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
              this.groups = yield this.groups.filter(item => item.id !== group.id);
              this.save();
          });
      }
      /**
       * Updates an already existing group object.
       * Returns false if provided group does not exist in array
       * @param group the group object to update
       */
      updateGroup(group) {
          let found = false;
          this.groups.forEach(g => {
              if (g.id === group.id) {
                  g = group;
                  g.updatedAt = new Date();
                  found = true;
              }
          });
          this.save();
          return found;
      }
      /**
       * Returns an array with all stored groups
       */
      getAllGroups() {
          return [...this.groups];
      }
      /**
       * Returns a single group object, if a group with the given id exists.
       * Otherwise it will return null
       * @param id the group id to search for
       */
      getGroupById(id) {
          const result = this.groups.filter(group => group.id === id);
          if (result && result.length > 0) {
              return result[0];
          }
          else {
              return null;
          }
      }
      /**
       * Saves the data to local storage
       */
      save() {
          console.log('SAVING GROUP DATA ', this.groups);
          localStorage.setItem('groups', JSON.stringify([...this.groups]));
          this.groupsSubject.next(this.groups);
      }
      /**
       * Loads the data from local storage
       */
      load() {
          const data = localStorage.getItem('groups');
          this.groups = [];
          if (data) {
              this.groups = JSON.parse(data);
              this.groups.forEach((group) => {
                  group.createdAt = new Date(group.createdAt);
                  group.updatedAt = new Date(group.updatedAt);
              });
          }
          if (this.groupsSubject) {
              this.groupsSubject.next(this.groups);
          }
      }
  };
  GroupService.ctorParameters = () => [];
  GroupService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
          providedIn: 'root'
      })
  ], GroupService);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/students/pages/students-list/students-list.component.scss":
  /*!********************************************************************************!*\
    !*** ./src/app/core/students/pages/students-list/students-list.component.scss ***!
    \********************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = (".icon-btn {\n  float: right;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29yZS9zdHVkZW50cy9wYWdlcy9zdHVkZW50cy1saXN0L3N0dWRlbnRzLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9jb3JlL3N0dWRlbnRzL3BhZ2VzL3N0dWRlbnRzLWxpc3Qvc3R1ZGVudHMtbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pY29uLWJ0biB7XG4gIGZsb2F0OiByaWdodDtcbn1cbiJdfQ== */");
  
  /***/ }),
  
  /***/ "./src/app/core/students/pages/students-list/students-list.component.ts":
  /*!******************************************************************************!*\
    !*** ./src/app/core/students/pages/students-list/students-list.component.ts ***!
    \******************************************************************************/
  /*! exports provided: StudentsListComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StudentsListComponent", function() { return StudentsListComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _services_student_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/student.service */ "./src/app/core/students/services/student.service.ts");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var _shared_classes_helper_class__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../shared/classes/helper.class */ "./src/app/shared/classes/helper.class.ts");
  
  
  
  
  
  let StudentsListComponent = class StudentsListComponent {
      constructor(studentService, alertCtrl) {
          this.studentService = studentService;
          this.alertCtrl = alertCtrl;
          this.students = this.studentService.getStudents();
          // sort students by name asc
          this.sort();
      }
      ngOnInit() { }
      addStudent() {
          if (this.studentInput.value) {
              const student = {
                  id: _shared_classes_helper_class__WEBPACK_IMPORTED_MODULE_4__["Helper"].uuid(),
                  name: this.studentInput.value,
                  createdAt: new Date(),
                  updatedAt: new Date(),
              };
              this.studentService.addStudent(student);
              this.studentInput.value = null;
              this.students = this.studentService.getStudents();
              this.sort();
          }
      }
      sort() {
          this.students.sort((a, b) => {
              if (a.name > b.name) {
                  return 1;
              }
              else if (a.name === b.name) {
                  return 0;
              }
              else {
                  return -1;
              }
          });
      }
      deleteStudent(id) {
          return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
              const alert = yield this.alertCtrl.create({
                  header: 'Confirm delete',
                  message: 'Do you really want to delete this student? The archive is not affected by this.',
                  buttons: [
                      {
                          text: 'Cancel',
                          role: 'cancel',
                          handler: () => { }
                      },
                      {
                          text: 'Confirm',
                          handler: () => {
                              this.students = this.students.filter(student => student.id !== id);
                              this.studentService.removeStudent(id);
                          }
                      }
                  ]
              });
              yield alert.present();
          });
      }
  };
  StudentsListComponent.ctorParameters = () => [
      { type: _services_student_service__WEBPACK_IMPORTED_MODULE_2__["StudentService"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_3__["AlertController"] }
  ];
  StudentsListComponent.propDecorators = {
      studentInput: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: ['nameInput',] }]
  };
  StudentsListComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-students-list',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./students-list.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/students/pages/students-list/students-list.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./students-list.component.scss */ "./src/app/core/students/pages/students-list/students-list.component.scss")).default]
      })
  ], StudentsListComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/students/services/student.service.ts":
  /*!***********************************************************!*\
    !*** ./src/app/core/students/services/student.service.ts ***!
    \***********************************************************/
  /*! exports provided: StudentService */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StudentService", function() { return StudentService; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js");
  
  
  
  let StudentService = class StudentService {
      constructor() {
          this.studentsSubject = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"]([]);
          this.load();
      }
      /**
       * @returns an array of students
       */
      getStudents() {
          return [...this.students];
      }
      /**
       * Adds a new student to the students array
       * @param student the student to add
       */
      addStudent(student) {
          this.students.push(student);
          this.save();
          return true;
      }
      /**
       * Removes a student
       * @param id the id of the student to remove
       */
      removeStudent(id) {
          this.students = this.students.filter(student => student.id !== id);
          this.save();
      }
      /**
       * Saves the students to local storage
       */
      save() {
          localStorage.setItem('students', JSON.stringify(this.students));
          this.studentsSubject.next(this.students);
      }
      /**
       * Loads the students from local storage
       */
      load() {
          this.students = JSON.parse(localStorage.getItem('students'));
          if (!this.students) {
              this.students = [];
          }
          else {
              this.students.forEach((student) => {
                  student.createdAt = new Date(student.createdAt);
                  student.updatedAt = new Date(student.updatedAt);
              });
          }
          this.studentsSubject.next(this.students);
      }
  };
  StudentService.ctorParameters = () => [];
  StudentService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
          providedIn: 'root'
      })
  ], StudentService);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/students/students-routing.module.ts":
  /*!**********************************************************!*\
    !*** ./src/app/core/students/students-routing.module.ts ***!
    \**********************************************************/
  /*! exports provided: StudentsRoutingModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StudentsRoutingModule", function() { return StudentsRoutingModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  /* harmony import */ var _pages_students_list_students_list_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages/students-list/students-list.component */ "./src/app/core/students/pages/students-list/students-list.component.ts");
  
  
  
  
  const routes = [
      {
          path: '',
          component: _pages_students_list_students_list_component__WEBPACK_IMPORTED_MODULE_3__["StudentsListComponent"]
      },
  ];
  let StudentsRoutingModule = class StudentsRoutingModule {
  };
  StudentsRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)],
          exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
      })
  ], StudentsRoutingModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/students/students.module.ts":
  /*!**************************************************!*\
    !*** ./src/app/core/students/students.module.ts ***!
    \**************************************************/
  /*! exports provided: StudentsModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StudentsModule", function() { return StudentsModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js");
  /* harmony import */ var _students_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./students-routing.module */ "./src/app/core/students/students-routing.module.ts");
  /* harmony import */ var _pages_students_list_students_list_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/students-list/students-list.component */ "./src/app/core/students/pages/students-list/students-list.component.ts");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  
  
  
  
  
  
  let StudentsModule = class StudentsModule {
  };
  StudentsModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          declarations: [
              _pages_students_list_students_list_component__WEBPACK_IMPORTED_MODULE_4__["StudentsListComponent"]
          ],
          imports: [
              // Core
              _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"],
              _ionic_angular__WEBPACK_IMPORTED_MODULE_5__["IonicModule"],
              // Intern
              _students_routing_module__WEBPACK_IMPORTED_MODULE_3__["StudentsRoutingModule"],
          ],
          exports: [
              _pages_students_list_students_list_component__WEBPACK_IMPORTED_MODULE_4__["StudentsListComponent"]
          ]
      })
  ], StudentsModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/training/components/print-view/print-view.component.scss":
  /*!*******************************************************************************!*\
    !*** ./src/app/core/training/components/print-view/print-view.component.scss ***!
    \*******************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = (".badge {\n  margin-right: 4px;\n  margin-left: 4px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29yZS90cmFpbmluZy9jb21wb25lbnRzL3ByaW50LXZpZXcvcHJpbnQtdmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGlCQUFBO0VBQ0EsZ0JBQUE7QUFBRiIsImZpbGUiOiJzcmMvYXBwL2NvcmUvdHJhaW5pbmcvY29tcG9uZW50cy9wcmludC12aWV3L3ByaW50LXZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmJhZGdlIHtcclxuICBtYXJnaW4tcmlnaHQ6IDRweDtcclxuICBtYXJnaW4tbGVmdDogNHB4O1xyXG59XHJcbiJdfQ== */");
  
  /***/ }),
  
  /***/ "./src/app/core/training/components/print-view/print-view.component.ts":
  /*!*****************************************************************************!*\
    !*** ./src/app/core/training/components/print-view/print-view.component.ts ***!
    \*****************************************************************************/
  /*! exports provided: PrintViewComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrintViewComponent", function() { return PrintViewComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  
  
  let PrintViewComponent = class PrintViewComponent {
      constructor() {
      }
      ngOnInit() {
          document.body.setAttribute('color-theme', 'light');
      }
      ngAfterViewInit() {
      }
      ngOnDestroy() {
          document.body.setAttribute('color-theme', localStorage.getItem('theme'));
      }
      countStatus(training, status) {
          let count = 0;
          training.students.forEach((student) => {
              if (student.status === status) {
                  count++;
              }
          });
          return count;
      }
      flattenData() {
          // Flatten the data to fit into a table
          const flatData = [];
          this.trainings.forEach((training) => {
              training.students.forEach((item) => {
                  flatData.push({
                      ID: training.id,
                      GroupName: training.group.name,
                      Date: training.datetime,
                      StudentId: item.student.id,
                      StudentName: item.student.name,
                      StudentStatus: item.status
                  });
              });
          });
          return flatData;
      }
  };
  PrintViewComponent.ctorParameters = () => [];
  PrintViewComponent.propDecorators = {
      trainings: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }],
      printArea: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: ['#printArea',] }]
  };
  PrintViewComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-print-view',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./print-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/components/print-view/print-view.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./print-view.component.scss */ "./src/app/core/training/components/print-view/print-view.component.scss")).default]
      })
  ], PrintViewComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/training/pages/new-training/new-training.component.scss":
  /*!******************************************************************************!*\
    !*** ./src/app/core/training/pages/new-training/new-training.component.scss ***!
    \******************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = (".icon-btn {\n  float: right;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29yZS90cmFpbmluZy9wYWdlcy9uZXctdHJhaW5pbmcvbmV3LXRyYWluaW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtBQUNGIiwiZmlsZSI6InNyYy9hcHAvY29yZS90cmFpbmluZy9wYWdlcy9uZXctdHJhaW5pbmcvbmV3LXRyYWluaW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmljb24tYnRuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuIl19 */");
  
  /***/ }),
  
  /***/ "./src/app/core/training/pages/new-training/new-training.component.ts":
  /*!****************************************************************************!*\
    !*** ./src/app/core/training/pages/new-training/new-training.component.ts ***!
    \****************************************************************************/
  /*! exports provided: NewTrainingComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewTrainingComponent", function() { return NewTrainingComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _students_services_student_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../students/services/student.service */ "./src/app/core/students/services/student.service.ts");
  /* harmony import */ var _services_training_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../services/training.service */ "./src/app/core/training/services/training.service.ts");
  /* harmony import */ var _shared_classes_helper_class__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../shared/classes/helper.class */ "./src/app/shared/classes/helper.class.ts");
  /* harmony import */ var _groups_services_group_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../groups/services/group.service */ "./src/app/core/groups/services/group.service.ts");
  
  
  
  
  
  
  let NewTrainingComponent = class NewTrainingComponent {
      constructor(studentService, trainingService, groupService) {
          this.studentService = studentService;
          this.trainingService = trainingService;
          this.groupService = groupService;
          this.currentDate = new Date(Date.now());
      }
      ngOnInit() {
          this.groupSub = this.groupService.getGroups().subscribe((data) => {
              this.groups = data;
              console.log('Got new groups data! ', data);
          });
      }
      startTraining() {
          const arr = [];
          this.selectedGroup.students.forEach(student => {
              arr.push({ student, status: 0 });
          });
          this.training = {
              id: _shared_classes_helper_class__WEBPACK_IMPORTED_MODULE_4__["Helper"].uuid(),
              students: arr,
              group: {
                  id: this.selectedGroup.id,
                  name: this.selectedGroup.name
              },
              datetime: this.selectedDate
          };
      }
      saveTraining() {
          this.trainingService.addTraining(this.training);
      }
      groupSelectChange() {
          console.log('Groups: ', this.groupService.groups);
          this.selectedGroup = this.groupService.getAllGroups().filter((item) => item.id === this.groupId)[0];
      }
  };
  NewTrainingComponent.ctorParameters = () => [
      { type: _students_services_student_service__WEBPACK_IMPORTED_MODULE_2__["StudentService"] },
      { type: _services_training_service__WEBPACK_IMPORTED_MODULE_3__["TrainingService"] },
      { type: _groups_services_group_service__WEBPACK_IMPORTED_MODULE_5__["GroupService"] }
  ];
  NewTrainingComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-new-training',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./new-training.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/pages/new-training/new-training.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./new-training.component.scss */ "./src/app/core/training/pages/new-training/new-training.component.scss")).default]
      })
  ], NewTrainingComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/training/pages/training-archive/training-archive.component.scss":
  /*!**************************************************************************************!*\
    !*** ./src/app/core/training/pages/training-archive/training-archive.component.scss ***!
    \**************************************************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony default export */ __webpack_exports__["default"] = (".badge {\n  float: right;\n  margin-right: 4px;\n  margin-left: 4px;\n}\n\nion-card {\n  z-index: 1;\n}\n\nion-card-header {\n  z-index: 1;\n}\n\nion-card-title {\n  z-index: 1;\n}\n\nion-icon {\n  z-index: 10;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29yZS90cmFpbmluZy9wYWdlcy90cmFpbmluZy1hcmNoaXZlL3RyYWluaW5nLWFyY2hpdmUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQUNGOztBQUNBO0VBQ0UsVUFBQTtBQUVGOztBQUNBO0VBQ0UsVUFBQTtBQUVGOztBQUNBO0VBQ0UsVUFBQTtBQUVGOztBQUNBO0VBQ0UsV0FBQTtBQUVGIiwiZmlsZSI6InNyYy9hcHAvY29yZS90cmFpbmluZy9wYWdlcy90cmFpbmluZy1hcmNoaXZlL3RyYWluaW5nLWFyY2hpdmUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmFkZ2Uge1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBtYXJnaW4tcmlnaHQ6IDRweDtcclxuICBtYXJnaW4tbGVmdDogNHB4O1xyXG59XHJcbmlvbi1jYXJkIHtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG5pb24tY2FyZC1oZWFkZXIge1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbmlvbi1jYXJkLXRpdGxlIHtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG5pb24taWNvbiB7XHJcbiAgei1pbmRleDogMTA7XHJcbn1cclxuIl19 */");
  
  /***/ }),
  
  /***/ "./src/app/core/training/pages/training-archive/training-archive.component.ts":
  /*!************************************************************************************!*\
    !*** ./src/app/core/training/pages/training-archive/training-archive.component.ts ***!
    \************************************************************************************/
  /*! exports provided: TrainingArchiveComponent */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrainingArchiveComponent", function() { return TrainingArchiveComponent; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _services_training_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/training.service */ "./src/app/core/training/services/training.service.ts");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var export_to_csv__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! export-to-csv */ "./node_modules/export-to-csv/build/index.js");
  /* harmony import */ var export_to_csv__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(export_to_csv__WEBPACK_IMPORTED_MODULE_4__);
  /* harmony import */ var _ionic_native_file_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic-native/file/ngx */ "./node_modules/@ionic-native/file/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var _ionic_native_social_sharing_ngx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ionic-native/social-sharing/ngx */ "./node_modules/@ionic-native/social-sharing/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var pdfmake_build_pdfmake_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! pdfmake/build/pdfmake.js */ "./node_modules/pdfmake/build/pdfmake.js");
  /* harmony import */ var pdfmake_build_pdfmake_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(pdfmake_build_pdfmake_js__WEBPACK_IMPORTED_MODULE_7__);
  /* harmony import */ var pdfmake_build_vfs_fonts_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! pdfmake/build/vfs_fonts.js */ "./node_modules/pdfmake/build/vfs_fonts.js");
  /* harmony import */ var pdfmake_build_vfs_fonts_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(pdfmake_build_vfs_fonts_js__WEBPACK_IMPORTED_MODULE_8__);
  
  
  
  
  
  
  
  
  
  let TrainingArchiveComponent = class TrainingArchiveComponent {
      constructor(trainingService, alertCtrl, actionSheetCtrl, platform, file, socialSharing) {
          this.trainingService = trainingService;
          this.alertCtrl = alertCtrl;
          this.actionSheetCtrl = actionSheetCtrl;
          this.platform = platform;
          this.file = file;
          this.socialSharing = socialSharing;
          this.trainings = [];
          this.printView = false;
          // Bugfix for PDFMake
          window.pdfMake.vfs = pdfmake_build_vfs_fonts_js__WEBPACK_IMPORTED_MODULE_8__["pdfMake"].vfs;
          this.trainings = this.trainingService.getTrainings();
      }
      ngOnInit() { }
      toggleList(id) {
          const eleContent = document.getElementById('content-' + id);
          const eleCard = document.getElementById('card-' + id);
          if (eleContent.classList.contains('ion-hide')) {
              eleContent.classList.remove('ion-hide');
          }
          else {
              eleContent.classList.add('ion-hide');
          }
      }
      removeTraining(training) {
          return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
              const alert = yield this.alertCtrl.create({
                  header: 'Confirm delete',
                  message: 'Do you really want to delete this archive entry? This cannot be undone!',
                  buttons: [
                      {
                          text: 'Cancel',
                          role: 'cancel',
                          handler: () => { }
                      },
                      {
                          text: 'Confirm',
                          handler: () => {
                              this.trainings = this.trainings.filter(item => item.datetime !== training.datetime);
                              this.trainingService.removeTraining(training);
                          }
                      }
                  ]
              });
              yield alert.present();
          });
      }
      countStatus(training, status) {
          let count = 0;
          training.students.forEach((student) => {
              if (student.status === status) {
                  count++;
              }
          });
          return count;
      }
      toggleActionSheet() {
          return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () {
              const actionSheet = yield this.actionSheetCtrl.create({
                  header: 'Actions',
                  buttons: [
                      {
                          text: 'Export as CSV',
                          icon: 'download',
                          handler: () => this.csvExport()
                      },
                      {
                          text: 'Print',
                          icon: 'print',
                          handler: () => { this.doPrint(); }
                      },
                      {
                          text: 'Cancel',
                          role: 'cancel',
                          icon: 'close'
                      }
                  ]
              });
              yield actionSheet.present();
          });
      }
      csvExport() {
          // Flatten the data to fit into a table
          const flatData = this.flattenData();
          const options = {
              fieldSeparator: ',',
              quoteStrings: '"',
              decimalSeparator: '.',
              showLabels: true,
              showTitle: true,
              title: 'Training Archive Export',
              useTextFile: false,
              useBom: true,
              useKeysAsHeaders: true,
          };
          const csvExporter = new export_to_csv__WEBPACK_IMPORTED_MODULE_4__["ExportToCsv"](options);
          if (this.platform.is('cordova') || this.platform.is('capacitor')) {
              const file = csvExporter.generateCsv(flatData, true);
              const blob = new Blob([file], { type: 'text/csv' });
              const path = this.file.externalApplicationStorageDirectory;
              this.file.writeFile(path, 'archive.csv', file, { replace: true, append: false })
                  .then((result) => {
                  alert('CSV saved to: ' + path);
                  // this.socialSharing.share(null, 'archive.csv', 'archive.csv',file);
              }, (error) => { alert(error.message); });
          }
          else {
              csvExporter.generateCsv(flatData);
          }
      }
      doPrint() {
          const docDefinition = {
              pageSize: 'A4',
              pageOrientation: 'landscape',
              content: [
                  { text: 'Training Overview', fontSize: 20 },
                  {
                      table: {
                          headerRows: 6,
                          body: [
                              ['ID', 'Group Name', 'Date', 'Student Name', 'Student Status'],
                              ...this.getDataAsArray()
                          ]
                      }
                  }
              ]
          };
          if (this.platform.is('cordova') || this.platform.is('capacitor')) {
              pdfmake_build_pdfmake_js__WEBPACK_IMPORTED_MODULE_7__["createPdf"](docDefinition).getBlob((blob) => {
                  const path = this.file.externalApplicationStorageDirectory;
                  this.file.writeFile(path, 'archive.pdf', blob, { replace: true, append: false })
                      .then((result) => {
                      alert('PDF saved to: ' + path);
                  }, (error) => { alert(error.message); });
              });
          }
          else {
              pdfmake_build_pdfmake_js__WEBPACK_IMPORTED_MODULE_7__["createPdf"](docDefinition).download();
          }
          this.printView = false;
      }
      /**
       * Returns the training array as flattened object array without any nested objects / arrays
       */
      flattenData() {
          // Flatten the data to fit into a table
          const flatData = [];
          this.trainings.forEach((training) => {
              training.students.forEach((item) => {
                  flatData.push({
                      ID: training.id,
                      GroupName: training.group.name,
                      Date: training.datetime,
                      StudentId: item.student.id,
                      StudentName: item.student.name,
                      StudentStatus: item.status
                  });
              });
          });
          return flatData;
      }
      /**
       * Returns the trainig array as flattened two dimensional string array
       * for easier use in tables
       */
      getDataAsArray() {
          // Flatten the data to fit into a table
          const flatData = [];
          this.trainings.forEach((training) => {
              training.students.forEach((item) => {
                  flatData.push([
                      training.id,
                      training.group.name,
                      training.datetime.toString(),
                      item.student.name,
                      item.status + ''
                  ]);
              });
          });
          return flatData;
      }
  };
  TrainingArchiveComponent.ctorParameters = () => [
      { type: _services_training_service__WEBPACK_IMPORTED_MODULE_2__["TrainingService"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_3__["AlertController"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_3__["ActionSheetController"] },
      { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_3__["Platform"] },
      { type: _ionic_native_file_ngx__WEBPACK_IMPORTED_MODULE_5__["File"] },
      { type: _ionic_native_social_sharing_ngx__WEBPACK_IMPORTED_MODULE_6__["SocialSharing"] }
  ];
  TrainingArchiveComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
          selector: 'app-training-archive',
          template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./training-archive.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/core/training/pages/training-archive/training-archive.component.html")).default,
          styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./training-archive.component.scss */ "./src/app/core/training/pages/training-archive/training-archive.component.scss")).default]
      })
  ], TrainingArchiveComponent);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/training/services/training.service.ts":
  /*!************************************************************!*\
    !*** ./src/app/core/training/services/training.service.ts ***!
    \************************************************************/
  /*! exports provided: TrainingService */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrainingService", function() { return TrainingService; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  
  
  let TrainingService = class TrainingService {
      constructor() {
          this.load();
      }
      /**
       * Adds a new training object to the array
       * @param training the object to add
       */
      addTraining(training) {
          if (!this.trainings.some(item => item.id === training.id)) {
              this.trainings.push(training);
              this.save();
              this.load();
          }
          else {
              this.trainings.forEach(item => {
                  if (item.datetime === training.datetime) {
                      item = training;
                  }
              });
          }
      }
      /**
       * Removes an existing training object from the array
       * @param training the object to remove
       */
      removeTraining(training) {
          this.trainings = this.trainings.filter(item => item.id !== training.id);
          this.save();
      }
      /**
       * Returns an array of trainings
       */
      getTrainings() {
          return [...this.trainings];
      }
      /**
       * Saves the trainings to local storage
       */
      save() {
          localStorage.setItem('trainings', JSON.stringify(this.trainings));
      }
      /**
       * Loads the trainings from local storage
       */
      load() {
          this.trainings = JSON.parse(localStorage.getItem('trainings'));
          if (!this.trainings) {
              this.trainings = [];
          }
          else {
              // Sort training entries by date
              this.trainings.sort((a, b) => {
                  if (a.datetime > b.datetime) {
                      return -1;
                  }
                  else if (a.datetime === b.datetime) {
                      return 0;
                  }
                  else {
                      return 1;
                  }
              });
          }
      }
  };
  TrainingService.ctorParameters = () => [];
  TrainingService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
          providedIn: 'root'
      })
  ], TrainingService);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/training/training-routing.module.ts":
  /*!**********************************************************!*\
    !*** ./src/app/core/training/training-routing.module.ts ***!
    \**********************************************************/
  /*! exports provided: TrainingRoutingModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrainingRoutingModule", function() { return TrainingRoutingModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js");
  /* harmony import */ var _pages_new_training_new_training_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages/new-training/new-training.component */ "./src/app/core/training/pages/new-training/new-training.component.ts");
  /* harmony import */ var _pages_training_archive_training_archive_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/training-archive/training-archive.component */ "./src/app/core/training/pages/training-archive/training-archive.component.ts");
  
  
  
  
  
  const routes = [
      {
          path: '',
          pathMatch: 'full',
          redirectTo: 'new'
      },
      {
          path: 'new',
          component: _pages_new_training_new_training_component__WEBPACK_IMPORTED_MODULE_3__["NewTrainingComponent"]
      },
      {
          path: 'archive',
          component: _pages_training_archive_training_archive_component__WEBPACK_IMPORTED_MODULE_4__["TrainingArchiveComponent"]
      },
  ];
  let TrainingRoutingModule = class TrainingRoutingModule {
  };
  TrainingRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)],
          exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
      })
  ], TrainingRoutingModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/core/training/training.module.ts":
  /*!**************************************************!*\
    !*** ./src/app/core/training/training.module.ts ***!
    \**************************************************/
  /*! exports provided: TrainingModule */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrainingModule", function() { return TrainingModule; });
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js");
  /* harmony import */ var _training_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./training-routing.module */ "./src/app/core/training/training-routing.module.ts");
  /* harmony import */ var _pages_new_training_new_training_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/new-training/new-training.component */ "./src/app/core/training/pages/new-training/new-training.component.ts");
  /* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js");
  /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js");
  /* harmony import */ var _pages_training_archive_training_archive_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pages/training-archive/training-archive.component */ "./src/app/core/training/pages/training-archive/training-archive.component.ts");
  /* harmony import */ var _components_print_view_print_view_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/print-view/print-view.component */ "./src/app/core/training/components/print-view/print-view.component.ts");
  /* harmony import */ var _ionic_native_file_ngx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ionic-native/file/ngx */ "./node_modules/@ionic-native/file/__ivy_ngcc__/ngx/index.js");
  /* harmony import */ var _ionic_native_social_sharing_ngx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ionic-native/social-sharing/ngx */ "./node_modules/@ionic-native/social-sharing/__ivy_ngcc__/ngx/index.js");
  
  
  
  
  
  
  
  
  
  
  
  let TrainingModule = class TrainingModule {
  };
  TrainingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
          declarations: [
              _pages_new_training_new_training_component__WEBPACK_IMPORTED_MODULE_4__["NewTrainingComponent"],
              _pages_training_archive_training_archive_component__WEBPACK_IMPORTED_MODULE_7__["TrainingArchiveComponent"],
              _components_print_view_print_view_component__WEBPACK_IMPORTED_MODULE_8__["PrintViewComponent"]
          ],
          imports: [
              _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"],
              _training_routing_module__WEBPACK_IMPORTED_MODULE_3__["TrainingRoutingModule"],
              _ionic_angular__WEBPACK_IMPORTED_MODULE_5__["IonicModule"],
              _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormsModule"],
          ],
          exports: [
              _pages_new_training_new_training_component__WEBPACK_IMPORTED_MODULE_4__["NewTrainingComponent"],
              _pages_training_archive_training_archive_component__WEBPACK_IMPORTED_MODULE_7__["TrainingArchiveComponent"],
              _components_print_view_print_view_component__WEBPACK_IMPORTED_MODULE_8__["PrintViewComponent"]
          ],
          providers: [
              _ionic_native_file_ngx__WEBPACK_IMPORTED_MODULE_9__["File"],
              _ionic_native_social_sharing_ngx__WEBPACK_IMPORTED_MODULE_10__["SocialSharing"],
          ]
      })
  ], TrainingModule);
  
  
  
  /***/ }),
  
  /***/ "./src/app/shared/classes/helper.class.ts":
  /*!************************************************!*\
    !*** ./src/app/shared/classes/helper.class.ts ***!
    \************************************************/
  /*! exports provided: Helper */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Helper", function() { return Helper; });
  class Helper {
      static uuid() {
          return 'xxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
              // tslint:disable-next-line:no-bitwise
              const r = Math.random() * 16 | 0;
              // tslint:disable-next-line:no-bitwise
              const v = c === 'x' ? r : (r & 0x3 | 0x8);
              return v.toString(16);
          });
      }
  }
  
  
  /***/ }),
  
  /***/ "./src/environments/environment.ts":
  /*!*****************************************!*\
    !*** ./src/environments/environment.ts ***!
    \*****************************************/
  /*! exports provided: environment */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "environment", function() { return environment; });
  // This file can be replaced during build by using the `fileReplacements` array.
  // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
  // The list of file replacements can be found in `angular.json`.
  const environment = {
      production: false
  };
  /*
   * For easier debugging in development mode, you can import the following file
   * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
   *
   * This import should be commented out in production mode because it will have a negative impact
   * on performance if an error is thrown.
   */
  // import 'zone.js/plugins/zone-error';  // Included with Angular CLI.
  
  
  /***/ }),
  
  /***/ "./src/main.ts":
  /*!*********************!*\
    !*** ./src/main.ts ***!
    \*********************/
  /*! no exports provided */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
  /* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ "./node_modules/@angular/platform-browser-dynamic/__ivy_ngcc__/fesm2015/platform-browser-dynamic.js");
  /* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts");
  /* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts");
  
  
  
  
  if (_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].production) {
      Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])();
  }
  Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"])
      .catch(err => console.log(err));
  
  
  /***/ }),
  
  /***/ 0:
  /*!***************************!*\
    !*** multi ./src/main.ts ***!
    \***************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  module.exports = __webpack_require__(/*! C:\Entwicklung\Ionic\simple-attendance\src\main.ts */"./src/main.ts");
  
  
  /***/ })
  
  },[[0,"runtime","vendor"]]]);
  //# sourceMappingURL=main-es2015.js.map