g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* eslint-disable @typescript-eslint/no-explicit-any */\nconst BASE_URL = 'https://mate.academy/students-api';\n\n// returns a promise resolved after a given delay\nfunction wait(delay: number) {\n return new Promise(resolve => {\n setTimeout(resolve, delay);\n });\n}\n\n// To have autocompletion and avoid mistypes\ntype RequestMethod = 'GET' | 'POST' | 'PATCH' | 'DELETE';\n\nfunction request(\n url: string,\n method: RequestMethod = 'GET',\n data: any = null, // we can send any data to the server\n): Promise {\n const options: RequestInit = { method };\n\n if (data) {\n // We add body and Content-Type only for the requests with data\n options.body = JSON.stringify(data);\n options.headers = {\n 'Content-Type': 'application/json; charset=UTF-8',\n };\n }\n\n // we wait for testing purpose to see loaders\n return wait(300)\n .then(() => fetch(BASE_URL + url, options))\n .then(response => {\n if (!response.ok) {\n throw new Error();\n }\n\n return response.json();\n });\n}\n\nexport const client = {\n get: (url: string) => request(url),\n post: (url: string, data: any) => request(url, 'POST', data),\n patch: (url: string, data: any) => request(url, 'PATCH', data),\n delete: (url: string) => request(url, 'DELETE'),\n};\n","import { Todo } from '../types/Todo';\nimport { client } from '../utils/fetchClient';\n\nexport const getTodos = (userId: number) => {\n return client.get(`/todos?userId=${userId}`);\n};\n\nexport const addTodos = (data: Omit) => {\n return client.post('/todos/', data);\n};\n\nexport const deleteTodos = (todoId: number) => {\n return client.delete(`/todos/${todoId}`);\n};\n\nexport const updateTodos = (data: Todo) => {\n return client.patch(`/todos/${data.id}`, data);\n};\n","export enum TabsFooter {\n All = 'All',\n Active = 'Active',\n Completed = 'Completed',\n}\n","import { FormEvent, useState } from 'react';\nimport classNames from 'classnames';\nimport { Todo } from '../types/Todo';\nimport { addTodos, updateTodos } from '../api/todos';\n\ntype Props = {\n todos: Todo[],\n setTodos: React.Dispatch>,\n setErrorMessage: (v: string) => void,\n setHiddenError: (v: boolean) => void,\n loading: boolean,\n setLoading: (v: boolean) => void,\n setTempTodo: React.Dispatch>,\n setItemId: React.Dispatch>,\n};\n\nexport const Header: React.FC = ({\n todos,\n setTodos,\n setErrorMessage,\n setHiddenError,\n loading,\n setLoading,\n setTempTodo,\n setItemId,\n}) => {\n const [inputValue, setInputValue] = useState('');\n const toggleActive = todos.every(todo => todo.completed);\n const USER_ID = 11093;\n const handleError = (message: string) => {\n setHiddenError(false);\n setTimeout(() => setHiddenError(true), 3000);\n setErrorMessage(message);\n };\n\n const handleFinally = () => {\n setLoading(false);\n setTempTodo(null);\n setItemId([0]);\n };\n\n const handleSubmit = (e: FormEvent) => {\n const data = {\n title: inputValue.trim(),\n userId: USER_ID,\n completed: false,\n };\n\n const tempTodo: Todo = {\n id: 0,\n userId: USER_ID,\n title: data.title,\n completed: false,\n };\n\n setTempTodo(tempTodo);\n\n const handlerAddTodos = () => {\n setLoading(true);\n addTodos(data).then((res: Todo) => {\n const newTodoRes = { ...tempTodo, id: res.id };\n\n setTodos(prev => [...prev, newTodoRes]);\n })\n .catch(() => handleError('Unable to add a todo'))\n .finally(handleFinally);\n };\n\n e.preventDefault();\n if (data.title) {\n handlerAddTodos();\n } else {\n handleError(\"Title can't be empty\");\n }\n\n setInputValue('');\n };\n\n const handleToggle = () => {\n let newValue = true;\n\n if (toggleActive) {\n newValue = false;\n }\n\n todos.forEach(todo => {\n if (todo.completed !== newValue) {\n setItemId((prev) => [...prev, todo.id]);\n setLoading(true);\n\n updateTodos({ ...todo, completed: newValue }).then((res) => {\n setTodos(prev => {\n const updateTodo = [...prev];\n const indexTodo = updateTodo.findIndex(el => el.id === todo.id);\n\n updateTodo.splice(indexTodo, 1, res);\n\n return updateTodo;\n });\n })\n .catch(() => handleError('Unable to update a todo'))\n .finally(handleFinally);\n }\n });\n };\n\n return (\n \n {Boolean(todos.length) && (\n \n )}\n\n \n \n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Todo } from '../types/Todo';\nimport { TabsFooter } from '../enums/TabsFooter';\nimport { deleteTodos } from '../api/todos';\n\ntype Props = {\n todos: Todo[],\n setActiveTab: React.Dispatch>;\n activeTab: TabsFooter,\n setTodos: React.Dispatch>,\n setErrorMessage: (v: string) => void,\n setHiddenError: (v: boolean) => void,\n setItemId: (v: number[]) => void,\n setLoading: (v: boolean) => void,\n};\n\nexport const Footer: React.FC = ({\n todos,\n setActiveTab,\n activeTab,\n setTodos,\n setErrorMessage,\n setHiddenError,\n setItemId,\n setLoading,\n}) => {\n const tabs: string[] = Object.values(TabsFooter);\n const itemsLeft = todos.filter(todo => !todo.completed).length;\n const finedCompleted = todos.find(todo => todo.completed);\n const handleTabs = (e: React.MouseEvent) => {\n if (e.currentTarget.textContent) {\n setActiveTab(TabsFooter[e.currentTarget.textContent as TabsFooter\n || TabsFooter.All]);\n }\n };\n\n const handleError = () => {\n setHiddenError(false);\n setTimeout(() => setHiddenError(true), 3000);\n setErrorMessage('Unable to delete a todo');\n };\n\n const handleClear = () => {\n const completed = todos.filter(todo => todo.completed);\n\n setLoading(true);\n setItemId(completed.map(el => el.id));\n\n completed.forEach(todo => deleteTodos(todo.id)\n .then(() => setTodos(todos.filter(t => !t.completed)))\n .catch(handleError)\n .finally(() => setLoading(false)));\n };\n\n return (\n <>\n {Boolean(todos.length) && (\n \n )}\n >\n );\n};\n","type Props = {\n hiddenError: boolean,\n setHiddenError: React.Dispatch>,\n errorMessage: string,\n};\n\nexport const ShowError: React.FC = ({\n hiddenError,\n setHiddenError,\n errorMessage,\n}) => {\n return (\n \n
\n );\n};\n","import classNames from 'classnames';\nimport React, { useState, useEffect } from 'react';\nimport { Todo } from '../types/Todo';\nimport { TabsFooter } from '../enums/TabsFooter';\nimport { deleteTodos, updateTodos } from '../api/todos';\n\ntype Props = {\n todos: Todo[],\n activeTab: TabsFooter,\n setTodos: React.Dispatch>,\n loading: boolean,\n setLoading: (v: boolean) => void,\n setErrorMessage: (v: string) => void,\n setHiddenError: (v: boolean) => void,\n setItemId: React.Dispatch>,\n itemId: number[],\n tempTodo: null | Todo,\n};\n\nexport const ShowTodos: React.FC = ({\n todos,\n activeTab,\n setTodos,\n loading,\n setLoading,\n setErrorMessage,\n setHiddenError,\n setItemId,\n itemId,\n tempTodo,\n}) => {\n const [renameTodo, setRenameTodo] = useState(null);\n const [prevRenameTitle, setPrevRenameTitle] = useState('');\n\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setRenameTodo(null);\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.removeEventListener('keydown', handleKeyPress);\n };\n }, []);\n const getVisibleTodos = (t: Todo[], at: TabsFooter) => {\n switch (at) {\n case TabsFooter.Active:\n return t.filter((el) => !el.completed);\n case TabsFooter.Completed:\n return t.filter((el) => el.completed);\n default:\n return t;\n }\n };\n\n const handleError = (message: string) => {\n setHiddenError(false);\n setTimeout(() => setHiddenError(true), 3000);\n setErrorMessage(message);\n };\n\n const resetLoadingState = () => {\n setItemId([0]);\n setLoading(false);\n };\n\n const visibleTodos = getVisibleTodos(todos, activeTab);\n\n const handleDelete = (postId: number) => {\n setItemId((prev) => [...prev, postId]);\n setLoading(true);\n\n deleteTodos(postId).then(() => {\n setTodos(prev => (\n prev.filter(todo => todo.id !== postId)\n ));\n })\n .catch(() => handleError('Unable to delete a todo'))\n .finally(resetLoadingState);\n };\n\n const handleUpdate = (todo: Todo) => {\n setItemId((prev) => [...prev, todo.id]);\n setLoading(true);\n\n updateTodos({ ...todo, completed: !todo.completed }).then((res) => {\n setTodos(prev => {\n const updateTodo = [...prev];\n const indexTodo = updateTodo.findIndex(el => el.id === todo.id);\n\n updateTodo.splice(indexTodo, 1, res);\n\n return updateTodo;\n });\n })\n .catch(() => handleError('Unable to update a todo'))\n .finally(resetLoadingState);\n };\n\n const getRenameElement = (todo: Todo) => {\n setRenameTodo(todo);\n setPrevRenameTitle(todo.title);\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n if (renameTodo) {\n const { value } = e.target;\n\n setRenameTodo({ ...renameTodo, title: value });\n }\n };\n\n const handleRename = (todo: Todo) => {\n setItemId((prev) => [...prev, todo.id]);\n setLoading(true);\n\n updateTodos({ ...todo }).then((res) => {\n setTodos(prev => {\n const updateTodo = [...prev];\n const indexTodo = updateTodo.findIndex(el => el.id === todo.id);\n\n updateTodo.splice(indexTodo, 1, res);\n\n return updateTodo;\n });\n })\n .catch(() => handleError('Unable to update a todo'))\n .finally(resetLoadingState);\n };\n\n const baseSubmit = () => {\n if (renameTodo\n && renameTodo.title !== prevRenameTitle\n && renameTodo.title.trim() !== '') {\n handleRename(renameTodo);\n } else if (renameTodo && renameTodo.title.trim() === '') {\n handleDelete(renameTodo.id);\n }\n\n setRenameTodo(null);\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n baseSubmit();\n };\n\n return (\n \n {visibleTodos.map((todo) => (\n \n
\n\n {renameTodo && renameTodo.id === todo.id\n ? (\n
\n )\n : (\n <>\n
getRenameElement(todo)}\n >\n {todo.title}\n \n\n
\n >\n )}\n\n {loading && itemId.some((el) => el === todo.id) && (\n
\n )}\n
\n ))}\n\n {tempTodo?.title && (\n \n
\n\n
{tempTodo.title}\n\n
\n\n
\n
\n )}\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { UserWarning } from './UserWarning';\nimport { getTodos } from './api/todos';\nimport { Todo } from './types/Todo';\nimport { TabsFooter } from './enums/TabsFooter';\n\nimport { Header } from './components/Header';\nimport { Footer } from './components/Footer';\nimport { ShowError } from './components/ShowError';\nimport { ShowTodos } from './components/ShowTodos';\n\nconst USER_ID = 11093;\n\nexport const App: React.FC = () => {\n const [todos, setTodos] = useState([]);\n const [hiddenError, setHiddenError] = useState(true);\n const [activeTab, setActiveTab] = useState(TabsFooter.All);\n const [errorMessage, setErrorMessage] = useState('Unable to load todo');\n const [loading, setLoading] = useState(false);\n const [itemId, setItemId] = useState([0]);\n const [tempTodo, setTempTodo] = useState(null);\n\n useEffect(() => {\n getTodos(USER_ID)\n .then(res => setTodos(res))\n .catch(() => setHiddenError(false));\n }, []);\n\n if (!USER_ID) {\n return ;\n }\n\n return (\n \n
todos
\n\n
\n \n\n \n\n \n
\n\n
\n
\n );\n};\n","import { createRoot } from 'react-dom/client';\n\nimport 'bulma/css/bulma.css';\nimport '@fortawesome/fontawesome-free/css/all.css';\nimport './styles/index.scss';\n\nimport { App } from './App';\n\ncreateRoot(document.getElementById('root') as HTMLDivElement)\n .render();\n"],"names":["aa","require","ca","p","a","b","c","arguments","length","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","document","createElement","ja","Object","prototype","hasOwnProperty","ka","la","ma","v","d","e","f","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","z","split","forEach","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","call","test","oa","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","Error","stack","trim","match","Na","Oa","prepareStackTrace","defineProperty","set","Reflect","construct","l","h","k","displayName","includes","name","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","Array","isArray","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","toString","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","indexOf","setProperty","keys","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","push","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","apply","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","Math","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","key","String","fromCharCode","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","capture","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","join","uh","vh","index","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","create","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","error","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","exports","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","err","module","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","map","count","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","hasOwn","classNames","classes","i","arg","appendClass","parseValue","newClass","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","o","obj","prop","request","method","headers","fetch","response","json","client","post","patch","deleteTodos","todoId","updateTodos","TabsFooter","Header","_ref","todos","setTodos","setErrorMessage","setHiddenError","loading","setLoading","setTempTodo","setItemId","inputValue","setInputValue","toggleActive","every","todo","completed","handleError","handleFinally","handleSubmit","title","userId","tempTodo","handlerAddTodos","addTodos","res","newTodoRes","prev","finally","_jsxs","className","Boolean","_jsx","active","handleToggle","newValue","updateTodo","indexTodo","findIndex","onSubmit","placeholder","onChange","Footer","setActiveTab","activeTab","tabs","values","itemsLeft","filter","finedCompleted","find","handleTabs","All","_Fragment","tab","toLocaleLowerCase","handleClear","ShowError","hiddenError","errorMessage","hidden","ShowTodos","itemId","renameTodo","setRenameTodo","prevRenameTitle","setPrevRenameTitle","handleKeyPress","resetLoadingState","visibleTodos","getVisibleTodos","at","Active","Completed","handleDelete","postId","baseSubmit","handleUpdate","readOnly","handleChange","onBlur","onDoubleClick","getRenameElement","some","App","getElementById"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/media/fa-brands-400.6205fd00fb1b573e9f0f.ttf b/static/media/fa-brands-400.6205fd00fb1b573e9f0f.ttf
new file mode 100644
index 0000000..5efb1d4
Binary files /dev/null and b/static/media/fa-brands-400.6205fd00fb1b573e9f0f.ttf differ
diff --git a/static/media/fa-brands-400.8d3cabfc66809162fb4d.woff2 b/static/media/fa-brands-400.8d3cabfc66809162fb4d.woff2
new file mode 100644
index 0000000..36fbda7
Binary files /dev/null and b/static/media/fa-brands-400.8d3cabfc66809162fb4d.woff2 differ
diff --git a/static/media/fa-regular-400.adc51aab4d771ab65f81.ttf b/static/media/fa-regular-400.adc51aab4d771ab65f81.ttf
new file mode 100644
index 0000000..838b4e2
Binary files /dev/null and b/static/media/fa-regular-400.adc51aab4d771ab65f81.ttf differ
diff --git a/static/media/fa-regular-400.e931bc0d14f5bbb1da22.woff2 b/static/media/fa-regular-400.e931bc0d14f5bbb1da22.woff2
new file mode 100644
index 0000000..b6cabba
Binary files /dev/null and b/static/media/fa-regular-400.e931bc0d14f5bbb1da22.woff2 differ
diff --git a/static/media/fa-solid-900.45a265d0f07b31cde85f.ttf b/static/media/fa-solid-900.45a265d0f07b31cde85f.ttf
new file mode 100644
index 0000000..ec24749
Binary files /dev/null and b/static/media/fa-solid-900.45a265d0f07b31cde85f.ttf differ
diff --git a/static/media/fa-solid-900.fb8184add5a3101ad0a3.woff2 b/static/media/fa-solid-900.fb8184add5a3101ad0a3.woff2
new file mode 100644
index 0000000..824d518
Binary files /dev/null and b/static/media/fa-solid-900.fb8184add5a3101ad0a3.woff2 differ
diff --git a/static/media/fa-v4compatibility.2eb7b3ef25042305f3ff.ttf b/static/media/fa-v4compatibility.2eb7b3ef25042305f3ff.ttf
new file mode 100644
index 0000000..b175aa8
Binary files /dev/null and b/static/media/fa-v4compatibility.2eb7b3ef25042305f3ff.ttf differ
diff --git a/static/media/fa-v4compatibility.b3049b13a93f07e026fc.woff2 b/static/media/fa-v4compatibility.b3049b13a93f07e026fc.woff2
new file mode 100644
index 0000000..e09b5a5
Binary files /dev/null and b/static/media/fa-v4compatibility.b3049b13a93f07e026fc.woff2 differ