{"version":3,"sources":["./node_modules/@ionic/core/dist/esm/button-active-d4bd4f74.js","./node_modules/@ionic/core/dist/esm/framework-delegate-94e770cc.js","./node_modules/@ionic/core/dist/esm/haptic-27b3f981.js","./node_modules/@ionic/core/dist/esm/spinner-configs-cd7845af.js","./node_modules/@ionic/core/dist/esm/theme-ff3fc52f.js","./src/app/services/child.service.ts","./src/app/services/project.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAqD;AACkE;AACnE;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iEAAa;AACtB;AACA;AACA;AACA,mEAAmE,kDAAoB;AACvF,kEAAkE,kDAAsB;AACxF;AACA;AACA,MAAM,sDAAkB;AACxB;AACA;AACA,GAAG;AACH;;AAE0C;;;;;;;;;;;;;;;;;;AC/DoB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;;;;;;;;;;;;;;;;;;;ACjCtD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC,GAAG;AACH;AACA,iBAAiB,iBAAiB;AAClC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;;AAEoI;;;;;;;;;;;;;;;;ACzGpI;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;AC7GzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kCAAkC,MAAM,UAAU;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqF;;;;;;;;;;;;;;;;;;;;;;;ACtClD;AAEQ;AAEK;AACL;AAGJ;IAK1B,YAAY,SAAZ,YAAY;IAGrB,YACY,WAAwB,EACxB,IAAgB,EAChB,MAAc;QAFd,gBAAW,GAAX,WAAW,CAAa;QACxB,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","file":"common.js","sourcesContent":["import { c as writeTask } from './index-7a8b7a1c.js';\nimport { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-27b3f981.js';\nimport { createGesture } from './index-34cb2743.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n }\n });\n};\n\nexport { createButtonActiveGesture as c };\n","import { c as componentOnReady } from './helpers-1457892a.js';\n\nconst attachComponent = async (delegate, container, component, cssClasses, componentProps) => {\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = (typeof component === 'string')\n ? container.ownerDocument && container.ownerDocument.createElement(component)\n : component;\n if (cssClasses) {\n cssClasses.forEach(c => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n await new Promise(resolve => componentOnReady(el, resolve));\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\n\nexport { attachComponent as a, detachComponent as d };\n","const HapticEngine = {\n getEngine() {\n const win = window;\n return (win.TapticEngine) || (win.Capacitor && win.Capacitor.isPluginAvailable('Haptics') && win.Capacitor.Plugins.Haptics);\n },\n available() {\n return !!this.getEngine();\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n }\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelection as c, hapticImpact as d, hapticSelectionEnd as h };\n","const spinners = {\n 'bubbles': {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index / total) - dur}ms`;\n const angle = 2 * Math.PI * index / total;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circles': {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${(dur * step) - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circular': {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {}\n };\n }\n },\n 'crescent': {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {}\n };\n }\n },\n 'dots': {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n 'left': `${9 - (9 * index)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n }\n};\nconst SPINNERS = spinners;\n\nexport { SPINNERS as S };\n","const hostContext = (selector, el) => {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nconst createColorClasses = (color, cssClassMap) => {\n return (typeof color === 'string' && color.length > 0) ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(c => c != null)\n .map(c => c.trim())\n .filter(c => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach(c => map[c] = true);\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","import * as Routes from \"./Routes\";\nimport {Child} from \"../models/Child\";\nimport {DataService} from \"./data.service\";\nimport {GenericResponse} from \"../models/GenericResponse.model\";\nimport {HttpClient} from \"@angular/common/http\";\nimport { Injectable } from '@angular/core';\nimport {Observable} from \"rxjs\";\nimport {Response} from \"../models/Response\";\nimport {Router} from \"@angular/router\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChildService {\n\n\n constructor(\n private dataService: DataService,\n private http: HttpClient,\n private router: Router\n ) {\n }\n\n public create(child: Child): Observable {\n return this.http.post(`${Routes.CHILD_ROUTE}/`, child, this.dataService.getHttpOptions());\n }\n\n public update(child: Child): Observable {\n return this.http.put(`${Routes.CHILD_ROUTE}/${child.childId}/`, child, this.dataService.getHttpOptions());\n }\n\n public delete(child: Child): Observable {\n return this.http.delete(`${Routes.CHILD_ROUTE}/${child.childId}/`, this.dataService.getHttpOptions());\n }\n\n public getAll(userId: string): Observable {\n return this.http.get(`${Routes.CHILD_ROUTE}/byUser/${userId}`, this.dataService.getHttpOptions());\n }\n\n public getByChildId(childId: string): Observable> {\n return this.http.get>(`${Routes.CHILD_ROUTE}/${childId}/`, this.dataService.getHttpOptions());\n }\n}\n","import * as Routes from \"./Routes\";\nimport {DataService} from \"./data.service\";\nimport {GenericResponse} from \"../models/GenericResponse.model\";\nimport {HttpClient} from \"@angular/common/http\";\nimport { Injectable } from '@angular/core';\nimport {Observable} from \"rxjs\";\nimport {Project} from \"../models/Project.model\";\nimport {ProjectItem} from \"../models/ProjectItem.model\";\nimport {Router} from \"@angular/router\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProjectService {\n\n\n constructor(\n private dataService: DataService,\n private http: HttpClient,\n private router: Router\n ) {\n }\n\n public create(project: Project): Observable> {\n return this.http.post>(`${Routes.PROJECT_ROUTE}/`, project, this.dataService.getHttpOptions());\n }\n\n public update(project: Project): Observable> {\n return this.http.put>(`${Routes.PROJECT_ROUTE}/${project.projectId}/`, project, this.dataService.getHttpOptions());\n }\n\n public delete(projectId: string): Observable> {\n return this.http.delete>(`${Routes.PROJECT_ROUTE}/${projectId}/`, this.dataService.getHttpOptions());\n }\n\n public get(projectId: string): Observable> {\n return this.http.get>(`${Routes.PROJECT_ROUTE}/${projectId}/`, this.dataService.getHttpOptions());\n }\n\n public getAll(): Observable> {\n return this.http.get>(`${Routes.PROJECT_ROUTE}/all/byUser/`, this.dataService.getHttpOptions());\n }\n\n public getAllProjectItems(projectId: string): Observable> {\n return this.http.get>(`${Routes.PROJECT_ROUTE}/${projectId}/items/`, this.dataService.getHttpOptions());\n }\n\n public createProjectItem(item: ProjectItem): Observable> {\n return this.http.post>(`${Routes.PROJECT_ROUTE}/${item.projectId}/items/`, item, this.dataService.getHttpOptions());\n }\n\n public updateProjectItem(item: ProjectItem): Observable> {\n return this.http.put>(\n `${Routes.PROJECT_ROUTE}/${item.projectId}/items/${item.projectItemId}/`, item, this.dataService.getHttpOptions());\n }\n\n public deleteProjectItem(projectId: string, projectItemId: string): Observable> {\n return this.http.delete>(\n `${Routes.PROJECT_ROUTE}/${projectId}/items/${projectItemId}/`, this.dataService.getHttpOptions());\n }\n}\n"],"sourceRoot":"webpack:///"}