171 lines
29 KiB
JavaScript
171 lines
29 KiB
JavaScript
/******/ (function(modules) { // webpackBootstrap
|
||
/******/ // The module cache
|
||
/******/ var installedModules = {};
|
||
/******/
|
||
/******/ // The require function
|
||
/******/ function __webpack_require__(moduleId) {
|
||
/******/
|
||
/******/ // Check if module is in cache
|
||
/******/ if(installedModules[moduleId]) {
|
||
/******/ return installedModules[moduleId].exports;
|
||
/******/ }
|
||
/******/ // Create a new module (and put it into the cache)
|
||
/******/ var module = installedModules[moduleId] = {
|
||
/******/ i: moduleId,
|
||
/******/ l: false,
|
||
/******/ exports: {}
|
||
/******/ };
|
||
/******/
|
||
/******/ // Execute the module function
|
||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||
/******/
|
||
/******/ // Flag the module as loaded
|
||
/******/ module.l = true;
|
||
/******/
|
||
/******/ // Return the exports of the module
|
||
/******/ return module.exports;
|
||
/******/ }
|
||
/******/
|
||
/******/
|
||
/******/ // expose the modules object (__webpack_modules__)
|
||
/******/ __webpack_require__.m = modules;
|
||
/******/
|
||
/******/ // expose the module cache
|
||
/******/ __webpack_require__.c = installedModules;
|
||
/******/
|
||
/******/ // define getter function for harmony exports
|
||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||
/******/ }
|
||
/******/ };
|
||
/******/
|
||
/******/ // define __esModule on exports
|
||
/******/ __webpack_require__.r = function(exports) {
|
||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||
/******/ }
|
||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||
/******/ };
|
||
/******/
|
||
/******/ // create a fake namespace object
|
||
/******/ // mode & 1: value is a module id, require it
|
||
/******/ // mode & 2: merge all properties of value into the ns
|
||
/******/ // mode & 4: return value when already ns object
|
||
/******/ // mode & 8|1: behave like require
|
||
/******/ __webpack_require__.t = function(value, mode) {
|
||
/******/ if(mode & 1) value = __webpack_require__(value);
|
||
/******/ if(mode & 8) return value;
|
||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||
/******/ var ns = Object.create(null);
|
||
/******/ __webpack_require__.r(ns);
|
||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||
/******/ return ns;
|
||
/******/ };
|
||
/******/
|
||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||
/******/ __webpack_require__.n = function(module) {
|
||
/******/ var getter = module && module.__esModule ?
|
||
/******/ function getDefault() { return module['default']; } :
|
||
/******/ function getModuleExports() { return module; };
|
||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||
/******/ return getter;
|
||
/******/ };
|
||
/******/
|
||
/******/ // Object.prototype.hasOwnProperty.call
|
||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||
/******/
|
||
/******/ // __webpack_public_path__
|
||
/******/ __webpack_require__.p = "";
|
||
/******/
|
||
/******/
|
||
/******/ // Load entry module and return exports
|
||
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ({
|
||
|
||
/***/ "./node_modules/js-helper/dist/client/ViewHelper.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/js-helper/dist/client/ViewHelper.js ***!
|
||
\**********************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewHelper = void 0;\nclass ViewHelper {\n /**\n * Entfernt alle Children eines Elements\n *\n * @param element\n * @returns {Node}\n */\n static removeAllChildren(element) {\n if (element instanceof Node) {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n }\n return element;\n }\n /**\n * Moves the child-Nodes from one element to another\n * @param from\n * @param to\n * @returns {*}\n */\n static moveChildren(from, to) {\n let children = [];\n //Zwischenspeichern der Children, da removeChild die forEach-Schleife durcheinander bringt\n from.childNodes.forEach(child => {\n children.push(child);\n });\n children.forEach(child => {\n from.removeChild(child);\n to.appendChild(child);\n });\n return to;\n }\n static insertAfter(newChild, referenceChild) {\n const parent = referenceChild.parentNode;\n if (parent) {\n if (parent.lastChild === referenceChild) {\n parent.appendChild(newChild);\n }\n else {\n parent.insertBefore(newChild, referenceChild.nextSibling);\n }\n return true;\n }\n return false;\n }\n}\nexports.ViewHelper = ViewHelper;\n//# sourceMappingURL=ViewHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client/ViewHelper.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/js-helper/dist/shared/Helper.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/js-helper/dist/shared/Helper.js ***!
|
||
\******************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Helper = void 0;\n/**\n * Eine Klasse mit häufig genutzten, nützlichen Funktionen\n */\nconst JsonHelper_1 = __webpack_require__(/*! ./JsonHelper */ \"./node_modules/js-helper/dist/shared/JsonHelper.js\");\nclass Helper {\n /**\n * Testet, ob eine Variable null oder Undefined ist\n *\n * @param variable\n * @returns {boolean}\n */\n static isNull(variable, ...args) {\n return Helper.isAllNull(...arguments);\n }\n static isAllNull(...args) {\n for (let i = 0; i < args.length; i++) {\n if (!(args[i] === null || args[i] === undefined)) {\n return false;\n }\n }\n return true;\n }\n static isAtLeastOneNull(...args) {\n return !Helper.isAllNull(...args);\n }\n /**\n * Testet, ob eine Variable nicht (null oder undefined) ist\n *\n * @param variable\n * @returns {boolean}\n */\n static isNotNull(variable, ...args) {\n return Helper.isAllNotNull(...arguments);\n }\n static isAllNotNull(...args) {\n for (let i = 0; i < args.length; i++) {\n if ((args[i] === null || args[i] === undefined)) {\n return false;\n }\n }\n return true;\n }\n static isAtLeastOneNotNull(...args) {\n return !Helper.isAllNull(...args);\n }\n /**\n * Gibt den ersten übergebenen Wert, der nicht (null oder undefined) ist, zurück\n *\n * @param val1\n * @param val2\n * @param args\n * @returns {*}\n */\n static nonNull(val1, val2, ...args) {\n for (let i = 0; i < arguments.length; i++) {\n if (Helper.isNotNull(arguments[i])) {\n return arguments[i];\n }\n }\n return null;\n }\n /**\n * Testet, ob der übergebene Index am Objekt gesetzt ist. Werden mehrere Indexes übergeben, so wird getestet,\n * ob die \"Index-Kette\" gesetzt ist.\n * Bsp.:\n * Helper.isSet({\"index1\":{\"index2\":value}}, \"index1\", \"index2\") ist wahr\n *\n * @param object\n * @param indexes\n * @returns {*}\n */\n static isSet(object, ...indexes) {\n if (Helper.isNotNull(object)) {\n if (indexes.length === 0) {\n return true;\n }\n return (Helper.isSet.apply(null, [object[indexes[0]]].concat(indexes.slice(1))));\n }\n return false;\n }\n /**\n * Testet, ob ein Wert null oder Leerstring, bzw nur aus leerzeichend bestehender String ist\n *\n * @param value\n * @returns {boolean}\n */\n static empty(value) {\n return (Helper.isNull(value) || (typeof value === 'string' && value.trim() === \"\"));\n }\n /**\n * Testet, ob ein Wert NICHT (null oder Leerstring, bzw nur aus leerzeichend bestehender String ist)\n *\n * @param value\n * @returns {boolean}\n */\n static notEmpty(value) {\n return !Helper.empty(value);\n }\n static arrayToObject(array, indexFunction) {\n let obj = {};\n array.forEach(val => {\n obj[indexFunction(val)] = val;\n });\n return obj;\n }\n /**\n * Deepcopies JSON\n *\n * @param obj\n * @returns {*}\n */\n static cloneJson(obj) {\n return JsonHelper_1.JsonHelper.deepCopy(obj);\n }\n /**\n * Erstellt ein FormData-Object von JSON-Data. Nützlich für fetch\n *\n * @param obj\n * @returns {FormData}\n */\n static formDataFromObject(obj) {\n let formData = new FormData();\n for (let k in obj) {\n formData.set(k, obj[k]);\n }\n return formData;\n }\n static shuffleArray(array) {\n let currentIndex = array.length, temporaryValue, randomIndex;\n // While there remain elements to shuffle...\n while (0 !== currentIndex) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n return array;\n }\n static padZero(n, width, z) {\n z = Helper.nonNull(z, '0');\n n = n + '';\n width = Helper.nonNull(width, 1);\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n static deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a === \"object\" && typeof b === \"object\") {\n let keysOfB = Object.keys(b);\n let childrenDeepEqual = Object.keys(a).every((key) => {\n let index = keysOfB.indexOf(key);\n if (index < 0) {\n return false;\n }\n keysOfB.splice(index, 1);\n return Helper.deepEqual(a[key], b[key]);\n });\n return (childrenDeepEqual && keysOfB.length === 0);\n }\n return false;\n }\n //Ältere evtl nützliche Funktionen\n static htmlspecialcharsDecode(text) {\n const map = {\n '&': '&',\n '&': \"&\",\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n '’': \"’\",\n '‘': \"‘\",\n '–': \"–\",\n '—': \"—\",\n '…': \"…\",\n '”': '”'\n };\n if (Helper.isNotNull(text) && typeof text.replace === \"function\") {\n return text.replace(/\\&[\\w\\d\\#]{2,5}\\;/g, function (m) {\n return map[m];\n });\n }\n return text;\n }\n /**\n * Inverts the key-Values for an object\n * @param obj\n * @return {*}\n */\n static invertKeyValues(obj) {\n let new_obj = {};\n for (let prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n new_obj[obj[prop]] = prop;\n }\n }\n return new_obj;\n }\n static asyncForEach(array, callback, runAsyncronous) {\n return __awaiter(this, void 0, void 0, function* () {\n runAsyncronous = Helper.nonNull(runAsyncronous, false);\n let validPromises = [];\n for (let i = 0; i < array.length; i++) {\n let index = i;\n let currentPromise = Promise.resolve(callback(array[index], index, array));\n if (!runAsyncronous) {\n yield currentPromise;\n }\n validPromises.push(currentPromise);\n }\n return Promise.all(validPromises);\n });\n }\n static escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n }\n static objectForEach(object, callback) {\n Object.keys(object).forEach(key => {\n callback(object[key], key, object);\n });\n }\n static toArray(object) {\n let res = [];\n for (let k in object) {\n res.push(object[k]);\n }\n return res;\n }\n static imageUrlIsEmpty(url) {\n return (Helper.isNull(url) || url.trim() === \"\" || url.trim() === \"data:\");\n }\n static newPromiseWithResolve() {\n let resolver = null;\n let rejecter = null;\n let promise = new Promise((resolve, reject) => {\n resolver = resolve;\n rejecter = reject;\n });\n promise[\"resolve\"] = resolver;\n promise[\"reject\"] = rejecter;\n return promise;\n }\n static isMobileApp() {\n return (typeof device !== \"undefined\" && device.platform !== \"browser\");\n }\n static toSnakeCase(camelCase) {\n return camelCase.replace(/([A-Z])/g, function (find, something, position) { return ((position > 0) ? \"_\" : \"\") + find[0].toLowerCase(); });\n }\n static wait(timeout, result) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(r => {\n setTimeout(() => {\n r(result);\n }, timeout);\n });\n });\n }\n static timeout(time, otherPromise, timeoutResult) {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.race([otherPromise, Helper.wait(time).then(() => {\n if (timeoutResult === undefined) {\n return Promise.reject();\n }\n else {\n return timeoutResult;\n }\n })]);\n });\n }\n}\nexports.Helper = Helper;\n//# sourceMappingURL=Helper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/Helper.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/js-helper/dist/shared/JsonHelper.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/js-helper/dist/shared/JsonHelper.js ***!
|
||
\**********************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonHelper = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass JsonHelper {\n static deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a === null || b === null) {\n return false;\n }\n // array deepEqual\n if (a instanceof Array && b instanceof Array && a.length === b.length) {\n return a[\"every\"]((obj, i) => {\n return JsonHelper.deepEqual(obj, b[i]);\n });\n }\n //date deepEqual\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n // object deep copy\n if (typeof a === \"object\" && typeof b === \"object\") {\n let aKeys = Object.keys(a);\n let bKeys = Object.keys(b);\n return aKeys.length === bKeys.length && aKeys[\"every\"]((key) => {\n return Helper_1.Helper.isNotNull(b[key]) && JsonHelper.deepEqual(a[key], b[key]);\n });\n }\n //else is false (or not handled)\n return false;\n }\n /**\n * Deepcopies JSON\n *\n * @param obj\n * @returns {*}\n */\n static deepCopy(obj) {\n // https://stackoverflow.com/questions/4120475/how-to-create-and-clone-a-json-object/17502990#17502990\n let i;\n // basic type deep copy\n if (Helper_1.Helper.isNull(obj) || typeof obj !== 'object') {\n return obj;\n }\n // array deep copy\n if (obj instanceof Array) {\n let cloneA = [];\n for (i = 0; i < obj.length; ++i) {\n cloneA[i] = JsonHelper.deepCopy(obj[i]);\n }\n return cloneA;\n }\n if (obj instanceof Date) {\n return new Date(obj.getTime());\n }\n // object deep copy\n let cloneO = {};\n for (i in obj) {\n cloneO[i] = JsonHelper.deepCopy(obj[i]);\n }\n return cloneO;\n }\n static deepAssign(...objects) {\n if (objects.length > 0 && Array.isArray(objects)) {\n const result = [];\n objects.forEach(arr => result.push(...arr));\n return result;\n }\n const resultObj = {};\n objects.forEach(obj => {\n for (let i in obj) {\n if (resultObj[i] && typeof obj[i] === \"object\" && typeof resultObj[i] === \"object\") {\n resultObj[i] = JsonHelper.deepAssign(resultObj[i], obj[i]);\n }\n else {\n resultObj[i] = obj[i];\n }\n }\n });\n return resultObj;\n }\n static getDiff(a, b) {\n const result = {\n changed: {},\n added: {},\n removed: [],\n };\n // if (Array.isArray(a) && Array.isArray(b)){\n // const lengthA = a.length;\n // const lengthB = b.length;\n //\n // const minLength = Math.min(lengthA, lengthB);\n // for (let i = 0; i < minLength; i++){\n // const\n // }\n // }\n if ((typeof a !== \"object\" || typeof b !== \"object\")\n && (!Array.isArray(a) && !Array.isArray(b))) {\n if (a === b) {\n return null;\n }\n else {\n return { value: b };\n }\n }\n let hasChanged = false;\n let hasRemoved = false;\n let hasAdded = false;\n for (let i in a) {\n if (i in b) {\n const newVal = JsonHelper.getDiff(a[i], b[i]);\n if (newVal !== null) {\n result.changed[i] = newVal;\n hasChanged = true;\n }\n }\n else {\n result.removed.push(i);\n hasRemoved = true;\n }\n }\n for (let i in b) {\n if (!(i in a)) {\n result.added[i] = b[i];\n hasAdded = true;\n }\n }\n if (hasRemoved || hasAdded || hasChanged) {\n return result;\n }\n else {\n return null;\n }\n }\n static applyDiff(obj, diff) {\n if (!Array.isArray(diff.removed)) {\n debugger;\n }\n Object.keys(diff.changed).forEach(key => {\n if (\"value\" in diff.changed[key]) {\n obj[key] = diff.changed[key].value;\n }\n else {\n obj[key] = JsonHelper.applyDiff(obj[key], diff.changed[key]);\n }\n });\n diff.removed.forEach(rem => delete obj[rem]);\n Object.keys(diff.added).forEach(key => obj[key] = diff.added[key]);\n return obj;\n }\n}\nexports.JsonHelper = JsonHelper;\n//# sourceMappingURL=JsonHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/JsonHelper.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./src/client/js/CircleManager.js":
|
||
/*!****************************************!*\
|
||
!*** ./src/client/js/CircleManager.js ***!
|
||
\****************************************/
|
||
/*! exports provided: CircleManager */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CircleManager\", function() { return CircleManager; });\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nclass CircleManager {\n\n constructor(listSection, tableSection) {\n this._members = [];\n this._week = 0;\n\n this._inputTemplate = listSection.querySelector(\"#input-template\");\n this._inputTemplate.remove();\n this._inputTemplate.removeAttribute(\"id\");\n this._listContainer = listSection.querySelector(\"#list-container\");\n listSection.querySelector(\"#add-button\").addEventListener(\"click\", () => this.addMember());\n\n this._tableTemplate = tableSection.querySelector(\"#table-template\");\n this._tableTemplate.remove();\n this._tableTemplate.removeAttribute(\"id\");\n this._tableContainer = tableSection.querySelector(\"#table-container\");\n\n this._weekInput = tableSection.querySelector(\"#week-input\");\n tableSection.querySelector(\"#next-week\").addEventListener(\"click\", () => this.setWeek(this._week + 1));\n tableSection.querySelector(\"#previous-week\").addEventListener(\"click\", () => this.setWeek(this._week - 1));\n // this._weekInput.addEventListener(\"change\", this.setWeek(this._weekInput.value));\n this.load();\n this.setWeek(this._week);\n }\n\n setWeek(newWeek) {\n newWeek = parseInt(newWeek);\n if (!isNaN(newWeek)) {\n newWeek = Math.max(newWeek, 0);\n this._week = newWeek;\n this._weekInput.innerText = (this._week + 1);\n this.updateTables();\n this.save();\n }\n }\n\n save(){\n console.log(\"saving...\");\n localStorage.setItem(\"list\", JSON.stringify({\"week\": this._week, \"members\": this._members}));\n }\n\n load(){\n const jsonSavedata = localStorage.getItem(\"list\");\n console.log(\"liste\", jsonSavedata);\n if (jsonSavedata){\n const data = JSON.parse(jsonSavedata);\n this._week = data.week;\n this._members = data.members;\n this.updateList();\n this.updateTables();\n }\n }\n\n updateList() {\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_0__[\"ViewHelper\"].removeAllChildren(this._listContainer);\n this._members.forEach((member, id) => {\n const memberElement = this._inputTemplate.cloneNode(true);\n memberElement.querySelector(\".delete-button\").addEventListener(\"click\", () => this.deleteMember(id))\n\n const inputElem =\n memberElement.querySelector(\".name\");\n inputElem.value = member;\n inputElem.addEventListener(\"input\", () => {\n this._members[id] = inputElem.value;\n this.updateTables();\n this.save();\n });\n this._listContainer.appendChild(memberElement);\n })\n }\n\n deleteMember(index) {\n if (index >= 0 && index < this._members.length) {\n this._members.splice(index, 1);\n this.updateList();\n this.updateTables();\n this.save();\n }\n }\n\n addMember(name) {\n name = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].nonNull(name, \"\");\n this._members.push(name);\n this.updateList();\n this.updateTables();\n this.save();\n }\n\n updateTables() {\n if (this._members.length < 2) {\n return;\n }\n const tables = {};\n this._members.forEach((member, index) => {\n const listPrayers = [];\n const listPrayedBy = [];\n\n const otherMembers = this._members.filter((v, i) => i !== index);\n\n let prayersIndex = index - 1;\n let prayedIndex = index;\n\n const weekOffset = this._week * 7;\n prayersIndex += weekOffset;\n prayedIndex -= weekOffset;\n if (prayedIndex < 0) {\n prayedIndex += otherMembers.length * Math.floor(weekOffset / otherMembers.length);\n }\n\n for (let i = 0; i < 7; i++) {\n prayersIndex = (prayersIndex + 1) % otherMembers.length\n prayedIndex = (prayedIndex - 1 + otherMembers.length) % otherMembers.length;\n\n listPrayers.push(otherMembers[prayersIndex]);\n listPrayedBy.push(otherMembers[prayedIndex]);\n }\n\n tables[index] = {\"for\": listPrayers, \"by\": listPrayedBy}\n });\n\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_0__[\"ViewHelper\"].removeAllChildren(this._tableContainer);\n Object.keys(tables).forEach(memberIndex => {\n const tableElement = this._tableTemplate.cloneNode(true);\n tableElement.querySelector(\".name\").innerText = this._members[memberIndex];\n tables[memberIndex].for.forEach((otherMember, index) => {\n tableElement.querySelector(\".for-\" + index).innerText = otherMember;\n });\n tables[memberIndex].by.forEach((otherMember, index) => {\n tableElement.querySelector(\".by-\" + index).innerText = otherMember;\n });\n\n this._tableContainer.appendChild(tableElement);\n });\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/CircleManager.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./src/client/js/index.js":
|
||
/*!********************************!*\
|
||
!*** ./src/client/js/index.js ***!
|
||
\********************************/
|
||
/*! no exports provided */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sass_index_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sass/index.scss */ \"./src/client/sass/index.scss\");\n/* harmony import */ var _sass_index_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_sass_index_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _CircleManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CircleManager */ \"./src/client/js/CircleManager.js\");\n\n\n\nconst listSegment = document.getElementById(\"list-section\");\nconst tableSegment = document.getElementById(\"table-section\");\n\nnew _CircleManager__WEBPACK_IMPORTED_MODULE_1__[\"CircleManager\"](listSegment, tableSegment);\n\n\n//# sourceURL=webpack:///./src/client/js/index.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./src/client/sass/index.scss":
|
||
/*!************************************!*\
|
||
!*** ./src/client/sass/index.scss ***!
|
||
\************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/client/sass/index.scss?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ 0:
|
||
/*!**************************************!*\
|
||
!*** multi ./src/client/js/index.js ***!
|
||
\**************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("module.exports = __webpack_require__(/*! /home/silas/Projekte/web/prayercircle/src/client/js/index.js */\"./src/client/js/index.js\");\n\n\n//# sourceURL=webpack:///multi_./src/client/js/index.js?");
|
||
|
||
/***/ })
|
||
|
||
/******/ }); |