"use strict"; /* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (self["webpackChunktududi"] = self["webpackChunktududi"] || []).push([["frontend_components_Tasks_tsx"],{ /***/ "./frontend/components/Task/getDescription.ts": /*!****************************************************!*\ !*** ./frontend/components/Task/getDescription.ts ***! \****************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getDescription: () => (/* binding */ getDescription)\n/* harmony export */ });\n/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ \"./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js\");\n/* provided dependency */ var __react_refresh_error_overlay__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js */ \"./node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js\");\n__webpack_require__.$Refresh$.runtime = __webpack_require__(/*! ./node_modules/react-refresh/runtime.js */ \"./node_modules/react-refresh/runtime.js\");\n\nvar getDescription = function getDescription(query, projects, t) {\n try {\n // Default descriptions as fallbacks in case translation function fails\n var defaultDescriptions = {\n project: \"Project tasks\",\n today: \"Tasks due today or scheduled for immediate attention\",\n inbox: \"Uncategorized tasks without project or due date\",\n next: \"Tasks that are actionable in the near future\",\n upcoming: \"Tasks scheduled for the upcoming week\",\n someday: \"Tasks without urgency or specific due date\",\n completed: \"Tasks you've completed\",\n allTasks: \"All tasks from different projects and priorities\"\n };\n\n // Check for project_id first\n var projectId = query.get('project_id');\n if (projectId) {\n try {\n var project = projects.find(function (p) {\n var _p$id;\n return ((_p$id = p.id) === null || _p$id === void 0 ? void 0 : _p$id.toString()) === projectId;\n });\n if (project) {\n return t(\"taskViews.project.withName\", {\n projectName: project.name\n });\n } else {\n return t(\"taskViews.project.noName\");\n }\n } catch (e) {\n console.error(\"Translation error for project description:\", e);\n // Fallback with project name if available\n var _project = projects.find(function (p) {\n var _p$id2;\n return ((_p$id2 = p.id) === null || _p$id2 === void 0 ? void 0 : _p$id2.toString()) === projectId;\n });\n return _project ? \"Tasks for project: \".concat(_project.name) : defaultDescriptions.project;\n }\n }\n\n // Then check for type and status parameters\n try {\n if (query.get('type') === 'today') {\n return t(\"taskViews.today\");\n }\n if (query.get('type') === 'inbox') {\n return t(\"taskViews.inbox\");\n }\n if (query.get('type') === 'next') {\n return t(\"taskViews.next\");\n }\n if (query.get('type') === 'upcoming') {\n return t(\"taskViews.upcoming\");\n }\n if (query.get('type') === 'someday') {\n return t(\"taskViews.someday\");\n }\n if (query.get('status') === 'done') {\n return t(\"taskViews.completed\");\n }\n return t(\"taskViews.allTasks\");\n } catch (e) {\n console.error(\"Translation error for task view description:\", e);\n\n // Return appropriate fallback based on type or status\n if (query.get('type') === 'today') return defaultDescriptions.today;\n if (query.get('type') === 'inbox') return defaultDescriptions.inbox;\n if (query.get('type') === 'next') return defaultDescriptions.next;\n if (query.get('type') === 'upcoming') return defaultDescriptions.upcoming;\n if (query.get('type') === 'someday') return defaultDescriptions.someday;\n if (query.get('status') === 'done') return defaultDescriptions.completed;\n return defaultDescriptions.allTasks;\n }\n } catch (error) {\n console.error(\"Error in getDescription:\", error);\n return \"Tasks overview\";\n }\n};\n\nconst $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId;\nconst $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports(\n\t$ReactRefreshModuleId$\n);\n\nfunction $ReactRefreshModuleRuntime$(exports) {\n\tif (true) {\n\t\tlet errorOverlay;\n\t\tif (typeof __react_refresh_error_overlay__ !== 'undefined') {\n\t\t\terrorOverlay = __react_refresh_error_overlay__;\n\t\t}\n\t\tlet testMode;\n\t\tif (typeof __react_refresh_test__ !== 'undefined') {\n\t\t\ttestMode = __react_refresh_test__;\n\t\t}\n\t\treturn __react_refresh_utils__.executeRuntime(\n\t\t\texports,\n\t\t\t$ReactRefreshModuleId$,\n\t\t\tmodule.hot,\n\t\t\terrorOverlay,\n\t\t\ttestMode\n\t\t);\n\t}\n}\n\nif (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) {\n\t$ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$);\n} else {\n\t$ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$);\n}\n\n//# sourceURL=webpack://tududi/./frontend/components/Task/getDescription.ts?"); /***/ }), /***/ "./frontend/components/Task/getTitleAndIcon.ts": /*!*****************************************************!*\ !*** ./frontend/components/Task/getTitleAndIcon.ts ***! \*****************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTitleAndIcon: () => (/* binding */ getTitleAndIcon)\n/* harmony export */ });\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/FolderIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/CalendarIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/InboxIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/ClockIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/MoonIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @heroicons/react/24/outline */ \"./node_modules/@heroicons/react/24/outline/esm/Bars4Icon.js\");\n/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ \"./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js\");\n/* provided dependency */ var __react_refresh_error_overlay__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js */ \"./node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js\");\n__webpack_require__.$Refresh$.runtime = __webpack_require__(/*! ./node_modules/react-refresh/runtime.js */ \"./node_modules/react-refresh/runtime.js\");\n\n\nvar getTitleAndIcon = function getTitleAndIcon(query, projects, t) {\n try {\n // Default titles as fallbacks in case translation function fails\n var defaultTitles = {\n project: 'Project',\n today: 'Today',\n inbox: 'Inbox',\n next: 'Next Actions',\n upcoming: 'Upcoming',\n someday: 'Someday',\n completed: 'Completed',\n allTasks: 'All Tasks'\n };\n var projectId = query.get('project_id');\n if (projectId) {\n var project = projects.find(function (p) {\n var _p$id;\n return ((_p$id = p.id) === null || _p$id === void 0 ? void 0 : _p$id.toString()) === projectId;\n });\n return {\n title: project ? project.name : t('sidebar.projects'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n };\n }\n try {\n if (query.get('type') === 'today') {\n return {\n title: t('tasks.today'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n }\n if (query.get('type') === 'inbox') {\n return {\n title: t('sidebar.inbox'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n };\n }\n if (query.get('type') === 'next') {\n return {\n title: t('sidebar.nextActions'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n };\n }\n if (query.get('type') === 'upcoming') {\n return {\n title: t('sidebar.upcoming'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n };\n }\n if (query.get('type') === 'someday') {\n return {\n title: t('taskViews.someday') || defaultTitles.someday,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n };\n }\n if (query.get('status') === 'done') {\n return {\n title: t('sidebar.completed'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n };\n }\n return {\n title: t('sidebar.allTasks'),\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n };\n } catch (e) {\n console.error(\"Translation error for task view title:\", e);\n\n // Return appropriate fallback based on type or status\n if (query.get('type') === 'today') return {\n title: defaultTitles.today,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n if (query.get('type') === 'inbox') return {\n title: defaultTitles.inbox,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n };\n if (query.get('type') === 'next') return {\n title: defaultTitles.next,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n };\n if (query.get('type') === 'upcoming') return {\n title: defaultTitles.upcoming,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n };\n if (query.get('type') === 'someday') return {\n title: defaultTitles.someday,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n };\n if (query.get('status') === 'done') return {\n title: defaultTitles.completed,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n };\n return {\n title: defaultTitles.allTasks,\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n };\n }\n } catch (error) {\n console.error(\"Error in getTitleAndIcon:\", error);\n return {\n title: \"Tasks\",\n icon: _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n };\n }\n};\n\nconst $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId;\nconst $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports(\n\t$ReactRefreshModuleId$\n);\n\nfunction $ReactRefreshModuleRuntime$(exports) {\n\tif (true) {\n\t\tlet errorOverlay;\n\t\tif (typeof __react_refresh_error_overlay__ !== 'undefined') {\n\t\t\terrorOverlay = __react_refresh_error_overlay__;\n\t\t}\n\t\tlet testMode;\n\t\tif (typeof __react_refresh_test__ !== 'undefined') {\n\t\t\ttestMode = __react_refresh_test__;\n\t\t}\n\t\treturn __react_refresh_utils__.executeRuntime(\n\t\t\texports,\n\t\t\t$ReactRefreshModuleId$,\n\t\t\tmodule.hot,\n\t\t\terrorOverlay,\n\t\t\ttestMode\n\t\t);\n\t}\n}\n\nif (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) {\n\t$ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$);\n} else {\n\t$ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$);\n}\n\n//# sourceURL=webpack://tududi/./frontend/components/Task/getTitleAndIcon.ts?"); /***/ }), /***/ "./frontend/components/Tasks.tsx": /*!***************************************!*\ !*** ./frontend/components/Tasks.tsx ***! \***************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _Task_TaskList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Task/TaskList */ \"./frontend/components/Task/TaskList.tsx\");\n/* harmony import */ var _Task_NewTask__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Task/NewTask */ \"./frontend/components/Task/NewTask.tsx\");\n/* harmony import */ var _Task_getTitleAndIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Task/getTitleAndIcon */ \"./frontend/components/Task/getTitleAndIcon.ts\");\n/* harmony import */ var _Task_getDescription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Task/getDescription */ \"./frontend/components/Task/getDescription.ts\");\n/* harmony import */ var _utils_tasksService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/tasksService */ \"./frontend/utils/tasksService.ts\");\n/* harmony import */ var _heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @heroicons/react/24/solid */ \"./node_modules/@heroicons/react/24/solid/esm/TagIcon.js\");\n/* harmony import */ var _heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @heroicons/react/24/solid */ \"./node_modules/@heroicons/react/24/solid/esm/XMarkIcon.js\");\n/* harmony import */ var _heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @heroicons/react/24/solid */ \"./node_modules/@heroicons/react/24/solid/esm/ChevronDoubleDownIcon.js\");\n/* harmony import */ var _heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @heroicons/react/24/solid */ \"./node_modules/@heroicons/react/24/solid/esm/ChevronDownIcon.js\");\n/* harmony import */ var _heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @heroicons/react/24/solid */ \"./node_modules/@heroicons/react/24/solid/esm/MagnifyingGlassIcon.js\");\n/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ \"./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js\");\n/* provided dependency */ var __react_refresh_error_overlay__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js */ \"./node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js\");\n__webpack_require__.$Refresh$.runtime = __webpack_require__(/*! ./node_modules/react-refresh/runtime.js */ \"./node_modules/react-refresh/runtime.js\");\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _s = __webpack_require__.$Refresh$.signature();\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n\n\n\n\n\n\n\n\n\nvar capitalize = function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\n// Helper function to get search placeholder by language\nvar getSearchPlaceholder = function getSearchPlaceholder(language) {\n var placeholders = {\n en: 'Search tasks...',\n el: 'Αναζήτηση εργασιών...',\n es: 'Buscar tareas...',\n de: 'Aufgaben suchen...',\n jp: 'タスクを検索...',\n ua: 'Пошук завдань...'\n };\n return placeholders[language] || 'Search tasks...';\n};\nvar Tasks = function Tasks() {\n _s();\n var _useTranslation = (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__.useTranslation)(),\n t = _useTranslation.t,\n i18n = _useTranslation.i18n;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),\n _useState2 = _slicedToArray(_useState, 2),\n tasks = _useState2[0],\n setTasks = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),\n _useState4 = _slicedToArray(_useState3, 2),\n projects = _useState4[0],\n setProjects = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true),\n _useState6 = _slicedToArray(_useState5, 2),\n loading = _useState6[0],\n setLoading = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),\n _useState8 = _slicedToArray(_useState7, 2),\n error = _useState8[0],\n setError = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n _useState10 = _slicedToArray(_useState9, 2),\n dropdownOpen = _useState10[0],\n setDropdownOpen = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"due_date:asc\"),\n _useState12 = _slicedToArray(_useState11, 2),\n orderBy = _useState12[0],\n setOrderBy = _useState12[1];\n var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"),\n _useState14 = _slicedToArray(_useState13, 2),\n taskSearchQuery = _useState14[0],\n setTaskSearchQuery = _useState14[1];\n var dropdownRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useLocation)();\n var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useNavigate)();\n var query = new URLSearchParams(location.search);\n var _ref = location.state || {},\n stateTitle = _ref.title,\n stateIcon = _ref.icon;\n var _ref2 = stateTitle && stateIcon ? {\n title: stateTitle,\n icon: stateIcon\n } : (0,_Task_getTitleAndIcon__WEBPACK_IMPORTED_MODULE_4__.getTitleAndIcon)(query, projects, t),\n title = _ref2.title,\n icon = _ref2.icon;\n var IconComponent = typeof icon === \"string\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(icon) : icon;\n var tag = query.get(\"tag\");\n var status = query.get(\"status\");\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var savedOrderBy = localStorage.getItem(\"order_by\") || \"due_date:asc\";\n setOrderBy(savedOrderBy);\n var params = new URLSearchParams(location.search);\n if (!params.get(\"order_by\")) {\n params.set(\"order_by\", savedOrderBy);\n navigate({\n pathname: location.pathname,\n search: \"?\".concat(params.toString())\n }, {\n replace: true\n });\n }\n }, [location.pathname]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var handleClickOutside = function handleClickOutside(event) {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setDropdownOpen(false);\n }\n };\n if (dropdownOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n return function () {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [dropdownOpen]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var fetchData = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tagId, _yield$Promise$all, _yield$Promise$all2, tasksResponse, projectsResponse, tasksData, projectsData;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoading(true);\n setError(null);\n _context.prev = 2;\n tagId = query.get(\"tag\");\n _context.next = 6;\n return Promise.all([fetch(\"/api/tasks\".concat(location.search).concat(tagId ? \"&tag=\".concat(tagId) : \"\")), fetch(\"/api/projects\")]);\n case 6:\n _yield$Promise$all = _context.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n tasksResponse = _yield$Promise$all2[0];\n projectsResponse = _yield$Promise$all2[1];\n if (!tasksResponse.ok) {\n _context.next = 17;\n break;\n }\n _context.next = 13;\n return tasksResponse.json();\n case 13:\n tasksData = _context.sent;\n setTasks(tasksData.tasks || []);\n _context.next = 18;\n break;\n case 17:\n throw new Error(\"Failed to fetch tasks.\");\n case 18:\n if (!projectsResponse.ok) {\n _context.next = 25;\n break;\n }\n _context.next = 21;\n return projectsResponse.json();\n case 21:\n projectsData = _context.sent;\n setProjects((projectsData === null || projectsData === void 0 ? void 0 : projectsData.projects) || []);\n _context.next = 26;\n break;\n case 25:\n throw new Error(\"Failed to fetch projects.\");\n case 26:\n _context.next = 31;\n break;\n case 28:\n _context.prev = 28;\n _context.t0 = _context[\"catch\"](2);\n setError(_context.t0.message);\n case 31:\n _context.prev = 31;\n setLoading(false);\n return _context.finish(31);\n case 34:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[2, 28, 31, 34]]);\n }));\n return function fetchData() {\n return _ref3.apply(this, arguments);\n };\n }();\n fetchData();\n }, [location]);\n var handleRemoveTag = function handleRemoveTag() {\n var params = new URLSearchParams(location.search);\n params[\"delete\"](\"tag\");\n navigate({\n pathname: location.pathname,\n search: \"?\".concat(params.toString())\n });\n };\n var handleTaskCreate = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(taskData) {\n var newTask;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return (0,_utils_tasksService__WEBPACK_IMPORTED_MODULE_6__.createTask)(taskData);\n case 3:\n newTask = _context2.sent;\n // Add the new task optimistically to avoid race conditions\n setTasks(function (prevTasks) {\n return [newTask].concat(_toConsumableArray(prevTasks));\n });\n _context2.next = 12;\n break;\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2[\"catch\"](0);\n console.error(\"Error creating task:\", _context2.t0);\n setError(\"Error creating task.\");\n throw _context2.t0;\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 7]]);\n }));\n return function handleTaskCreate(_x) {\n return _ref4.apply(this, arguments);\n };\n }();\n var handleTaskUpdate = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(updatedTask) {\n var response, errorData;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n _context3.next = 3;\n return fetch(\"/api/task/\".concat(updatedTask.id), {\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(updatedTask)\n });\n case 3:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 8;\n break;\n }\n setTasks(function (prevTasks) {\n return prevTasks.map(function (task) {\n return task.id === updatedTask.id ? updatedTask : task;\n });\n });\n _context3.next = 13;\n break;\n case 8:\n _context3.next = 10;\n return response.json();\n case 10:\n errorData = _context3.sent;\n console.error(\"Failed to update task:\", errorData.error);\n setError(\"Failed to update task.\");\n case 13:\n _context3.next = 19;\n break;\n case 15:\n _context3.prev = 15;\n _context3.t0 = _context3[\"catch\"](0);\n console.error(\"Error updating task:\", _context3.t0);\n setError(\"Error updating task.\");\n case 19:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 15]]);\n }));\n return function handleTaskUpdate(_x2) {\n return _ref5.apply(this, arguments);\n };\n }();\n var handleTaskDelete = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(taskId) {\n var response, errorData;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n _context4.next = 3;\n return fetch(\"/api/task/\".concat(taskId), {\n method: \"DELETE\"\n });\n case 3:\n response = _context4.sent;\n if (!response.ok) {\n _context4.next = 8;\n break;\n }\n setTasks(function (prevTasks) {\n return prevTasks.filter(function (task) {\n return task.id !== taskId;\n });\n });\n _context4.next = 13;\n break;\n case 8:\n _context4.next = 10;\n return response.json();\n case 10:\n errorData = _context4.sent;\n console.error(\"Failed to delete task:\", errorData.error);\n setError(\"Failed to delete task.\");\n case 13:\n _context4.next = 19;\n break;\n case 15:\n _context4.prev = 15;\n _context4.t0 = _context4[\"catch\"](0);\n console.error(\"Error deleting task:\", _context4.t0);\n setError(\"Error deleting task.\");\n case 19:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 15]]);\n }));\n return function handleTaskDelete(_x3) {\n return _ref6.apply(this, arguments);\n };\n }();\n var handleSortChange = function handleSortChange(order) {\n setOrderBy(order);\n localStorage.setItem(\"order_by\", order);\n var params = new URLSearchParams(location.search);\n params.set(\"order_by\", order);\n navigate({\n pathname: location.pathname,\n search: \"?\".concat(params.toString())\n }, {\n replace: true\n });\n setDropdownOpen(false);\n };\n var description = (0,_Task_getDescription__WEBPACK_IMPORTED_MODULE_5__.getDescription)(query, projects, t);\n var isNewTaskAllowed = function isNewTaskAllowed() {\n return status !== \"done\";\n };\n var filteredTasks = tasks.filter(function (task) {\n return task.name.toLowerCase().includes(taskSearchQuery.toLowerCase());\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"flex justify-center px-4 lg:px-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"w-full max-w-5xl\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"flex flex-col sm:flex-row items-start sm:items-center justify-between mb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"flex items-center mb-2 sm:mb-0\"\n }, IconComponent && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(IconComponent, {\n className: \"h-6 w-6 mr-2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h2\", {\n className: \"text-2xl font-light\"\n }, title), tag && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"ml-4 flex items-center space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n className: \"flex items-center space-x-1 px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded-lg cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-600\",\n onClick: handleRemoveTag\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4 text-gray-500 dark:text-gray-300\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"text-xs text-gray-700 dark:text-gray-300\"\n }, capitalize(tag)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4 text-gray-500 dark:text-gray-300 hover:text-red-500\"\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"relative inline-block text-left\",\n ref: dropdownRef\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"inline-flex justify-center w-full rounded-md border border-gray-300 dark:border-gray-700 shadow-sm px-4 py-2 bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none\",\n id: \"menu-button\",\n \"aria-expanded\": dropdownOpen,\n \"aria-haspopup\": \"true\",\n onClick: function onClick() {\n return setDropdownOpen(!dropdownOpen);\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-5 w-5 text-gray-500 mr-2\"\n }), \" \", t(\"sort.\".concat(orderBy.split(\":\")[0]), capitalize(orderBy.split(\":\")[0].replace(\"_\", \" \"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-5 w-5 ml-2 text-gray-500 dark:text-gray-300\"\n })), dropdownOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"origin-top-right absolute left-0 sm:right-0 sm:left-auto mt-2 w-full sm:w-56 max-w-full rounded-md shadow-lg bg-white dark:bg-gray-800 ring-1 ring-black ring-opacity-5 focus:outline-none z-10\",\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"aria-labelledby\": \"menu-button\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"py-1 max-h-60 overflow-y-auto\",\n role: \"none\"\n }, [\"due_date:asc\", \"name:asc\", \"priority:desc\", \"status:desc\", \"created_at:desc\"].map(function (order) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n key: order,\n onClick: function onClick() {\n return handleSortChange(order);\n },\n className: \"block px-4 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600 w-full text-left\",\n role: \"menuitem\"\n }, t(\"sort.\".concat(order.split(\":\")[0]), capitalize(order.split(\":\")[0].replace(\"_\", \" \"))));\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", {\n className: \"mb-6 text-sm text-gray-500 dark:text-gray-400\"\n }, description), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"mb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"flex items-center bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm p-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_heroicons_react_24_solid__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"h-5 w-5 text-gray-500 dark:text-gray-400 mr-2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"text\",\n placeholder: getSearchPlaceholder(i18n.language),\n value: taskSearchQuery,\n onChange: function onChange(e) {\n return setTaskSearchQuery(e.target.value);\n },\n className: \"w-full bg-transparent border-none focus:ring-0 focus:outline-none dark:text-white\"\n }))), loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, t('common.loading', 'Loading...')) : error ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", {\n className: \"text-red-500\"\n }, error) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, isNewTaskAllowed() && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Task_NewTask__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onTaskCreate: (/*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(taskName) {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return handleTaskCreate({\n name: taskName,\n status: \"not_started\"\n });\n case 2:\n return _context5.abrupt(\"return\", _context5.sent);\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function (_x4) {\n return _ref7.apply(this, arguments);\n };\n }())\n }), filteredTasks.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Task_TaskList__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n tasks: filteredTasks,\n onTaskCreate: handleTaskCreate,\n onTaskUpdate: handleTaskUpdate,\n onTaskDelete: handleTaskDelete,\n projects: projects\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", {\n className: \"text-gray-500 text-center mt-4\"\n }, t('tasks.noTasksAvailable', 'Δεν υπάρχουν διαθέσιμες εργασίες.')))));\n};\n_s(Tasks, \"5Z8QLe2HIWOxwpw6vPkauZx5154=\", false, function () {\n return [react_i18next__WEBPACK_IMPORTED_MODULE_1__.useTranslation, react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useLocation, react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useNavigate];\n});\n_c = Tasks;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Tasks);\nvar _c;\n__webpack_require__.$Refresh$.register(_c, \"Tasks\");\n\nconst $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId;\nconst $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports(\n\t$ReactRefreshModuleId$\n);\n\nfunction $ReactRefreshModuleRuntime$(exports) {\n\tif (true) {\n\t\tlet errorOverlay;\n\t\tif (typeof __react_refresh_error_overlay__ !== 'undefined') {\n\t\t\terrorOverlay = __react_refresh_error_overlay__;\n\t\t}\n\t\tlet testMode;\n\t\tif (typeof __react_refresh_test__ !== 'undefined') {\n\t\t\ttestMode = __react_refresh_test__;\n\t\t}\n\t\treturn __react_refresh_utils__.executeRuntime(\n\t\t\texports,\n\t\t\t$ReactRefreshModuleId$,\n\t\t\tmodule.hot,\n\t\t\terrorOverlay,\n\t\t\ttestMode\n\t\t);\n\t}\n}\n\nif (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) {\n\t$ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$);\n} else {\n\t$ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$);\n}\n\n//# sourceURL=webpack://tududi/./frontend/components/Tasks.tsx?"); /***/ }), /***/ "./node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js": /*!************************************************************************!*\ !*** ./node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction ArrowRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowRightIcon);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);\n\n//# sourceURL=webpack://tududi/./node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js?"); /***/ }), /***/ "./node_modules/@heroicons/react/24/outline/esm/Bars4Icon.js": /*!*******************************************************************!*\ !*** ./node_modules/@heroicons/react/24/outline/esm/Bars4Icon.js ***! \*******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction Bars4Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 5.25h16.5m-16.5 4.5h16.5m-16.5 4.5h16.5m-16.5 4.5h16.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(Bars4Icon);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);\n\n//# sourceURL=webpack://tududi/./node_modules/@heroicons/react/24/outline/esm/Bars4Icon.js?"); /***/ }), /***/ "./node_modules/@heroicons/react/24/outline/esm/CalendarIcon.js": /*!**********************************************************************!*\ !*** ./node_modules/@heroicons/react/24/outline/esm/CalendarIcon.js ***! \**********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction CalendarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CalendarIcon);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);\n\n//# sourceURL=webpack://tududi/./node_modules/@heroicons/react/24/outline/esm/CalendarIcon.js?"); /***/ }), /***/ "./node_modules/@heroicons/react/24/solid/esm/ChevronDoubleDownIcon.js": /*!*****************************************************************************!*\ !*** ./node_modules/@heroicons/react/24/solid/esm/ChevronDoubleDownIcon.js ***! \*****************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction ChevronDoubleDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M11.47 13.28a.75.75 0 0 0 1.06 0l7.5-7.5a.75.75 0 0 0-1.06-1.06L12 11.69 5.03 4.72a.75.75 0 0 0-1.06 1.06l7.5 7.5Z\",\n clipRule: \"evenodd\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M11.47 19.28a.75.75 0 0 0 1.06 0l7.5-7.5a.75.75 0 1 0-1.06-1.06L12 17.69l-6.97-6.97a.75.75 0 0 0-1.06 1.06l7.5 7.5Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ChevronDoubleDownIcon);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);\n\n//# sourceURL=webpack://tududi/./node_modules/@heroicons/react/24/solid/esm/ChevronDoubleDownIcon.js?"); /***/ }), /***/ "./node_modules/@heroicons/react/24/solid/esm/ChevronDownIcon.js": /*!***********************************************************************!*\ !*** ./node_modules/@heroicons/react/24/solid/esm/ChevronDownIcon.js ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction ChevronDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ChevronDownIcon);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);\n\n//# sourceURL=webpack://tududi/./node_modules/@heroicons/react/24/solid/esm/ChevronDownIcon.js?"); /***/ }) }]);