├── .dockerignore ├── .eslintrc.json ├── .github └── workflows │ ├── docker-image-dev.yml │ ├── docker-image-release.yml │ ├── docker-image.yml │ └── node.js.yml ├── .gitignore ├── .readthedocs.yaml ├── .sequelizerc ├── CHANGELOG ├── COMMITMESSAGE.md ├── Dockerfile ├── LICENSE ├── README.md ├── babel.config.js ├── buildandrundocker.sh ├── config ├── config.js └── nextAuthProviders.js ├── cypress.config.ts ├── cypress ├── e2e │ └── api │ │ └── install.cy.ts ├── fixtures │ └── example.json ├── screenshots │ └── install.cy.ts │ │ └── template spec -- passes (failed).png ├── support │ ├── commands.ts │ ├── component-index.html │ ├── component.ts │ └── e2e.ts └── videos │ └── install.cy.ts.mp4 ├── docker-compose.yml.sample ├── docker-compose.yml.sample.deprecated-v0.3.0 ├── docs ├── Developer Docs │ └── API-Endpoints │ │ ├── admin.md │ │ ├── caldav.md │ │ ├── events.md │ │ ├── filters.md │ │ ├── install.md │ │ ├── labels.md │ │ ├── misc.md │ │ ├── settings.md │ │ ├── tasks.md │ │ ├── tests.md │ │ └── users.md ├── Feature Guide │ └── QuickAdd.md ├── Updating.md ├── cinder │ ├── 404.html │ ├── __init__.py │ ├── base.html │ ├── content.html │ ├── css │ │ ├── base.css │ │ ├── base.min.css │ │ ├── bootstrap-custom.css │ │ ├── bootstrap-custom.min.css │ │ ├── cinder.css │ │ ├── cinder.min.css │ │ ├── highlight.css │ │ └── highlight.min.css │ ├── fonts │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ ├── img │ │ ├── favicon.ico │ │ ├── grid1.png │ │ ├── grid10.png │ │ ├── grid11.png │ │ ├── grid12.png │ │ ├── grid13.png │ │ ├── grid14.png │ │ ├── grid15.png │ │ ├── grid16.png │ │ ├── grid17.png │ │ ├── grid18.png │ │ ├── grid19.png │ │ ├── grid2.png │ │ ├── grid20.png │ │ ├── grid3.png │ │ ├── grid4.png │ │ ├── grid5.png │ │ ├── grid6.png │ │ ├── grid7.png │ │ ├── grid8.png │ │ └── grid9.png │ ├── js │ │ ├── base.js │ │ └── bootstrap-3.0.3.min.js │ ├── keyboard-modal.html │ ├── main.html │ ├── mkdocs_theme.yml │ ├── nav-sub.html │ ├── nav.html │ ├── search-modal.html │ └── toc.html ├── index.md ├── install │ ├── Configuration │ │ ├── DetailedConfiguration.md │ │ ├── OAuth.md │ │ ├── WithDockerCompose.md │ │ ├── WithoutDocker.md │ │ └── index.md │ ├── Docker │ │ └── index.md │ ├── Dockerless │ │ ├── Install.md │ │ └── VirtualHost.md │ ├── Supplementary │ │ └── RunMySQLDocker.md │ └── index.md └── pics │ ├── screenRecord.gif │ └── screenshots │ ├── AddCalendar.png │ ├── AddTask.png │ ├── GanttView.png │ ├── HomeView.png │ ├── MangeFilter.png │ ├── Settings.png │ ├── TaskView.png │ ├── addCaldavAccount.png │ ├── caldav_AccountsPage.png │ ├── install_step1.png │ ├── install_step_OK.png │ ├── installation_error.png │ ├── login.png │ └── register.png ├── eslint.config.mjs ├── host.docker.internal ├── jsconfig.json ├── migrations ├── 20230728075614-first_migration.js ├── 20230730083903-users-add-columns-nextAuth-v-0.3.0.js ├── 20230730093908-create-session.js ├── 20230730094838-create-account.js ├── 20250505065245-create-templates.js └── 20250523111400-nextAuthmigrations.js ├── mkdocs.yml ├── models ├── account.js ├── caldav_accounts.ts ├── calendar_events.ts ├── calendars.ts ├── custom_filters.ts ├── index.js ├── init-models.ts ├── labels.ts ├── otp_table.ts ├── session.js ├── settings.ts ├── ssid_table.ts ├── templates.ts └── users.ts ├── next-env.d.ts ├── next-i18next.config.js ├── next.config.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── faviconDefault.ico ├── fullcalendar │ ├── 6.1.7 │ │ ├── index.global.js │ │ └── index.global.min.js │ ├── 6.1.8 │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ ├── examples │ │ │ ├── background-events.html │ │ │ ├── daygrid-views.html │ │ │ ├── external-dragging-2cals.html │ │ │ ├── external-dragging-builtin.html │ │ │ ├── full-height.html │ │ │ ├── list-sticky-header.html │ │ │ ├── list-views.html │ │ │ ├── month-view.html │ │ │ ├── multimonth-view.html │ │ │ ├── multiweek-view.html │ │ │ ├── natural-height.html │ │ │ ├── selectable.html │ │ │ └── timegrid-views.html │ │ └── packages │ │ │ ├── bootstrap4 │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── bootstrap5 │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── core │ │ │ ├── index.global.js │ │ │ ├── index.global.min.js │ │ │ ├── locales-all.global.js │ │ │ ├── locales-all.global.min.js │ │ │ └── locales │ │ │ │ ├── af.global.js │ │ │ │ ├── af.global.min.js │ │ │ │ ├── ar-dz.global.js │ │ │ │ ├── ar-dz.global.min.js │ │ │ │ ├── ar-kw.global.js │ │ │ │ ├── ar-kw.global.min.js │ │ │ │ ├── ar-ly.global.js │ │ │ │ ├── ar-ly.global.min.js │ │ │ │ ├── ar-ma.global.js │ │ │ │ ├── ar-ma.global.min.js │ │ │ │ ├── ar-sa.global.js │ │ │ │ ├── ar-sa.global.min.js │ │ │ │ ├── ar-tn.global.js │ │ │ │ ├── ar-tn.global.min.js │ │ │ │ ├── ar.global.js │ │ │ │ ├── ar.global.min.js │ │ │ │ ├── az.global.js │ │ │ │ ├── az.global.min.js │ │ │ │ ├── bg.global.js │ │ │ │ ├── bg.global.min.js │ │ │ │ ├── bn.global.js │ │ │ │ ├── bn.global.min.js │ │ │ │ ├── bs.global.js │ │ │ │ ├── bs.global.min.js │ │ │ │ ├── ca.global.js │ │ │ │ ├── ca.global.min.js │ │ │ │ ├── cs.global.js │ │ │ │ ├── cs.global.min.js │ │ │ │ ├── cy.global.js │ │ │ │ ├── cy.global.min.js │ │ │ │ ├── da.global.js │ │ │ │ ├── da.global.min.js │ │ │ │ ├── de-at.global.js │ │ │ │ ├── de-at.global.min.js │ │ │ │ ├── de.global.js │ │ │ │ ├── de.global.min.js │ │ │ │ ├── el.global.js │ │ │ │ ├── el.global.min.js │ │ │ │ ├── en-au.global.js │ │ │ │ ├── en-au.global.min.js │ │ │ │ ├── en-gb.global.js │ │ │ │ ├── en-gb.global.min.js │ │ │ │ ├── en-nz.global.js │ │ │ │ ├── en-nz.global.min.js │ │ │ │ ├── eo.global.js │ │ │ │ ├── eo.global.min.js │ │ │ │ ├── es-us.global.js │ │ │ │ ├── es-us.global.min.js │ │ │ │ ├── es.global.js │ │ │ │ ├── es.global.min.js │ │ │ │ ├── et.global.js │ │ │ │ ├── et.global.min.js │ │ │ │ ├── eu.global.js │ │ │ │ ├── eu.global.min.js │ │ │ │ ├── fa.global.js │ │ │ │ ├── fa.global.min.js │ │ │ │ ├── fi.global.js │ │ │ │ ├── fi.global.min.js │ │ │ │ ├── fr-ca.global.js │ │ │ │ ├── fr-ca.global.min.js │ │ │ │ ├── fr-ch.global.js │ │ │ │ ├── fr-ch.global.min.js │ │ │ │ ├── fr.global.js │ │ │ │ ├── fr.global.min.js │ │ │ │ ├── gl.global.js │ │ │ │ ├── gl.global.min.js │ │ │ │ ├── he.global.js │ │ │ │ ├── he.global.min.js │ │ │ │ ├── hi.global.js │ │ │ │ ├── hi.global.min.js │ │ │ │ ├── hr.global.js │ │ │ │ ├── hr.global.min.js │ │ │ │ ├── hu.global.js │ │ │ │ ├── hu.global.min.js │ │ │ │ ├── hy-am.global.js │ │ │ │ ├── hy-am.global.min.js │ │ │ │ ├── id.global.js │ │ │ │ ├── id.global.min.js │ │ │ │ ├── is.global.js │ │ │ │ ├── is.global.min.js │ │ │ │ ├── it.global.js │ │ │ │ ├── it.global.min.js │ │ │ │ ├── ja.global.js │ │ │ │ ├── ja.global.min.js │ │ │ │ ├── ka.global.js │ │ │ │ ├── ka.global.min.js │ │ │ │ ├── kk.global.js │ │ │ │ ├── kk.global.min.js │ │ │ │ ├── km.global.js │ │ │ │ ├── km.global.min.js │ │ │ │ ├── ko.global.js │ │ │ │ ├── ko.global.min.js │ │ │ │ ├── ku.global.js │ │ │ │ ├── ku.global.min.js │ │ │ │ ├── lb.global.js │ │ │ │ ├── lb.global.min.js │ │ │ │ ├── lt.global.js │ │ │ │ ├── lt.global.min.js │ │ │ │ ├── lv.global.js │ │ │ │ ├── lv.global.min.js │ │ │ │ ├── mk.global.js │ │ │ │ ├── mk.global.min.js │ │ │ │ ├── ms.global.js │ │ │ │ ├── ms.global.min.js │ │ │ │ ├── nb.global.js │ │ │ │ ├── nb.global.min.js │ │ │ │ ├── ne.global.js │ │ │ │ ├── ne.global.min.js │ │ │ │ ├── nl.global.js │ │ │ │ ├── nl.global.min.js │ │ │ │ ├── nn.global.js │ │ │ │ ├── nn.global.min.js │ │ │ │ ├── pl.global.js │ │ │ │ ├── pl.global.min.js │ │ │ │ ├── pt-br.global.js │ │ │ │ ├── pt-br.global.min.js │ │ │ │ ├── pt.global.js │ │ │ │ ├── pt.global.min.js │ │ │ │ ├── ro.global.js │ │ │ │ ├── ro.global.min.js │ │ │ │ ├── ru.global.js │ │ │ │ ├── ru.global.min.js │ │ │ │ ├── si-lk.global.js │ │ │ │ ├── si-lk.global.min.js │ │ │ │ ├── sk.global.js │ │ │ │ ├── sk.global.min.js │ │ │ │ ├── sl.global.js │ │ │ │ ├── sl.global.min.js │ │ │ │ ├── sm.global.js │ │ │ │ ├── sm.global.min.js │ │ │ │ ├── sq.global.js │ │ │ │ ├── sq.global.min.js │ │ │ │ ├── sr-cyrl.global.js │ │ │ │ ├── sr-cyrl.global.min.js │ │ │ │ ├── sr.global.js │ │ │ │ ├── sr.global.min.js │ │ │ │ ├── sv.global.js │ │ │ │ ├── sv.global.min.js │ │ │ │ ├── ta-in.global.js │ │ │ │ ├── ta-in.global.min.js │ │ │ │ ├── th.global.js │ │ │ │ ├── th.global.min.js │ │ │ │ ├── tr.global.js │ │ │ │ ├── tr.global.min.js │ │ │ │ ├── ug.global.js │ │ │ │ ├── ug.global.min.js │ │ │ │ ├── uk.global.js │ │ │ │ ├── uk.global.min.js │ │ │ │ ├── uz-cy.global.js │ │ │ │ ├── uz-cy.global.min.js │ │ │ │ ├── uz.global.js │ │ │ │ ├── uz.global.min.js │ │ │ │ ├── vi.global.js │ │ │ │ ├── vi.global.min.js │ │ │ │ ├── zh-cn.global.js │ │ │ │ ├── zh-cn.global.min.js │ │ │ │ ├── zh-tw.global.js │ │ │ │ └── zh-tw.global.min.js │ │ │ ├── daygrid │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── google-calendar │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── icalendar │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── interaction │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── list │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── luxon1 │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── luxon2 │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── luxon3 │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── moment-timezone │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── moment │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── multimonth │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── rrule │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ ├── timegrid │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ │ │ └── web-component │ │ │ ├── index.global.js │ │ │ └── index.global.min.js │ ├── index.global.js │ ├── index.global.min.js │ └── main.css ├── locales │ ├── de │ │ └── common.json │ ├── en │ │ └── common.json │ └── fr │ │ └── common.json ├── logo.png ├── next.svg ├── thirteen.svg └── vercel.svg ├── runSequelizeMigrations.js ├── sample.env.local ├── src ├── components │ ├── Generic.js │ ├── Home │ │ └── HomeTasks │ │ │ ├── HomeTasks.tsx │ │ │ ├── HomeTasksDDL.tsx │ │ │ ├── HomeTasksFunctions.ts │ │ │ └── HomeTasksWithStateManagement.tsx │ ├── LabelManager.tsx │ ├── LabelManagerClass.js │ ├── accounts │ │ └── DefaultCalendarViewSelect.tsx │ ├── admin │ │ └── ManageUsers.js │ ├── bootstrap │ │ └── SimpleOverlay.js │ ├── common │ │ ├── AddTask │ │ │ ├── AddFromTemplateModal.tsx │ │ │ ├── AddInfo.tsx │ │ │ ├── AddTask.js │ │ │ └── AddTaskFunctional.tsx │ │ ├── AppBar │ │ │ ├── AppBarFunctionalComponents.tsx │ │ │ ├── AppBarGenericClass.js │ │ │ ├── SyncButton.tsx │ │ │ └── index.tsx │ │ ├── Calendarpicker.tsx │ │ ├── ColourPIcker.tsx │ │ ├── Datepicker │ │ │ └── Datepicker.tsx │ │ ├── GenericLists.js │ │ ├── GlobalViewManager │ │ │ └── GlobalViewManager.tsx │ │ ├── Loading.js │ │ ├── MoveEvent │ │ │ ├── MoveEventModal.tsx │ │ │ └── MoveEventModalViewManager.tsx │ │ ├── PageViewLists │ │ │ ├── GenericListsWithStateManagement.tsx │ │ │ ├── ListOptions.tsx │ │ │ └── ViewSelector.tsx │ │ ├── Recurrence.js │ │ ├── SearchLabelArray.js │ │ ├── SearchLabelArrayFunctional.tsx │ │ ├── TaskViewOptions.js │ │ └── calendars │ │ │ ├── AddNewCalendar.js │ │ │ ├── ShowCalendarList.js │ │ │ ├── ShowCalendarListWithStateManagement.tsx │ │ │ └── caldavAccounts │ │ │ ├── AddCaldavAccount.tsx │ │ │ ├── AddCaldavAccountClass.js │ │ │ ├── CaldavAccountTable.tsx │ │ │ ├── CaldavAccounts.tsx │ │ │ └── CaldavAccountsOld.js │ ├── events │ │ ├── AlarmForm.tsx │ │ ├── EventEditor.js │ │ ├── EventEditorViewManager.tsx │ │ └── EventEditorWithStateManagement.tsx │ ├── filters │ │ ├── AddFilter.tsx │ │ ├── AddFilterOld.js │ │ ├── FilterList.js │ │ └── FilterListWithStateManagement.tsx │ ├── fullcalendar │ │ ├── CalendarViewWithStateManagement.tsx │ │ ├── DashboardView.js │ │ ├── DashboardView.module.css │ │ ├── FullCalendarHelper.ts │ │ └── ListGroupCalDAVAccounts.tsx │ ├── page │ │ ├── CalendarViewPage │ │ │ └── CalendarView.js │ │ ├── CombinedView.js │ │ ├── CombinedView │ │ │ └── CombinedViewFunctional.tsx │ │ ├── ManageFiltersPage │ │ │ ├── ManageFilters.tsx │ │ │ └── ManageFilters_old.js │ │ ├── MangerLabelsPage │ │ │ └── ManageLabels.js │ │ ├── SettingsPage │ │ │ ├── AdvancedSettings.tsx │ │ │ ├── MaintenanceTasks.tsx │ │ │ ├── SettingsPage.js │ │ │ ├── TimeFormatSetting.tsx │ │ │ └── ToastSettings.tsx │ │ └── TaskViewPage │ │ │ ├── TaskViewList.js │ │ │ └── TaskViewListWithStateManagement.tsx │ ├── settings │ │ ├── AutoSyncSetting.tsx │ │ └── CalendarStartDayWeek.tsx │ ├── tasks │ │ ├── DeleteEventConfirmation.tsx │ │ ├── EventEditorExitModal.js │ │ ├── GanttView │ │ │ ├── GanttView.js │ │ │ └── HelpGanttView.tsx │ │ ├── GenerateTaskUIList.js │ │ ├── ParentTaskSearch.js │ │ ├── RightclickContextMenu.js │ │ ├── TaskDeleteConfirmation.js │ │ ├── TaskEditor.js │ │ ├── TaskEditorExitModal.js │ │ ├── TaskEditorSupport │ │ │ ├── ParentTaskView.tsx │ │ │ ├── RepeatTaskInfo.tsx │ │ │ ├── TaskEditorViewManager.tsx │ │ │ └── TaskEditorWithStateManagement.tsx │ │ ├── TaskList.js │ │ ├── TaskUI.js │ │ ├── TaskView.js │ │ ├── TaskWithFilters.js │ │ ├── gantt_Dummy │ │ │ ├── DummyTaskHeaderComponent.tsx │ │ │ └── DummyTaskListComponent.tsx │ │ └── views │ │ │ ├── GanttView │ │ │ ├── GanttFilters.tsx │ │ │ └── GanttViewWithState.tsx │ │ │ ├── SingleTask │ │ │ ├── DescriptionIcon.tsx │ │ │ ├── LabelListForTask.tsx │ │ │ ├── RightclickContextMenuWithState.tsx │ │ │ ├── SingleTask.tsx │ │ │ └── SummaryText.tsx │ │ │ ├── TaskFilters.tsx │ │ │ ├── TaskListFrameWork.tsx │ │ │ └── TaskViewMain │ │ │ ├── LocalTaskFilters.tsx │ │ │ ├── RenderTaskList.tsx │ │ │ ├── SortByButton.tsx │ │ │ ├── TaskGroup.tsx │ │ │ ├── TaskViewMain.tsx │ │ │ └── TaskViewSectionsManager.tsx │ ├── templates │ │ ├── AddTemplateForm.tsx │ │ └── TemplateManager.tsx │ └── valarm │ │ └── VAlarmForm.tsx ├── config │ ├── constants.js │ └── style.js ├── external │ ├── .gitignore │ └── fullcalendar │ │ └── main.css ├── helpers │ ├── api │ │ ├── .gitignore │ │ ├── cal │ │ │ ├── caldav.ts │ │ │ ├── calendars.js │ │ │ ├── labels.js │ │ │ └── object.js │ │ ├── classes │ │ │ ├── CaldavAccount.ts │ │ │ ├── CaldavAccountWithoutORM.js │ │ │ ├── Calendars.ts │ │ │ ├── EventMeta.js │ │ │ ├── Events.js │ │ │ ├── Filters.ts │ │ │ ├── Settings.ts │ │ │ ├── User.ts │ │ │ └── UserWithoutORM.js │ │ ├── db.ts │ │ ├── email.js │ │ ├── filter.js │ │ ├── ical.js │ │ ├── install.ts │ │ ├── installSequelize.ts │ │ ├── otp.ts │ │ ├── settings.ts │ │ ├── tasks.js │ │ ├── template.ts │ │ ├── tsdav.js │ │ ├── user.ts │ │ └── v2 │ │ │ ├── caldavHelper.ts │ │ │ └── classes │ │ │ ├── CaldavAccountClass.ts │ │ │ └── UsersClass.ts │ ├── crypto.js │ ├── errros.js │ ├── frontend │ │ ├── TaskUI │ │ │ ├── taskSort.ts │ │ │ └── taskUIHelpers.ts │ │ ├── VTODOHelpers.ts │ │ ├── caldavaccountspage.js │ │ ├── calendar.js │ │ ├── classes │ │ │ ├── APIRequests.js │ │ │ ├── Calendars.ts │ │ │ ├── FilterHelper.js │ │ │ ├── Labels.ts │ │ │ ├── QuickAdd.js │ │ │ ├── RRuleHelper.js │ │ │ ├── RecurrenceHelper.js │ │ │ ├── RruleServerHelper.js │ │ │ ├── SettingsHelper.ts │ │ │ ├── UserPreferences │ │ │ │ └── Preference_CalendarsToShow.ts │ │ │ ├── VTODO.js │ │ │ └── VTODOParsed.js │ │ ├── cookies.js │ │ ├── db.js │ │ ├── dexie │ │ │ ├── caldav_dexie.ts │ │ │ ├── calendars_dexie.ts │ │ │ ├── dexieDB.ts │ │ │ ├── dexie_helper.ts │ │ │ ├── dexie_labels.ts │ │ │ ├── events_dexie.ts │ │ │ ├── syncDexie.ts │ │ │ ├── upgrade_helpers.ts │ │ │ └── users_dexie.ts │ │ ├── eventmodifier.js │ │ ├── events.js │ │ ├── filters.js │ │ ├── fullcalendar.ts │ │ ├── general.js │ │ ├── i18n.ts │ │ ├── ics.js │ │ ├── labels.js │ │ ├── localstorage.js │ │ ├── nextAuthHelpers.ts │ │ ├── response.js │ │ ├── rfc5545.js │ │ ├── sample.js │ │ ├── settings.js │ │ ├── sync.js │ │ ├── syncHelper.ts │ │ ├── taskeditor.ts │ │ ├── tasks.js │ │ ├── templates.ts │ │ ├── theme.ts │ │ ├── translations.ts │ │ ├── user.js │ │ └── userpreference.ts │ ├── general.js │ ├── install.ts │ ├── installation.ts │ ├── logs.ts │ ├── models.ts │ ├── sanitisation.ts │ ├── thirdparty │ │ ├── keycloak.ts │ │ └── nextAuth.ts │ ├── validators.ts │ └── viewHelpers │ │ └── pages.ts ├── i18n │ └── .gitignore ├── middleware.js ├── pages │ ├── _app.tsx │ ├── _document.tsx │ ├── accounts │ │ ├── caldav.tsx │ │ ├── register.tsx │ │ ├── resetpassword.tsx │ │ └── settings.tsx │ ├── api │ │ ├── admin │ │ │ ├── deleteuser.js │ │ │ └── getusers.ts │ │ ├── auth │ │ │ ├── [...nextauth].js │ │ │ └── inbuilt │ │ │ │ └── check.js │ │ ├── calendars │ │ │ ├── create.js │ │ │ └── refresh.js │ │ ├── calendarsOLD │ │ │ └── query.js │ │ ├── events │ │ │ ├── fetchOne.js │ │ │ └── search.js │ │ ├── filters │ │ │ ├── add.js │ │ │ ├── delete.js │ │ │ ├── get.ts │ │ │ └── modify.js │ │ ├── install │ │ │ ├── check.js │ │ │ └── go.js │ │ ├── login │ │ │ └── index.js │ │ ├── misc │ │ │ ├── generateics.js │ │ │ ├── parseics.js │ │ │ └── parseics_ical.js │ │ ├── oauth │ │ │ └── status.ts │ │ ├── settings │ │ │ ├── get.ts │ │ │ ├── getone.js │ │ │ └── modify.js │ │ ├── tasks │ │ │ └── rrule │ │ │ │ ├── getrepeatobj.js │ │ │ │ └── postrepeatobj.js │ │ ├── templates │ │ │ ├── create.ts │ │ │ ├── delete.ts │ │ │ └── get.ts │ │ ├── users │ │ │ ├── info.js │ │ │ ├── modifypassword.js │ │ │ ├── register.js │ │ │ ├── requestotp.ts │ │ │ └── settings │ │ │ │ └── registrationstatus.js │ │ ├── v1 │ │ │ ├── caldav │ │ │ │ ├── .gitignore │ │ │ │ ├── calendars │ │ │ │ │ ├── events │ │ │ │ │ │ ├── add_temp.js │ │ │ │ │ │ ├── all.js │ │ │ │ │ │ ├── db │ │ │ │ │ │ │ ├── all.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── fetchevents.js │ │ │ │ │ │ └── refresh.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── labels │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── modify │ │ │ │ │ │ └── object.js │ │ │ │ │ ├── name.js │ │ │ │ │ └── sync │ │ │ │ │ │ ├── all.js │ │ │ │ │ │ └── one.js │ │ │ │ ├── event │ │ │ │ │ └── delete.js │ │ │ │ ├── index.js │ │ │ │ └── register.js │ │ │ ├── labels │ │ │ │ ├── modifycolor.js │ │ │ │ └── updatecache.js │ │ │ └── tests │ │ │ │ └── codedecode.js │ │ └── v2 │ │ │ ├── caldav │ │ │ ├── delete.js │ │ │ └── register.ts │ │ │ └── calendars │ │ │ ├── events │ │ │ ├── add.ts │ │ │ ├── delete.js │ │ │ ├── fetch.ts │ │ │ ├── fetchOne.ts │ │ │ ├── modify.ts │ │ │ └── sync.ts │ │ │ └── refresh.ts │ ├── calendar │ │ └── view.tsx │ ├── filters │ │ └── manage.tsx │ ├── index.js │ ├── install │ │ └── index.tsx │ ├── labels │ │ └── manage.tsx │ ├── login.tsx │ ├── setup.tsx │ ├── tasks │ │ └── list.tsx │ └── templates │ │ └── manage.tsx ├── styles │ ├── fullcalendar.css │ └── global.css └── types │ └── valarm.ts ├── stateStore ├── EventEditorStore.ts ├── LocalTaskFilters.ts ├── MoveEventStore.ts ├── SettingsStore.ts ├── TaskEditorStore.ts └── ViewStore.ts ├── tsconfig.json └── types ├── recurrence.ts └── tasks ├── filters.ts └── tasks.ts /.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | .dockerignore 3 | node_modules 4 | npm-debug.log 5 | README.md 6 | .next 7 | .git 8 | docs 9 | 10 | 11 | # config/config.json 12 | package-withSequelize.json 13 | 14 | temp/ 15 | 16 | #Sequelise Temporary Ignore list 17 | # models/ 18 | # config/ 19 | # migrations/ 20 | # src/helpers/api/installSequelize.ts 21 | # src/helpers/installation.ts 22 | # src/helpers/models.ts 23 | # .sequelizerc 24 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.github/workflows/docker-image.yml: -------------------------------------------------------------------------------- 1 | name: Docker Image CI 2 | 3 | on: 4 | pull_request: 5 | branches: [ "main", "development" ] 6 | 7 | jobs: 8 | 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Build the Docker image 16 | run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ "main", "development"] 9 | pull_request: 10 | branches: [ "main", "development" ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | fail-fast: false 19 | matrix: 20 | node-version: [18.x] 21 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 22 | 23 | steps: 24 | - uses: actions/checkout@v3 25 | - name: Use Node.js ${{ matrix.node-version }} 26 | uses: actions/setup-node@v3 27 | with: 28 | node-version: ${{ matrix.node-version }} 29 | cache: 'npm' 30 | - run: npm ci 31 | - run: npm run build --if-present 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | yarn.lock 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | .pnpm-debug.log* 28 | 29 | # local env files 30 | .env*.local 31 | 32 | # vercel 33 | .vercel 34 | 35 | #VS 36 | .vscode/ 37 | 38 | 39 | #MMDL 40 | INSTALLED 41 | COMMITMESSAGE.md 42 | docker-compose.yml 43 | index.js.backup 44 | view/ 45 | COMBINEDCOMMITMESSAGE 46 | config/config.json 47 | package-withSequelize.json 48 | 49 | temp/ 50 | *.backup 51 | #Sequelise Temporary Ignore list 52 | # models/ 53 | # config/ 54 | # migrations/ 55 | # src/helpers/api/installSequelize.ts 56 | # src/helpers/installation.ts 57 | # src/helpers/models.ts 58 | # .sequelizerc 59 | 60 | .env 61 | env.local -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Set the version of Python and other tools you might need 9 | build: 10 | os: ubuntu-22.04 11 | tools: 12 | python: "3.11" 13 | 14 | # Build documentation in the docs/ directory with Sphinx 15 | mkdocs: 16 | configuration: mkdocs.yml 17 | fail_on_warning: false 18 | 19 | # We recommend specifying your dependencies to enable reproducible builds: 20 | # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html 21 | # python: 22 | # install: 23 | # - requirements: docs/requirements.txt -------------------------------------------------------------------------------- /.sequelizerc: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | env: process.env.NODE_ENV, 5 | 'config': path.resolve('config', 'config.js'), 6 | 7 | } -------------------------------------------------------------------------------- /COMMITMESSAGE.md: -------------------------------------------------------------------------------- 1 | - Fixed bug #240 2 | - Was caused by userhash being null. 3 | - Fixed workflow to push docker image. -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | ['@babel/preset-env', {targets: {node: 'current'}}], 4 | '@babel/preset-typescript', 5 | ], 6 | }; 7 | -------------------------------------------------------------------------------- /buildandrundocker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | docker build -t mmdl . 3 | docker run --env-file .env -dp 3000:3000 mmdl -------------------------------------------------------------------------------- /config/config.js: -------------------------------------------------------------------------------- 1 | const dotenv = require('dotenv') 2 | dotenv.config({ override: true }); 3 | const dialect = process.env.DB_DIALECT ?? "mysql" 4 | module.exports = { 5 | local: { 6 | username: process.env.DB_USER, 7 | password: process.env.DB_PASS, 8 | database: process.env.DB_NAME, 9 | host: process.env.DB_HOST, 10 | port: process.env.DB_PORT, 11 | dialect: dialect 12 | }, 13 | sqlite:{ 14 | dialect:"sqlite", 15 | storage: process.env.DB_NAME 16 | }, 17 | test: { 18 | username: "root", 19 | password: null, 20 | database: "database_test", 21 | host: "127.0.0.1", 22 | dialect: "mysql" 23 | }, 24 | production: { 25 | username: "root", 26 | password: null, 27 | database: "database_production", 28 | host: "127.0.0.1", 29 | dialect: "mysql" 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /cypress.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "cypress"; 2 | 3 | export default defineConfig({ 4 | 5 | component: { 6 | devServer: { 7 | framework: "next", 8 | bundler: "webpack", 9 | }, 10 | }, 11 | 12 | e2e: { 13 | baseUrl:process.env.NEXT_PUBLIC_BASE_URL, 14 | setupNodeEvents(on, config) { 15 | // implement node event listeners here 16 | }, 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /cypress/e2e/api/install.cy.ts: -------------------------------------------------------------------------------- 1 | describe('template spec', () => { 2 | it('passes', () => { 3 | cy.request('api/install/check').as('todoRequest'); 4 | }) 5 | }) -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /cypress/screenshots/install.cy.ts/template spec -- passes (failed).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/cypress/screenshots/install.cy.ts/template spec -- passes (failed).png -------------------------------------------------------------------------------- /cypress/support/component-index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Components App 8 | 9 |
10 | 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /cypress/support/e2e.ts: -------------------------------------------------------------------------------- 1 | // *********************************************************** 2 | // This example support/e2e.ts is processed and 3 | // loaded automatically before your test files. 4 | // 5 | // This is a great place to put global configuration and 6 | // behavior that modifies Cypress. 7 | // 8 | // You can change the location of this file or turn off 9 | // automatically serving support files with the 10 | // 'supportFile' configuration option. 11 | // 12 | // You can read more here: 13 | // https://on.cypress.io/configuration 14 | // *********************************************************** 15 | 16 | // Import commands.js using ES2015 syntax: 17 | import './commands' 18 | 19 | // Alternatively you can use CommonJS syntax: 20 | // require('./commands') -------------------------------------------------------------------------------- /cypress/videos/install.cy.ts.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/cypress/videos/install.cy.ts.mp4 -------------------------------------------------------------------------------- /docs/Developer Docs/API-Endpoints/events.md: -------------------------------------------------------------------------------- 1 | # Events 2 | 3 | All API endpoints to get event information. 4 | 5 | 6 | ## events/search 7 | 8 | Search events in a calendar. 9 | 10 | ``` 11 | > Method: GET 12 | > Authentication Required: Yes 13 | ``` 14 | ** Parameters** 15 | 16 | | Parameter | Description | Required | 17 | | ----------- | ----------- | ----------- | 18 | |calendar_id|ID of calendar to search|Yes| 19 | |search_term|Search term to search in event|Yes| 20 | |type|Type of events to search. Possible values: VTODO, VEVENT|No| 21 | 22 | 23 | 24 | ** Response ** 25 | 26 | | Message | HTTP Status | Success | Description | 27 | | ----------- | ----------- | ----------- |----------- | 28 | |Array of events| 200|true |Search results. Empty array if no event matches search criteria| 29 | |ERROR_NO_ACCESS_TO_CALENDAR|401|false |User doesn't have access to the requested calendar| 30 | 31 | 32 | --- 33 | -------------------------------------------------------------------------------- /docs/Developer Docs/API-Endpoints/filters.md: -------------------------------------------------------------------------------- 1 | # Filters 2 | 3 | All API endpoints to interact with custom filters for tasks. 4 | 5 | 6 | ## filters/modify 7 | 8 | /filter/modify 9 | 10 | Modifies target filter. 11 | 12 | ``` 13 | > Method: POST 14 | > Authentication Required: Yes 15 | ``` 16 | ** Parameters ** 17 | 18 | | Parameter | Description | Required | 19 | | ----------- | ----------- | ----------- | 20 | |custom_filters_id|ID of filter in database.|Yes| 21 | |name|Name of filter.|Yes| 22 | |filtervalue|JSON String of filter|Yes| 23 | 24 | 25 | 26 | 27 | --- 28 | 29 | -------------------------------------------------------------------------------- /docs/Developer Docs/API-Endpoints/install.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | All API endpoints for dealing with installation. 4 | 5 | ## install/check 6 | 7 | Check if MMDL has been installed. 8 | 9 | ``` 10 | > Method: GET 11 | > Authentication Required: No 12 | ``` 13 | ** Parameters** 14 | 15 | None 16 | 17 | 18 | 19 | 20 | 21 | ** Response ** 22 | 23 | | Message | HTTP Status | Success | Description | 24 | | ----------- | ----------- | ----------- |----------- | 25 | |null | 200|true |Returned if installed.| 26 | |null | 200|false |Returned if not completely installed.| 27 | 28 | --- 29 | 30 | ## install/go 31 | 32 | Installs MMDL's backend database and tables. 33 | 34 | 35 | ``` 36 | > Method: GET 37 | > Authentication Required: No 38 | ``` 39 | ** Parameters** 40 | 41 | None 42 | 43 | 44 | ** Response ** 45 | 46 | | Message | HTTP Status | Success | Description | 47 | | ----------- | ----------- | ----------- |----------- | 48 | |Node-mysql's response of create/alter table query | 200|true | Returned when install finishes.| 49 | |ERROR_MMDL_ALREADY_INSTALLED |409|false | Returned when MMDL is already installed.| 50 | 51 | 52 | 53 | --- 54 | 55 | 56 | -------------------------------------------------------------------------------- /docs/Developer Docs/API-Endpoints/labels.md: -------------------------------------------------------------------------------- 1 | # Labels 2 | 3 | All API endpoints to interact with labels. 4 | 5 | 6 | ## labels/modifycolor 7 | 8 | Modify colour of the label for the current user. 9 | 10 | ``` 11 | > Method: POST 12 | > Authentication Required: Yes 13 | ``` 14 | ** Parameters** 15 | 16 | | Parameter | Description | Required | 17 | | ----------- | ----------- | ----------- | 18 | |labelname|Name of the label to modify|Yes| 19 | |colour|New colour of label|Yes| 20 | 21 | 22 | 23 | 24 | ** Response ** 25 | 26 | | Message | HTTP Status | Success | Description | 27 | | ----------- | ----------- | ----------- |----------- | 28 | |LABEL_UPDATED| 200|true |Label was successfully modified.| 29 | 30 | 31 | 32 | 33 | 34 | --- 35 | 36 | ## labels/updatecache 37 | 38 | Updates lable cache in database. Searches for all labels for all events across added by the user. 39 | 40 | ``` 41 | > Method: GET 42 | > Authentication Required: Yes 43 | ``` 44 | ** Parameters** 45 | 46 | None 47 | 48 | 49 | 50 | ** Response ** 51 | 52 | | Message | HTTP Status | Success | Description | 53 | | ----------- | ----------- | ----------- |----------- | 54 | |LABELS_UPDATED| 200|true |Label cache updated.| 55 | 56 | 57 | 58 | --- 59 | -------------------------------------------------------------------------------- /docs/Developer Docs/API-Endpoints/misc.md: -------------------------------------------------------------------------------- 1 | # Misc 2 | 3 | All API endpoints for some miscellaneous capabilities. 4 | 5 | ## misc/generateics 6 | 7 | Modify colour of the label for the current user. 8 | 9 | ``` 10 | > Method: POST 11 | > Authentication Required: Yes 12 | ``` 13 | ** Parameters** 14 | 15 | | Parameter | Description | Required | 16 | | ----------- | ----------- | ----------- | 17 | |object|Event object to generate ICS|Yes| 18 | 19 | 20 | 21 | 22 | 23 | ** Response ** 24 | 25 | | Message | HTTP Status | Success | Description | 26 | | ----------- | ----------- | ----------- |----------- | 27 | |Generated ICS| 200|true |ICS data.| 28 | 29 | 30 | 31 | 32 | 33 | --- 34 | -------------------------------------------------------------------------------- /docs/Developer Docs/API-Endpoints/tests.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | -------------------------------------------------------------------------------- /docs/cinder/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 |

404

8 |

Page not found

9 |

Home

10 |
11 |
12 | 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /docs/cinder/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/__init__.py -------------------------------------------------------------------------------- /docs/cinder/content.html: -------------------------------------------------------------------------------- 1 | {% if page.meta.source %} 2 | 7 | {% endif %} 8 | 9 | {{ page.content }} 10 | -------------------------------------------------------------------------------- /docs/cinder/css/highlight.min.css: -------------------------------------------------------------------------------- 1 | .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#fcfdff}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:bold}.hljs-number,.hljs-literal,.hljs-variable,.hljs-template-variable,.hljs-tag .hljs-attr{color:teal}.hljs-string,.hljs-doctag{color:#d14}.hljs-title,.hljs-section,.hljs-selector-id{color:#900;font-weight:bold}.hljs-subst{font-weight:normal}.hljs-type,.hljs-class .hljs-title{color:#458;font-weight:bold}.hljs-tag,.hljs-name,.hljs-attribute{color:navy;font-weight:normal}.hljs-regexp,.hljs-link{color:#009926}.hljs-symbol,.hljs-bullet{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} 2 | -------------------------------------------------------------------------------- /docs/cinder/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/cinder/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/cinder/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/cinder/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/favicon.ico -------------------------------------------------------------------------------- /docs/cinder/img/grid1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid1.png -------------------------------------------------------------------------------- /docs/cinder/img/grid10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid10.png -------------------------------------------------------------------------------- /docs/cinder/img/grid11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid11.png -------------------------------------------------------------------------------- /docs/cinder/img/grid12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid12.png -------------------------------------------------------------------------------- /docs/cinder/img/grid13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid13.png -------------------------------------------------------------------------------- /docs/cinder/img/grid14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid14.png -------------------------------------------------------------------------------- /docs/cinder/img/grid15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid15.png -------------------------------------------------------------------------------- /docs/cinder/img/grid16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid16.png -------------------------------------------------------------------------------- /docs/cinder/img/grid17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid17.png -------------------------------------------------------------------------------- /docs/cinder/img/grid18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid18.png -------------------------------------------------------------------------------- /docs/cinder/img/grid19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid19.png -------------------------------------------------------------------------------- /docs/cinder/img/grid2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid2.png -------------------------------------------------------------------------------- /docs/cinder/img/grid20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid20.png -------------------------------------------------------------------------------- /docs/cinder/img/grid3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid3.png -------------------------------------------------------------------------------- /docs/cinder/img/grid4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid4.png -------------------------------------------------------------------------------- /docs/cinder/img/grid5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid5.png -------------------------------------------------------------------------------- /docs/cinder/img/grid6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid6.png -------------------------------------------------------------------------------- /docs/cinder/img/grid7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid7.png -------------------------------------------------------------------------------- /docs/cinder/img/grid8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid8.png -------------------------------------------------------------------------------- /docs/cinder/img/grid9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/cinder/img/grid9.png -------------------------------------------------------------------------------- /docs/cinder/main.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {# 4 | The entry point for the MkDocs Theme. 5 | 6 | Any theme customisations should override this file to redefine blocks defined in 7 | the various templates. The custom theme should only need to define a main.html 8 | which `{% extends "base.html" %}` and defines various blocks which will replace 9 | the blocks defined in base.html and its included child templates. 10 | #} -------------------------------------------------------------------------------- /docs/cinder/mkdocs_theme.yml: -------------------------------------------------------------------------------- 1 | cinder_theme: true 2 | 3 | static_templates: 4 | - 404.html 5 | 6 | include_search_page: false 7 | search_index_only: false 8 | 9 | shortcuts: 10 | help: 191 # ? 11 | next: 78 # n 12 | previous: 80 # p 13 | search: 83 # s 14 | -------------------------------------------------------------------------------- /docs/cinder/nav-sub.html: -------------------------------------------------------------------------------- 1 | {% if not nav_item.children %} 2 |
  • 3 | {{ nav_item.title }} 4 |
  • 5 | {% else %} 6 | 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /docs/cinder/toc.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/install/Configuration/index.md: -------------------------------------------------------------------------------- 1 | # Configuration 2 | 3 | 4 | - [Learn how to configure MMDL if you're running with Docker Compose.](WithDockerCompose.md) 5 | - [Learn how to configure MMDL if you're running without Docker Compose (through cloning the repository, or via a docker image).](WithoutDocker.md) -------------------------------------------------------------------------------- /docs/install/index.md: -------------------------------------------------------------------------------- 1 | # Installation: Getting Started 2 | 3 | There are two main ways to install and run MMDL. 4 | 5 | ## With Docker 6 | 7 | A docker image is available for MMDL. Installation has not been tested throughly but, as they say, "it works on my machine." Detailed instructions are available [here](Docker/index.md). 8 | 9 | ## Without Docker 10 | 11 | To install without docker, you can follow the instructions [here](Dockerless/Install.md). -------------------------------------------------------------------------------- /docs/pics/screenRecord.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenRecord.gif -------------------------------------------------------------------------------- /docs/pics/screenshots/AddCalendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/AddCalendar.png -------------------------------------------------------------------------------- /docs/pics/screenshots/AddTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/AddTask.png -------------------------------------------------------------------------------- /docs/pics/screenshots/GanttView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/GanttView.png -------------------------------------------------------------------------------- /docs/pics/screenshots/HomeView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/HomeView.png -------------------------------------------------------------------------------- /docs/pics/screenshots/MangeFilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/MangeFilter.png -------------------------------------------------------------------------------- /docs/pics/screenshots/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/Settings.png -------------------------------------------------------------------------------- /docs/pics/screenshots/TaskView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/TaskView.png -------------------------------------------------------------------------------- /docs/pics/screenshots/addCaldavAccount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/addCaldavAccount.png -------------------------------------------------------------------------------- /docs/pics/screenshots/caldav_AccountsPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/caldav_AccountsPage.png -------------------------------------------------------------------------------- /docs/pics/screenshots/install_step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/install_step1.png -------------------------------------------------------------------------------- /docs/pics/screenshots/install_step_OK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/install_step_OK.png -------------------------------------------------------------------------------- /docs/pics/screenshots/installation_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/installation_error.png -------------------------------------------------------------------------------- /docs/pics/screenshots/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/login.png -------------------------------------------------------------------------------- /docs/pics/screenshots/register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/docs/pics/screenshots/register.png -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import { FlatCompat } from '@eslint/eslintrc' 2 | 3 | const compat = new FlatCompat({ 4 | // import.meta.dirname is available after Node.js v20.11.0 5 | baseDirectory: import.meta.dirname, 6 | }) 7 | 8 | const eslintConfig = [ 9 | ...compat.config({ 10 | extends: ['next'], 11 | rules: { 12 | 'react/react-hooks/exhaustive-deps': 'on', 13 | }, 14 | }), 15 | ] 16 | 17 | export default eslintConfig -------------------------------------------------------------------------------- /host.docker.internal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/host.docker.internal -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "paths": { 4 | "@/*": ["./src/*"] 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /migrations/20230730093908-create-session.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /** @type {import('sequelize-cli').Migration} */ 3 | module.exports = { 4 | async up(queryInterface, Sequelize) { 5 | await queryInterface.createTable('sessions', { 6 | id: { 7 | allowNull: false, 8 | primaryKey: true, 9 | defaultValue: Sequelize.UUIDV4, 10 | type: Sequelize.UUID 11 | }, 12 | timestamp: { 13 | type: Sequelize.DATE 14 | }, 15 | expires: { type: Sequelize.DATE, allowNull: false }, 16 | session_token: { 17 | type: Sequelize.STRING, 18 | unique: "sessionToken", 19 | allowNull: false, }, 20 | user_id: { 21 | type: Sequelize.UUID 22 | }, 23 | createdAt: { 24 | allowNull: false, 25 | type: Sequelize.DATE, 26 | defaultValue:Sequelize.fn('now') 27 | }, 28 | updatedAt: { 29 | allowNull: false, 30 | type: Sequelize.DATE, 31 | defaultValue:Sequelize.fn('now') 32 | } 33 | }); 34 | }, 35 | async down(queryInterface, Sequelize) { 36 | await queryInterface.dropTable('sessions'); 37 | } 38 | }; -------------------------------------------------------------------------------- /migrations/20250505065245-create-templates.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /** @type {import('sequelize-cli').Migration} */ 3 | module.exports = { 4 | async up(queryInterface, Sequelize) { 5 | await queryInterface.createTable('templates', { 6 | id: { 7 | allowNull: false, 8 | autoIncrement: true, 9 | primaryKey: true, 10 | type: Sequelize.INTEGER 11 | }, 12 | userid: { 13 | type: Sequelize.STRING 14 | }, 15 | name: { 16 | type: Sequelize.STRING 17 | }, 18 | type: { 19 | type: Sequelize.STRING 20 | }, 21 | data: { 22 | type: Sequelize.STRING(5000) 23 | }, 24 | createdAt: { 25 | allowNull: false, 26 | type: Sequelize.DATE, 27 | defaultValue: Sequelize.fn('NOW') 28 | 29 | }, 30 | updatedAt: { 31 | allowNull: false, 32 | type: Sequelize.DATE, 33 | defaultValue: Sequelize.fn('NOW') 34 | } 35 | }); 36 | }, 37 | async down(queryInterface, Sequelize) { 38 | await queryInterface.dropTable('templates'); 39 | } 40 | }; -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: MMDL Docs 2 | repo_url: https://github.com/intri-in/manage-my-damn-life-nextjs 3 | theme: 4 | name: null 5 | custom_dir: 'docs/cinder' 6 | -------------------------------------------------------------------------------- /models/account.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const { 3 | Model 4 | } = require('sequelize'); 5 | module.exports = (sequelize, DataTypes) => { 6 | class Account extends Model { 7 | /** 8 | * Helper method for defining associations. 9 | * This method is not a part of Sequelize lifecycle. 10 | * The `models/index` file will call this method automatically. 11 | */ 12 | static associate(models) { 13 | // define association here 14 | } 15 | static belongsTo(models){ 16 | 17 | } 18 | } 19 | Account.init({ 20 | id: DataTypes.UUID, 21 | user_id: DataTypes.UUID, 22 | type: DataTypes.STRING, 23 | provider: DataTypes.STRING, 24 | provider_account_id: DataTypes.STRING, 25 | providerAccountId: DataTypes.STRING, 26 | refresh_token: DataTypes.TEXT, 27 | access_token: DataTypes.TEXT, 28 | expires_at: DataTypes.NUMBER, 29 | token_type: DataTypes.STRING, 30 | scope: DataTypes.STRING, 31 | id_token: DataTypes.TEXT, 32 | session_state: DataTypes.STRING, 33 | createdAt:DataTypes.DATE, 34 | updatedAt:DataTypes.DATE, 35 | userId: DataTypes.UUID 36 | }, { 37 | sequelize, 38 | modelName: 'account', 39 | }); 40 | return Account; 41 | }; -------------------------------------------------------------------------------- /models/session.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const { 3 | Model 4 | } = require('sequelize'); 5 | module.exports = (sequelize, DataTypes) => { 6 | class Session extends Model { 7 | static associate(models) { 8 | // define association here 9 | } 10 | } 11 | Session.init({ 12 | id: DataTypes.UUID, 13 | expires:DataTypes.DATE, 14 | timestamp: DataTypes.DATE, 15 | session_token: DataTypes.STRING, 16 | sessionToken:DataTypes.STRING, 17 | user_id: DataTypes.UUID, 18 | userId: { type: DataTypes.UUID }, 19 | }, { 20 | sequelize, 21 | modelName: 'session', 22 | }); 23 | return Session; 24 | }; -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /next-i18next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next-i18next').UserConfig} */ 2 | module.exports = { 3 | i18n: { 4 | defaultLocale: 'en', 5 | 6 | locales: ["en","de","fr"], 7 | }, 8 | 9 | } -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const { i18n } = require('./next-i18next.config') 3 | 4 | const nextConfig = { 5 | i18n, 6 | reactStrictMode: true, 7 | output: 'standalone', 8 | experimental: { 9 | forceSwcTransforms: true, 10 | 11 | }, eslint: { 12 | dirs: ['pages', 'utils'], // Only run ESLint on the 'pages' and 'utils' directories during production builds (next build) 13 | }, 14 | } 15 | 16 | module.exports = nextConfig 17 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/public/favicon.ico -------------------------------------------------------------------------------- /public/faviconDefault.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/public/faviconDefault.ico -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Adam Shaw 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/af.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'af', 11 | week: { 12 | dow: 1, 13 | doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. 14 | }, 15 | buttonText: { 16 | prev: 'Vorige', 17 | next: 'Volgende', 18 | today: 'Vandag', 19 | year: 'Jaar', 20 | month: 'Maand', 21 | week: 'Week', 22 | day: 'Dag', 23 | list: 'Agenda', 24 | }, 25 | allDayText: 'Heeldag', 26 | moreLinkText: 'Addisionele', 27 | noEventsText: 'Daar is geen gebeurtenisse nie', 28 | }; 29 | 30 | index_js.globalLocales.push(locale); 31 | 32 | })(FullCalendar); 33 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/af.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-dz.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar-dz', 11 | week: { 12 | dow: 0, 13 | doy: 4, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-dz.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-kw.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar-kw', 11 | week: { 12 | dow: 0, 13 | doy: 12, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-kw.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-ly.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar-ly', 11 | week: { 12 | dow: 6, 13 | doy: 12, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-ly.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-ma.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar-ma', 11 | week: { 12 | dow: 6, 13 | doy: 12, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-ma.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-sa.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar-sa', 11 | week: { 12 | dow: 0, 13 | doy: 6, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-sa.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-tn.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar-tn', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar-tn.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ar', 11 | week: { 12 | dow: 6, 13 | doy: 12, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'السابق', 18 | next: 'التالي', 19 | today: 'اليوم', 20 | year: 'سنة', 21 | month: 'شهر', 22 | week: 'أسبوع', 23 | day: 'يوم', 24 | list: 'أجندة', 25 | }, 26 | weekText: 'أسبوع', 27 | allDayText: 'اليوم كله', 28 | moreLinkText: 'أخرى', 29 | noEventsText: 'أي أحداث لعرض', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ar.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/az.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'az', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Əvvəl', 17 | next: 'Sonra', 18 | today: 'Bu Gün', 19 | year: 'Il', 20 | month: 'Ay', 21 | week: 'Həftə', 22 | day: 'Gün', 23 | list: 'Gündəm', 24 | }, 25 | weekText: 'Həftə', 26 | allDayText: 'Bütün Gün', 27 | moreLinkText(n) { 28 | return '+ daha çox ' + n; 29 | }, 30 | noEventsText: 'Göstərmək üçün hadisə yoxdur', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/az.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",year:"Il",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:e=>"+ daha çox "+e,noEventsText:"Göstərmək üçün hadisə yoxdur"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/bg.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'bg', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'назад', 17 | next: 'напред', 18 | today: 'днес', 19 | year: 'година', 20 | month: 'Месец', 21 | week: 'Седмица', 22 | day: 'Ден', 23 | list: 'График', 24 | }, 25 | allDayText: 'Цял ден', 26 | moreLinkText(n) { 27 | return '+още ' + n; 28 | }, 29 | noEventsText: 'Няма събития за показване', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/bg.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",year:"година",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:e=>"+още "+e,noEventsText:"Няма събития за показване"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/bn.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'bn', 11 | week: { 12 | dow: 0, 13 | doy: 6, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'পেছনে', 17 | next: 'সামনে', 18 | today: 'আজ', 19 | year: 'বছর', 20 | month: 'মাস', 21 | week: 'সপ্তাহ', 22 | day: 'দিন', 23 | list: 'তালিকা', 24 | }, 25 | weekText: 'সপ্তাহ', 26 | allDayText: 'সারাদিন', 27 | moreLinkText(n) { 28 | return '+অন্যান্য ' + n; 29 | }, 30 | noEventsText: 'কোনো ইভেন্ট নেই', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/bn.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",year:"বছর",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:e=>"+অন্যান্য "+e,noEventsText:"কোনো ইভেন্ট নেই"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/bs.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'bs', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Prošli', 17 | next: 'Sljedeći', 18 | today: 'Danas', 19 | year: 'Godina', 20 | month: 'Mjesec', 21 | week: 'Sedmica', 22 | day: 'Dan', 23 | list: 'Raspored', 24 | }, 25 | weekText: 'Sed', 26 | allDayText: 'Cijeli dan', 27 | moreLinkText(n) { 28 | return '+ još ' + n; 29 | }, 30 | noEventsText: 'Nema događaja za prikazivanje', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/bs.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",year:"Godina",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikazivanje"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ca.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ca', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Anterior', 17 | next: 'Següent', 18 | today: 'Avui', 19 | year: 'Curs', 20 | month: 'Mes', 21 | week: 'Setmana', 22 | day: 'Dia', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Set', 26 | allDayText: 'Tot el dia', 27 | moreLinkText: 'més', 28 | noEventsText: 'No hi ha esdeveniments per mostrar', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ca.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",year:"Curs",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/cs.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'cs', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Dříve', 17 | next: 'Později', 18 | today: 'Nyní', 19 | year: 'Rok', 20 | month: 'Měsíc', 21 | week: 'Týden', 22 | day: 'Den', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Týd', 26 | allDayText: 'Celý den', 27 | moreLinkText(n) { 28 | return '+další: ' + n; 29 | }, 30 | noEventsText: 'Žádné akce k zobrazení', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/cs.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var n={code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",year:"Rok",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:e=>"+další: "+e,noEventsText:"Žádné akce k zobrazení"};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/cy.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'cy', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Blaenorol', 17 | next: 'Nesaf', 18 | today: 'Heddiw', 19 | year: 'Blwyddyn', 20 | month: 'Mis', 21 | week: 'Wythnos', 22 | day: 'Dydd', 23 | list: 'Rhestr', 24 | }, 25 | weekText: 'Wythnos', 26 | allDayText: 'Trwy\'r dydd', 27 | moreLinkText: 'Mwy', 28 | noEventsText: 'Dim digwyddiadau', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/cy.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"cy",week:{dow:1,doy:4},buttonText:{prev:"Blaenorol",next:"Nesaf",today:"Heddiw",year:"Blwyddyn",month:"Mis",week:"Wythnos",day:"Dydd",list:"Rhestr"},weekText:"Wythnos",allDayText:"Trwy'r dydd",moreLinkText:"Mwy",noEventsText:"Dim digwyddiadau"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/da.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'da', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Forrige', 17 | next: 'Næste', 18 | today: 'I dag', 19 | year: 'År', 20 | month: 'Måned', 21 | week: 'Uge', 22 | day: 'Dag', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Uge', 26 | allDayText: 'Hele dagen', 27 | moreLinkText: 'flere', 28 | noEventsText: 'Ingen arrangementer at vise', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/da.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",year:"År",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/de-at.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";function t(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var n={code:"de-at",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${t(e)} ${e}`,next:e=>`Nächste${t(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${t(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/de.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";function t(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var n={code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${t(e)} ${e}`,next:e=>`Nächste${t(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${t(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/el.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'el', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Προηγούμενος', 17 | next: 'Επόμενος', 18 | today: 'Σήμερα', 19 | year: 'Ετος', 20 | month: 'Μήνας', 21 | week: 'Εβδομάδα', 22 | day: 'Ημέρα', 23 | list: 'Ατζέντα', 24 | }, 25 | weekText: 'Εβδ', 26 | allDayText: 'Ολοήμερο', 27 | moreLinkText: 'περισσότερα', 28 | noEventsText: 'Δεν υπάρχουν γεγονότα προς εμφάνιση', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/el.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",year:"Ετος",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/en-au.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'en-au', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonHints: { 16 | prev: 'Previous $0', 17 | next: 'Next $0', 18 | today: 'This $0', 19 | }, 20 | viewHint: '$0 view', 21 | navLinkHint: 'Go to $0', 22 | moreLinkHint(eventCnt) { 23 | return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`; 24 | }, 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/en-au.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var n={code:"en-au",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/en-gb.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'en-gb', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonHints: { 16 | prev: 'Previous $0', 17 | next: 'Next $0', 18 | today: 'This $0', 19 | }, 20 | viewHint: '$0 view', 21 | navLinkHint: 'Go to $0', 22 | moreLinkHint(eventCnt) { 23 | return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`; 24 | }, 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/en-gb.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var n={code:"en-gb",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/en-nz.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'en-nz', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonHints: { 16 | prev: 'Previous $0', 17 | next: 'Next $0', 18 | today: 'This $0', 19 | }, 20 | viewHint: '$0 view', 21 | navLinkHint: 'Go to $0', 22 | moreLinkHint(eventCnt) { 23 | return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`; 24 | }, 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/en-nz.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var n={code:"en-nz",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/eo.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'eo', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Antaŭa', 17 | next: 'Sekva', 18 | today: 'Hodiaŭ', 19 | year: 'Jaro', 20 | month: 'Monato', 21 | week: 'Semajno', 22 | day: 'Tago', 23 | list: 'Tagordo', 24 | }, 25 | weekText: 'Sm', 26 | allDayText: 'Tuta tago', 27 | moreLinkText: 'pli', 28 | noEventsText: 'Neniuj eventoj por montri', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/eo.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",year:"Jaro",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/es-us.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'es', 11 | week: { 12 | dow: 0, 13 | doy: 6, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Ant', 17 | next: 'Sig', 18 | today: 'Hoy', 19 | year: 'Año', 20 | month: 'Mes', 21 | week: 'Semana', 22 | day: 'Día', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Sm', 26 | allDayText: 'Todo el día', 27 | moreLinkText: 'más', 28 | noEventsText: 'No hay eventos para mostrar', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/es-us.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",year:"Año",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/es.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",year:"Año",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:e=>"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:e=>`Mostrar ${e} eventos más`,noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/et.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'et', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Eelnev', 17 | next: 'Järgnev', 18 | today: 'Täna', 19 | year: 'Aasta', 20 | month: 'Kuu', 21 | week: 'Nädal', 22 | day: 'Päev', 23 | list: 'Päevakord', 24 | }, 25 | weekText: 'näd', 26 | allDayText: 'Kogu päev', 27 | moreLinkText(n) { 28 | return '+ veel ' + n; 29 | }, 30 | noEventsText: 'Kuvamiseks puuduvad sündmused', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/et.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",year:"Aasta",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:e=>"+ veel "+e,noEventsText:"Kuvamiseks puuduvad sündmused"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/eu.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'eu', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Aur', 17 | next: 'Hur', 18 | today: 'Gaur', 19 | year: 'Urtea', 20 | month: 'Hilabetea', 21 | week: 'Astea', 22 | day: 'Eguna', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'As', 26 | allDayText: 'Egun osoa', 27 | moreLinkText: 'gehiago', 28 | noEventsText: 'Ez dago ekitaldirik erakusteko', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/eu.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",year:"Urtea",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fa.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'fa', 11 | week: { 12 | dow: 6, 13 | doy: 12, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'قبلی', 18 | next: 'بعدی', 19 | today: 'امروز', 20 | year: 'سال', 21 | month: 'ماه', 22 | week: 'هفته', 23 | day: 'روز', 24 | list: 'برنامه', 25 | }, 26 | weekText: 'هف', 27 | allDayText: 'تمام روز', 28 | moreLinkText(n) { 29 | return 'بیش از ' + n; 30 | }, 31 | noEventsText: 'هیچ رویدادی به نمایش', 32 | }; 33 | 34 | index_js.globalLocales.push(locale); 35 | 36 | })(FullCalendar); 37 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fa.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",year:"سال",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:e=>"بیش از "+e,noEventsText:"هیچ رویدادی به نمایش"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fi.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'fi', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Edellinen', 17 | next: 'Seuraava', 18 | today: 'Tänään', 19 | year: 'Vuosi', 20 | month: 'Kuukausi', 21 | week: 'Viikko', 22 | day: 'Päivä', 23 | list: 'Tapahtumat', 24 | }, 25 | weekText: 'Vk', 26 | allDayText: 'Koko päivä', 27 | moreLinkText: 'lisää', 28 | noEventsText: 'Ei näytettäviä tapahtumia', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fi.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",year:"Vuosi",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fr-ca.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'fr', 11 | buttonText: { 12 | prev: 'Précédent', 13 | next: 'Suivant', 14 | today: 'Aujourd\'hui', 15 | year: 'Année', 16 | month: 'Mois', 17 | week: 'Semaine', 18 | day: 'Jour', 19 | list: 'Mon planning', 20 | }, 21 | weekText: 'Sem.', 22 | allDayText: 'Toute la journée', 23 | moreLinkText: 'en plus', 24 | noEventsText: 'Aucun évènement à afficher', 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fr-ca.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fr-ch.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'fr-ch', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Précédent', 17 | next: 'Suivant', 18 | today: 'Courant', 19 | year: 'Année', 20 | month: 'Mois', 21 | week: 'Semaine', 22 | day: 'Jour', 23 | list: 'Mon planning', 24 | }, 25 | weekText: 'Sm', 26 | allDayText: 'Toute la journée', 27 | moreLinkText: 'en plus', 28 | noEventsText: 'Aucun évènement à afficher', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fr-ch.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fr.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'fr', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Précédent', 17 | next: 'Suivant', 18 | today: 'Aujourd\'hui', 19 | year: 'Année', 20 | month: 'Mois', 21 | week: 'Semaine', 22 | day: 'Jour', 23 | list: 'Planning', 24 | }, 25 | weekText: 'Sem.', 26 | weekTextLong: 'Semaine', 27 | allDayText: 'Toute la journée', 28 | moreLinkText: 'en plus', 29 | noEventsText: 'Aucun évènement à afficher', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/fr.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",weekTextLong:"Semaine",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/gl.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",year:"Ano",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},buttonHints:{prev:"$0 antes",next:"$0 seguinte",today:e=>"Día"===e?"Hoxe":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"da":"do")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo o día",moreLinkText:"máis",moreLinkHint:e=>`Amosar ${e} eventos máis`,noEventsText:"Non hai eventos para amosar",navLinkHint:"Ir ao $0",closeHint:"Pechar",timeHint:"A hora",eventHint:"Evento"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/he.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'he', 11 | direction: 'rtl', 12 | buttonText: { 13 | prev: 'הקודם', 14 | next: 'הבא', 15 | today: 'היום', 16 | year: 'שנה', 17 | month: 'חודש', 18 | week: 'שבוע', 19 | day: 'יום', 20 | list: 'סדר יום', 21 | }, 22 | allDayText: 'כל היום', 23 | moreLinkText: 'נוספים', 24 | noEventsText: 'אין אירועים להצגה', 25 | weekText: 'שבוע', 26 | }; 27 | 28 | index_js.globalLocales.push(locale); 29 | 30 | })(FullCalendar); 31 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/he.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",year:"שנה",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"נוספים",noEventsText:"אין אירועים להצגה",weekText:"שבוע"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hi.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'hi', 11 | week: { 12 | dow: 0, 13 | doy: 6, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'पिछला', 17 | next: 'अगला', 18 | today: 'आज', 19 | year: 'वर्ष', 20 | month: 'महीना', 21 | week: 'सप्ताह', 22 | day: 'दिन', 23 | list: 'कार्यसूची', 24 | }, 25 | weekText: 'हफ्ता', 26 | allDayText: 'सभी दिन', 27 | moreLinkText(n) { 28 | return '+अधिक ' + n; 29 | }, 30 | noEventsText: 'कोई घटनाओं को प्रदर्शित करने के लिए', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hi.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",year:"वर्ष",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:e=>"+अधिक "+e,noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hr.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'hr', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Prijašnji', 17 | next: 'Sljedeći', 18 | today: 'Danas', 19 | year: 'Godina', 20 | month: 'Mjesec', 21 | week: 'Tjedan', 22 | day: 'Dan', 23 | list: 'Raspored', 24 | }, 25 | weekText: 'Tje', 26 | allDayText: 'Cijeli dan', 27 | moreLinkText(n) { 28 | return '+ još ' + n; 29 | }, 30 | noEventsText: 'Nema događaja za prikaz', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hr.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",year:"Godina",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikaz"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hu.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'hu', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'vissza', 17 | next: 'előre', 18 | today: 'ma', 19 | year: 'Év', 20 | month: 'Hónap', 21 | week: 'Hét', 22 | day: 'Nap', 23 | list: 'Lista', 24 | }, 25 | weekText: 'Hét', 26 | allDayText: 'Egész nap', 27 | moreLinkText: 'további', 28 | noEventsText: 'Nincs megjeleníthető esemény', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hu.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",year:"Év",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hy-am.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'hy-am', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Նախորդ', 17 | next: 'Հաջորդ', 18 | today: 'Այսօր', 19 | year: 'Տարի', 20 | month: 'Ամիս', 21 | week: 'Շաբաթ', 22 | day: 'Օր', 23 | list: 'Օրվա ցուցակ', 24 | }, 25 | weekText: 'Շաբ', 26 | allDayText: 'Ամբողջ օր', 27 | moreLinkText(n) { 28 | return '+ ևս ' + n; 29 | }, 30 | noEventsText: 'Բացակայում է իրադարձությունը ցուցադրելու', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/hy-am.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",year:"Տարի",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:e=>"+ ևս "+e,noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/id.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'id', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'mundur', 17 | next: 'maju', 18 | today: 'hari ini', 19 | year: 'Tahun', 20 | month: 'Bulan', 21 | week: 'Minggu', 22 | day: 'Hari', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Mg', 26 | allDayText: 'Sehari penuh', 27 | moreLinkText: 'lebih', 28 | noEventsText: 'Tidak ada acara untuk ditampilkan', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/id.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(a){"use strict";FullCalendar.globalLocales.push({code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",year:"Tahun",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/is.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'is', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Fyrri', 17 | next: 'Næsti', 18 | today: 'Í dag', 19 | year: 'Ár', 20 | month: 'Mánuður', 21 | week: 'Vika', 22 | day: 'Dagur', 23 | list: 'Dagskrá', 24 | }, 25 | weekText: 'Vika', 26 | allDayText: 'Allan daginn', 27 | moreLinkText: 'meira', 28 | noEventsText: 'Engir viðburðir til að sýna', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/is.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",year:"Ár",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/it.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'it', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Prec', 17 | next: 'Succ', 18 | today: 'Oggi', 19 | year: 'Anno', 20 | month: 'Mese', 21 | week: 'Settimana', 22 | day: 'Giorno', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Sm', 26 | allDayText: 'Tutto il giorno', 27 | moreLinkText(n) { 28 | return '+altri ' + n; 29 | }, 30 | noEventsText: 'Non ci sono eventi da visualizzare', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/it.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",year:"Anno",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:e=>"+altri "+e,noEventsText:"Non ci sono eventi da visualizzare"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ja.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ja', 11 | buttonText: { 12 | prev: '前', 13 | next: '次', 14 | today: '今日', 15 | year: '年', 16 | month: '月', 17 | week: '週', 18 | day: '日', 19 | list: '予定リスト', 20 | }, 21 | weekText: '週', 22 | allDayText: '終日', 23 | moreLinkText(n) { 24 | return '他 ' + n + ' 件'; 25 | }, 26 | noEventsText: '表示する予定はありません', 27 | }; 28 | 29 | index_js.globalLocales.push(locale); 30 | 31 | })(FullCalendar); 32 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ja.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"ja",buttonText:{prev:"前",next:"次",today:"今日",year:"年",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:e=>"他 "+e+" 件",noEventsText:"表示する予定はありません"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ka.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ka', 11 | week: { 12 | dow: 1, 13 | doy: 7, 14 | }, 15 | buttonText: { 16 | prev: 'წინა', 17 | next: 'შემდეგი', 18 | today: 'დღეს', 19 | year: 'წელიწადი', 20 | month: 'თვე', 21 | week: 'კვირა', 22 | day: 'დღე', 23 | list: 'დღის წესრიგი', 24 | }, 25 | weekText: 'კვ', 26 | allDayText: 'მთელი დღე', 27 | moreLinkText(n) { 28 | return '+ კიდევ ' + n; 29 | }, 30 | noEventsText: 'ღონისძიებები არ არის', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ka.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",year:"წელიწადი",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:e=>"+ კიდევ "+e,noEventsText:"ღონისძიებები არ არის"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/kk.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'kk', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Алдыңғы', 17 | next: 'Келесі', 18 | today: 'Бүгін', 19 | year: 'Жыл', 20 | month: 'Ай', 21 | week: 'Апта', 22 | day: 'Күн', 23 | list: 'Күн тәртібі', 24 | }, 25 | weekText: 'Не', 26 | allDayText: 'Күні бойы', 27 | moreLinkText(n) { 28 | return '+ тағы ' + n; 29 | }, 30 | noEventsText: 'Көрсету үшін оқиғалар жоқ', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/kk.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",year:"Жыл",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:e=>"+ тағы "+e,noEventsText:"Көрсету үшін оқиғалар жоқ"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/km.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'km', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'មុន', 17 | next: 'បន្ទាប់', 18 | today: 'ថ្ងៃនេះ', 19 | year: 'ឆ្នាំ', 20 | month: 'ខែ', 21 | week: 'សប្តាហ៍', 22 | day: 'ថ្ងៃ', 23 | list: 'បញ្ជី', 24 | }, 25 | weekText: 'សប្តាហ៍', 26 | allDayText: 'ពេញមួយថ្ងៃ', 27 | moreLinkText: 'ច្រើនទៀត', 28 | noEventsText: 'គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/km.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"km",week:{dow:1,doy:4},buttonText:{prev:"មុន",next:"បន្ទាប់",today:"ថ្ងៃនេះ",year:"ឆ្នាំ",month:"ខែ",week:"សប្តាហ៍",day:"ថ្ងៃ",list:"បញ្ជី"},weekText:"សប្តាហ៍",allDayText:"ពេញមួយថ្ងៃ",moreLinkText:"ច្រើនទៀត",noEventsText:"គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ko.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ko', 11 | buttonText: { 12 | prev: '이전달', 13 | next: '다음달', 14 | today: '오늘', 15 | year: '년도', 16 | month: '월', 17 | week: '주', 18 | day: '일', 19 | list: '일정목록', 20 | }, 21 | weekText: '주', 22 | allDayText: '종일', 23 | moreLinkText: '개', 24 | noEventsText: '일정이 없습니다', 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ko.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",year:"년도",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ku.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ku', 11 | week: { 12 | dow: 6, 13 | doy: 12, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | direction: 'rtl', 16 | buttonText: { 17 | prev: 'پێشتر', 18 | next: 'دواتر', 19 | today: 'ئەمڕو', 20 | year: 'ساڵ', 21 | month: 'مانگ', 22 | week: 'هەفتە', 23 | day: 'ڕۆژ', 24 | list: 'بەرنامە', 25 | }, 26 | weekText: 'هەفتە', 27 | allDayText: 'هەموو ڕۆژەکە', 28 | moreLinkText: 'زیاتر', 29 | noEventsText: 'هیچ ڕووداوێك نیە', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ku.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",year:"ساڵ",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/lb.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'lb', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Zréck', 17 | next: 'Weider', 18 | today: 'Haut', 19 | year: 'Joer', 20 | month: 'Mount', 21 | week: 'Woch', 22 | day: 'Dag', 23 | list: 'Terminiwwersiicht', 24 | }, 25 | weekText: 'W', 26 | allDayText: 'Ganzen Dag', 27 | moreLinkText: 'méi', 28 | noEventsText: 'Nee Evenementer ze affichéieren', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/lb.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",year:"Joer",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/lt.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'lt', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Atgal', 17 | next: 'Pirmyn', 18 | today: 'Šiandien', 19 | year: 'Metai', 20 | month: 'Mėnuo', 21 | week: 'Savaitė', 22 | day: 'Diena', 23 | list: 'Darbotvarkė', 24 | }, 25 | weekText: 'SAV', 26 | allDayText: 'Visą dieną', 27 | moreLinkText: 'daugiau', 28 | noEventsText: 'Nėra įvykių rodyti', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/lt.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",year:"Metai",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/lv.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'lv', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Iepr.', 17 | next: 'Nāk.', 18 | today: 'Šodien', 19 | year: 'Gads', 20 | month: 'Mēnesis', 21 | week: 'Nedēļa', 22 | day: 'Diena', 23 | list: 'Dienas kārtība', 24 | }, 25 | weekText: 'Ned.', 26 | allDayText: 'Visu dienu', 27 | moreLinkText(n) { 28 | return '+vēl ' + n; 29 | }, 30 | noEventsText: 'Nav notikumu', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/lv.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",year:"Gads",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:e=>"+vēl "+e,noEventsText:"Nav notikumu"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/mk.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'mk', 11 | buttonText: { 12 | prev: 'претходно', 13 | next: 'следно', 14 | today: 'Денес', 15 | year: 'година', 16 | month: 'Месец', 17 | week: 'Недела', 18 | day: 'Ден', 19 | list: 'График', 20 | }, 21 | weekText: 'Сед', 22 | allDayText: 'Цел ден', 23 | moreLinkText(n) { 24 | return '+повеќе ' + n; 25 | }, 26 | noEventsText: 'Нема настани за прикажување', 27 | }; 28 | 29 | index_js.globalLocales.push(locale); 30 | 31 | })(FullCalendar); 32 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/mk.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",year:"година",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:e=>"+повеќе "+e,noEventsText:"Нема настани за прикажување"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ms.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ms', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Sebelum', 17 | next: 'Selepas', 18 | today: 'hari ini', 19 | year: 'Tahun', 20 | month: 'Bulan', 21 | week: 'Minggu', 22 | day: 'Hari', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Mg', 26 | allDayText: 'Sepanjang hari', 27 | moreLinkText(n) { 28 | return 'masih ada ' + n + ' acara'; 29 | }, 30 | noEventsText: 'Tiada peristiwa untuk dipaparkan', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ms.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(a){"use strict";var e={code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",year:"Tahun",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:a=>"masih ada "+a+" acara",noEventsText:"Tiada peristiwa untuk dipaparkan"};FullCalendar.globalLocales.push(e)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/nb.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var n={code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",year:"År",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:e=>`Vis ${e} flere hendelse${1===e?"":"r"}`};FullCalendar.globalLocales.push(n)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ne.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ne', 11 | week: { 12 | dow: 7, 13 | doy: 1, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'अघिल्लो', 17 | next: 'अर्को', 18 | today: 'आज', 19 | year: 'वर्ष', 20 | month: 'महिना', 21 | week: 'हप्ता', 22 | day: 'दिन', 23 | list: 'सूची', 24 | }, 25 | weekText: 'हप्ता', 26 | allDayText: 'दिनभरि', 27 | moreLinkText: 'थप लिंक', 28 | noEventsText: 'देखाउनको लागि कुनै घटनाहरू छैनन्', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ne.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",year:"वर्ष",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/nl.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'nl', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Vorige', 17 | next: 'Volgende', 18 | today: 'Vandaag', 19 | year: 'Jaar', 20 | month: 'Maand', 21 | week: 'Week', 22 | day: 'Dag', 23 | list: 'Agenda', 24 | }, 25 | allDayText: 'Hele dag', 26 | moreLinkText: 'extra', 27 | noEventsText: 'Geen evenementen om te laten zien', 28 | }; 29 | 30 | index_js.globalLocales.push(locale); 31 | 32 | })(FullCalendar); 33 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/nl.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/nn.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'nn', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Førre', 17 | next: 'Neste', 18 | today: 'I dag', 19 | year: 'År', 20 | month: 'Månad', 21 | week: 'Veke', 22 | day: 'Dag', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Veke', 26 | allDayText: 'Heile dagen', 27 | moreLinkText: 'til', 28 | noEventsText: 'Ingen hendelser å vise', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/nn.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",year:"År",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/pl.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'pl', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Poprzedni', 17 | next: 'Następny', 18 | today: 'Dziś', 19 | year: 'Rok', 20 | month: 'Miesiąc', 21 | week: 'Tydzień', 22 | day: 'Dzień', 23 | list: 'Plan dnia', 24 | }, 25 | weekText: 'Tydz', 26 | allDayText: 'Cały dzień', 27 | moreLinkText: 'więcej', 28 | noEventsText: 'Brak wydarzeń do wyświetlenia', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/pl.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",year:"Rok",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/pt-br.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",prevYear:"Ano anterior",nextYear:"Próximo ano",year:"Ano",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},buttonHints:{prev:"$0 Anterior",next:"Próximo $0",today:e=>"Dia"===e?"Hoje":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Visualizar "+("Semana"===e?"a":"o")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"dia inteiro",moreLinkText:e=>"mais +"+e,moreLinkHint:e=>`Mostrar mais ${e} eventos`,noEventsText:"Não há eventos para mostrar",navLinkHint:"Ir para $0",closeHint:"Fechar",timeHint:"A hora",eventHint:"Evento"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/pt.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'pt', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Anterior', 17 | next: 'Seguinte', 18 | today: 'Hoje', 19 | year: 'Ano', 20 | month: 'Mês', 21 | week: 'Semana', 22 | day: 'Dia', 23 | list: 'Agenda', 24 | }, 25 | weekText: 'Sem', 26 | allDayText: 'Todo o dia', 27 | moreLinkText: 'mais', 28 | noEventsText: 'Não há eventos para mostrar', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/pt.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",year:"Ano",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ro.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ro', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'precedentă', 17 | next: 'următoare', 18 | today: 'Azi', 19 | year: 'An', 20 | month: 'Lună', 21 | week: 'Săptămână', 22 | day: 'Zi', 23 | list: 'Agendă', 24 | }, 25 | weekText: 'Săpt', 26 | allDayText: 'Toată ziua', 27 | moreLinkText(n) { 28 | return '+alte ' + n; 29 | }, 30 | noEventsText: 'Nu există evenimente de afișat', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ro.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",year:"An",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:e=>"+alte "+e,noEventsText:"Nu există evenimente de afișat"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ru.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ru', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Пред', 17 | next: 'След', 18 | today: 'Сегодня', 19 | year: 'Год', 20 | month: 'Месяц', 21 | week: 'Неделя', 22 | day: 'День', 23 | list: 'Повестка дня', 24 | }, 25 | weekText: 'Нед', 26 | allDayText: 'Весь день', 27 | moreLinkText(n) { 28 | return '+ ещё ' + n; 29 | }, 30 | noEventsText: 'Нет событий для отображения', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ru.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",year:"Год",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:e=>"+ ещё "+e,noEventsText:"Нет событий для отображения"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/si-lk.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'si-lk', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'පෙර', 17 | next: 'පසු', 18 | today: 'අද', 19 | year: 'අවුරුදු', 20 | month: 'මාසය', 21 | week: 'සතිය', 22 | day: 'දවස', 23 | list: 'ලැයිස්තුව', 24 | }, 25 | weekText: 'සති', 26 | allDayText: 'සියලු', 27 | moreLinkText: 'තවත්', 28 | noEventsText: 'මුකුත් නැත', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/si-lk.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",year:"අවුරුදු",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sk.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'sk', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Predchádzajúci', 17 | next: 'Nasledujúci', 18 | today: 'Dnes', 19 | year: 'Rok', 20 | month: 'Mesiac', 21 | week: 'Týždeň', 22 | day: 'Deň', 23 | list: 'Rozvrh', 24 | }, 25 | weekText: 'Ty', 26 | allDayText: 'Celý deň', 27 | moreLinkText(n) { 28 | return '+ďalšie: ' + n; 29 | }, 30 | noEventsText: 'Žiadne akcie na zobrazenie', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sk.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",year:"Rok",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:e=>"+ďalšie: "+e,noEventsText:"Žiadne akcie na zobrazenie"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sl.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'sl', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Prejšnji', 17 | next: 'Naslednji', 18 | today: 'Trenutni', 19 | year: 'Leto', 20 | month: 'Mesec', 21 | week: 'Teden', 22 | day: 'Dan', 23 | list: 'Dnevni red', 24 | }, 25 | weekText: 'Teden', 26 | allDayText: 'Ves dan', 27 | moreLinkText: 'več', 28 | noEventsText: 'Ni dogodkov za prikaz', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sl.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",year:"Leto",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sm.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'sm', 11 | buttonText: { 12 | prev: 'Talu ai', 13 | next: 'Mulimuli atu', 14 | today: 'Aso nei', 15 | year: 'Tausaga', 16 | month: 'Masina', 17 | week: 'Vaiaso', 18 | day: 'Aso', 19 | list: 'Faasologa', 20 | }, 21 | weekText: 'Vaiaso', 22 | allDayText: 'Aso atoa', 23 | moreLinkText: 'sili atu', 24 | noEventsText: 'Leai ni mea na tutupu', 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sm.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(a){"use strict";FullCalendar.globalLocales.push({code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",year:"Tausaga",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sq.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'sq', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'mbrapa', 17 | next: 'Përpara', 18 | today: 'Sot', 19 | year: 'Viti', 20 | month: 'Muaj', 21 | week: 'Javë', 22 | day: 'Ditë', 23 | list: 'Listë', 24 | }, 25 | weekText: 'Ja', 26 | allDayText: 'Gjithë ditën', 27 | moreLinkText(n) { 28 | return '+më tepër ' + n; 29 | }, 30 | noEventsText: 'Nuk ka evente për të shfaqur', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sq.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"Sot",year:"Viti",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:e=>"+më tepër "+e,noEventsText:"Nuk ka evente për të shfaqur"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sr-cyrl.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'sr-cyrl', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Претходна', 17 | next: 'следећи', 18 | today: 'Данас', 19 | year: 'Година', 20 | month: 'Месец', 21 | week: 'Недеља', 22 | day: 'Дан', 23 | list: 'Планер', 24 | }, 25 | weekText: 'Сед', 26 | allDayText: 'Цео дан', 27 | moreLinkText(n) { 28 | return '+ још ' + n; 29 | }, 30 | noEventsText: 'Нема догађаја за приказ', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sr-cyrl.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",year:"Година",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:e=>"+ још "+e,noEventsText:"Нема догађаја за приказ"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sr.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'sr', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Prethodna', 17 | next: 'Sledeći', 18 | today: 'Danas', 19 | year: 'Godina', 20 | month: 'Mеsеc', 21 | week: 'Nеdеlja', 22 | day: 'Dan', 23 | list: 'Planеr', 24 | }, 25 | weekText: 'Sed', 26 | allDayText: 'Cеo dan', 27 | moreLinkText(n) { 28 | return '+ još ' + n; 29 | }, 30 | noEventsText: 'Nеma događaja za prikaz', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sr.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(a){"use strict";var e={code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",year:"Godina",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:a=>"+ još "+a,noEventsText:"Nеma događaja za prikaz"};FullCalendar.globalLocales.push(e)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/sv.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",year:"År",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:e=>"Föregående "+e.toLocaleLowerCase(),next:e=>"Nästa "+e.toLocaleLowerCase(),today:e=>("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:e=>`Visa ytterligare ${e} händelse${1===e?"":"r"}`,weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ta-in.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ta-in', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'முந்தைய', 17 | next: 'அடுத்தது', 18 | today: 'இன்று', 19 | year: 'ஆண்டு', 20 | month: 'மாதம்', 21 | week: 'வாரம்', 22 | day: 'நாள்', 23 | list: 'தினசரி அட்டவணை', 24 | }, 25 | weekText: 'வாரம்', 26 | allDayText: 'நாள் முழுவதும்', 27 | moreLinkText(n) { 28 | return '+ மேலும் ' + n; 29 | }, 30 | noEventsText: 'காண்பிக்க நிகழ்வுகள் இல்லை', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ta-in.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",year:"ஆண்டு",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:e=>"+ மேலும் "+e,noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/th.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'th', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'ก่อนหน้า', 17 | next: 'ถัดไป', 18 | prevYear: 'ปีก่อนหน้า', 19 | nextYear: 'ปีถัดไป', 20 | year: 'ปี', 21 | today: 'วันนี้', 22 | month: 'เดือน', 23 | week: 'สัปดาห์', 24 | day: 'วัน', 25 | list: 'กำหนดการ', 26 | }, 27 | weekText: 'สัปดาห์', 28 | allDayText: 'ตลอดวัน', 29 | moreLinkText: 'เพิ่มเติม', 30 | noEventsText: 'ไม่มีกิจกรรมที่จะแสดง', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/th.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/tr.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'tr', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'geri', 17 | next: 'ileri', 18 | today: 'bugün', 19 | year: 'Yıl', 20 | month: 'Ay', 21 | week: 'Hafta', 22 | day: 'Gün', 23 | list: 'Ajanda', 24 | }, 25 | weekText: 'Hf', 26 | allDayText: 'Tüm gün', 27 | moreLinkText: 'daha fazla', 28 | noEventsText: 'Gösterilecek etkinlik yok', 29 | }; 30 | 31 | index_js.globalLocales.push(locale); 32 | 33 | })(FullCalendar); 34 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/tr.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",year:"Yıl",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ug.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'ug', 11 | buttonText: { 12 | prev: 'ئالدىنقى', 13 | next: 'كېيىنكى', 14 | today: 'بۈگۈن', 15 | year: 'يىل', 16 | month: 'ئاي', 17 | week: 'ھەپتە', 18 | day: 'كۈن', 19 | list: 'كۈنتەرتىپ', 20 | }, 21 | allDayText: 'پۈتۈن كۈن', 22 | }; 23 | 24 | index_js.globalLocales.push(locale); 25 | 26 | })(FullCalendar); 27 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/ug.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"ug",buttonText:{prev:"ئالدىنقى",next:"كېيىنكى",today:"بۈگۈن",year:"يىل",month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/uk.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'uk', 11 | week: { 12 | dow: 1, 13 | doy: 7, // The week that contains Jan 1st is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Попередній', 17 | next: 'далі', 18 | today: 'Сьогодні', 19 | year: 'рік', 20 | month: 'Місяць', 21 | week: 'Тиждень', 22 | day: 'День', 23 | list: 'Порядок денний', 24 | }, 25 | weekText: 'Тиж', 26 | allDayText: 'Увесь день', 27 | moreLinkText(n) { 28 | return '+ще ' + n + '...'; 29 | }, 30 | noEventsText: 'Немає подій для відображення', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/uk.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",year:"рік",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:e=>"+ще "+e+"...",noEventsText:"Немає подій для відображення"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/uz-cy.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'uz-cy', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Олин', 17 | next: 'Кейин', 18 | today: 'Бугун', 19 | month: 'Ой', 20 | week: 'Ҳафта', 21 | day: 'Кун', 22 | list: 'Кун тартиби', 23 | }, 24 | weekText: 'Ҳафта', 25 | allDayText: 'Кун бўйича', 26 | moreLinkText(n) { 27 | return '+ яна ' + n; 28 | }, 29 | noEventsText: 'Кўрсатиш учун воқеалар йўқ', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/uz-cy.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"uz-cy",week:{dow:1,doy:4},buttonText:{prev:"Олин",next:"Кейин",today:"Бугун",month:"Ой",week:"Ҳафта",day:"Кун",list:"Кун тартиби"},weekText:"Ҳафта",allDayText:"Кун бўйича",moreLinkText:e=>"+ яна "+e,noEventsText:"Кўрсатиш учун воқеалар йўқ"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/uz.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'uz', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Oldingi', 17 | next: 'Keyingi', 18 | today: 'Bugun', 19 | year: 'Yil', 20 | month: 'Oy', 21 | week: 'Xafta', 22 | day: 'Kun', 23 | list: 'Kun tartibi', 24 | }, 25 | allDayText: 'Kun bo\'yi', 26 | moreLinkText(n) { 27 | return '+ yana ' + n; 28 | }, 29 | noEventsText: 'Ko\'rsatish uchun voqealar yo\'q', 30 | }; 31 | 32 | index_js.globalLocales.push(locale); 33 | 34 | })(FullCalendar); 35 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/uz.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var a={code:"uz",week:{dow:1,doy:4},buttonText:{prev:"Oldingi",next:"Keyingi",today:"Bugun",year:"Yil",month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:e=>"+ yana "+e,noEventsText:"Ko'rsatish uchun voqealar yo'q"};FullCalendar.globalLocales.push(a)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/vi.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'vi', 11 | week: { 12 | dow: 1, 13 | doy: 4, // The week that contains Jan 4th is the first week of the year. 14 | }, 15 | buttonText: { 16 | prev: 'Trước', 17 | next: 'Tiếp', 18 | today: 'Hôm nay', 19 | year: 'Năm', 20 | month: 'Tháng', 21 | week: 'Tuần', 22 | day: 'Ngày', 23 | list: 'Lịch biểu', 24 | }, 25 | weekText: 'Tu', 26 | allDayText: 'Cả ngày', 27 | moreLinkText(n) { 28 | return '+ thêm ' + n; 29 | }, 30 | noEventsText: 'Không có sự kiện để hiển thị', 31 | }; 32 | 33 | index_js.globalLocales.push(locale); 34 | 35 | })(FullCalendar); 36 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/vi.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",year:"Năm",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:e=>"+ thêm "+e,noEventsText:"Không có sự kiện để hiển thị"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/zh-cn.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'zh-cn', 11 | week: { 12 | // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 13 | dow: 1, 14 | doy: 4, // The week that contains Jan 4th is the first week of the year. 15 | }, 16 | buttonText: { 17 | prev: '上月', 18 | next: '下月', 19 | today: '今天', 20 | year: '年', 21 | month: '月', 22 | week: '周', 23 | day: '日', 24 | list: '日程', 25 | }, 26 | weekText: '周', 27 | allDayText: '全天', 28 | moreLinkText(n) { 29 | return '另外 ' + n + ' 个'; 30 | }, 31 | noEventsText: '没有事件显示', 32 | }; 33 | 34 | index_js.globalLocales.push(locale); 35 | 36 | })(FullCalendar); 37 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/zh-cn.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";var t={code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",year:"年",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:e=>"另外 "+e+" 个",noEventsText:"没有事件显示"};FullCalendar.globalLocales.push(t)}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/zh-tw.global.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | (function (index_js) { 7 | 'use strict'; 8 | 9 | var locale = { 10 | code: 'zh-tw', 11 | buttonText: { 12 | prev: '上個', 13 | next: '下個', 14 | today: '今天', 15 | year: '年', 16 | month: '月', 17 | week: '週', 18 | day: '天', 19 | list: '活動列表', 20 | }, 21 | weekText: '週', 22 | allDayText: '整天', 23 | moreLinkText: '顯示更多', 24 | noEventsText: '沒有任何活動', 25 | }; 26 | 27 | index_js.globalLocales.push(locale); 28 | 29 | })(FullCalendar); 30 | -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/core/locales/zh-tw.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Core v6.1.8 3 | Docs & License: https://fullcalendar.io 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(e){"use strict";FullCalendar.globalLocales.push({code:"zh-tw",buttonText:{prev:"上個",next:"下個",today:"今天",year:"年",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"週",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"沒有任何活動"})}(); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/moment-timezone/index.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Moment Timezone Plugin v6.1.8 3 | Docs & License: https://fullcalendar.io/docs/moment-timezone-plugin 4 | (c) 2023 Adam Shaw 5 | */ 6 | FullCalendar.MomentTimezone=function(e,t,n,a){"use strict";function l(e){return e&&e.__esModule?e:{default:e}}var r=l(n);class u extends a.NamedTimeZoneImpl{offsetForArray(e){return r.default.tz(e,this.timeZoneName).utcOffset()}timestampToArray(e){return r.default.tz(e,this.timeZoneName).toArray()}}var m=t.createPlugin({name:"@fullcalendar/moment-timezone",namedTimeZonedImpl:u});return t.globalPlugins.push(m),e.default=m,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,moment,FullCalendar.Internal); -------------------------------------------------------------------------------- /public/fullcalendar/6.1.8/packages/web-component/index.global.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Web Component v6.1.8 3 | Docs & License: https://fullcalendar.io/docs/web-component 4 | (c) 2023 Adam Shaw 5 | */ 6 | !function(t){"use strict";class e extends HTMLElement{constructor(){super(...arguments),this._calendar=null,this._options=null}connectedCallback(){this._handleOptionsStr(this.getAttribute("options"))}disconnectedCallback(){this._handleOptionsStr(null)}attributeChangedCallback(t,e,n){"options"===t&&this._calendar&&this._handleOptionsStr(n)}get options(){return this._options}set options(t){this._handleOptions(t)}getApi(){return this._calendar}_handleOptionsStr(t){this._handleOptions(t?JSON.parse(t):null)}_handleOptions(e){if(e){if(this._calendar)this._calendar.resetOptions(e);else{let n;this.hasAttribute("shadow")?(this.attachShadow({mode:"open"}),n=this.shadowRoot):n=this,n.innerHTML="
    ";let s=n.querySelector("div"),i=new t.Calendar(s,e);i.render(),this._calendar=i}this._options=e}else this._calendar&&(this._calendar.destroy(),this._calendar=null),this._options=null}static get observedAttributes(){return["options"]}}globalThis.FullCalendarElement=e,customElements.define("full-calendar",e)}(FullCalendar); -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/public/logo.png -------------------------------------------------------------------------------- /public/thirteen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Generic.js: -------------------------------------------------------------------------------- 1 | import { ToastContainer, toast } from 'react-toastify'; 2 | import Alert from 'react-bootstrap/Alert'; 3 | import { SETTING_NAME_TOAST_LOCATION } from '@/helpers/frontend/settings'; 4 | export function Toastify() { 5 | 6 | let location = "bottom-center" 7 | if(typeof(window)!=="undefined"){ 8 | location = (localStorage.getItem(SETTING_NAME_TOAST_LOCATION)) ? localStorage.getItem(SETTING_NAME_TOAST_LOCATION): "bottom-center" 9 | } 10 | return () 21 | } 22 | 23 | 24 | // export function nothingToShow(){ 25 | // return(<> 26 | // 27 | // {i18next.t("NOTHING_TO_SHOW")} 28 | // 29 | // ) 30 | // } -------------------------------------------------------------------------------- /src/components/bootstrap/SimpleOverlay.js: -------------------------------------------------------------------------------- 1 | import { useRef, useState } from 'react'; 2 | import Button from 'react-bootstrap/Button'; 3 | import Overlay from 'react-bootstrap/Overlay'; 4 | import Tooltip from 'react-bootstrap/Tooltip'; 5 | import { MdSpeakerNotes } from 'react-icons/md'; 6 | import OverlayTrigger from 'react-bootstrap/OverlayTrigger'; 7 | import Popover from 'react-bootstrap/Popover'; 8 | function SimpleOverlay() { 9 | const [show, setShow] = useState(false); 10 | const target = useRef(null); 11 | 12 | return ( 13 | <> 14 | 15 | Popover right 16 | 17 | 18 | 19 | 20 | ); 21 | 22 | } 23 | 24 | export default SimpleOverlay; -------------------------------------------------------------------------------- /src/components/common/AppBar/index.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { useSession } from "next-auth/react"; 3 | import AppBarFunctionalComponent from "./AppBarFunctionalComponents"; 4 | 5 | interface propsType{ 6 | isSyncing?: boolean, 7 | onSynComplete?: Function 8 | } 9 | const AppBarGeneric= ({isSyncing, onSynComplete}:propsType) =>{ 10 | 11 | // const [lastSync, setLastSync] = useState(0) 12 | // useEffect(()=>{ 13 | // const interval= setInterval(() => { 14 | 15 | // //context.syncButtonClicked() 16 | // //toast.info("syncing") 17 | // setLastSync(prev => prev+1) 18 | 19 | // }, 1*1000) 20 | 21 | // return () =>{ 22 | // clearInterval(interval) 23 | // } 24 | // },[]) 25 | 26 | const session = useSession() 27 | return ( 28 | <> 29 | 30 | ) 31 | } 32 | 33 | export default AppBarGeneric -------------------------------------------------------------------------------- /src/components/common/GlobalViewManager/GlobalViewManager.tsx: -------------------------------------------------------------------------------- 1 | import { EventEditorViewManager } from "@/components/events/EventEditorViewManager" 2 | import { TaskEditorViewManager } from "@/components/tasks/TaskEditorSupport/TaskEditorViewManager" 3 | import { MoveEventModalViewManager } from "../MoveEvent/MoveEventModalViewManager" 4 | 5 | export const GlobalViewManager = () =>{ 6 | 7 | return( 8 | <> 9 | 10 | 11 | 12 | 13 | 14 | ) 15 | } -------------------------------------------------------------------------------- /src/components/common/Loading.js: -------------------------------------------------------------------------------- 1 | import { varNotEmpty } from '@/helpers/general'; 2 | import Spinner from 'react-bootstrap/Spinner'; 3 | 4 | export function Loading(props) 5 | { 6 | var size="sm" 7 | if(props.size!=null) 8 | { 9 | size=props.size 10 | } 11 | 12 | var centered= null 13 | if(props.centered==true) 14 | { 15 | centered ="center" 16 | } 17 | 18 | return( 19 |
    20 | 21 |
    22 | ) 23 | 24 | 25 | } -------------------------------------------------------------------------------- /src/components/common/PageViewLists/ListOptions.tsx: -------------------------------------------------------------------------------- 1 | import { useTranslation } from "next-i18next" 2 | import { FiSunrise } from "react-icons/fi" 3 | import { MdToday } from "react-icons/md" 4 | 5 | 6 | 7 | export const MyDayOption = ({borderBottomColor}) =>{ 8 | const {t} = useTranslation() 9 | return( 10 |
    11 |
    12 | {t("MY_DAY")} 13 |
    14 |
    15 | ) 16 | } 17 | 18 | export const DueTodayOption = (borderBottomColor) =>{ 19 | const {t} = useTranslation() 20 | 21 | return( 22 |
    23 |
    24 | {t("DUE_TODAY")} 25 |
    26 |
    27 | ) 28 | } -------------------------------------------------------------------------------- /src/components/fullcalendar/FullCalendarHelper.ts: -------------------------------------------------------------------------------- 1 | export const FULLCALENDAR_VIEWLIST =[ 2 | {name: "timeGridDay", saneName: "DAY_VIEW",}, 3 | {name: "timeGridWeek", saneName: "WEEK_VIEW"}, 4 | {name: "dayGridMonth", saneName: "MONTH_VIEW"}, 5 | {name: "listWeek", saneName: "LIST_VIEW"} 6 | ] 7 | 8 | export function getSaneName(fullcalendarViewName:string): string 9 | { 10 | for(const i in FULLCALENDAR_VIEWLIST) 11 | { 12 | if(FULLCALENDAR_VIEWLIST[i].name==fullcalendarViewName) 13 | { 14 | return FULLCALENDAR_VIEWLIST[fullcalendarViewName] 15 | 16 | } 17 | } 18 | 19 | return "" 20 | } 21 | export function isValidFullCalendarView(name){ 22 | // console.log("isValidFullCalendarView", name) 23 | for (const i in FULLCALENDAR_VIEWLIST){ 24 | if(FULLCALENDAR_VIEWLIST[i].name==name){ 25 | return true 26 | } 27 | } 28 | 29 | 30 | return false 31 | } 32 | -------------------------------------------------------------------------------- /src/components/page/MangerLabelsPage/ManageLabels.js: -------------------------------------------------------------------------------- 1 | import Head from 'next/head' 2 | import Container from 'react-bootstrap/Container'; 3 | import AppBarGeneric from "@/components/common/AppBar" 4 | import { withRouter } from 'next/router'; 5 | import { useTranslation } from 'next-i18next'; 6 | import LabelManager from '../../LabelManager'; 7 | 8 | function ManageLabels() { 9 | const {t} = useTranslation() 10 | return ( 11 | <> 12 | 13 | {t("APP_NAME_TITLE")+" - "+t("LABEL_MANAGER")} 14 | 15 | 16 | 17 | 18 | 19 | 20 |
    21 | 22 |
    23 |
    24 | 25 | ) 26 | } 27 | 28 | export default withRouter(ManageLabels) 29 | 30 | -------------------------------------------------------------------------------- /src/components/page/SettingsPage/MaintenanceTasks.tsx: -------------------------------------------------------------------------------- 1 | import { deleteAllEventsFromDexie } from "@/helpers/frontend/dexie/events_dexie" 2 | import { fetchLatestEventsV2 } from "@/helpers/frontend/sync" 3 | import { Button, Col, Row } from "react-bootstrap" 4 | import { useTranslation } from "next-i18next" 5 | import { toast } from "react-toastify" 6 | 7 | const MaintenanceTasks = () =>{ 8 | const {t} = useTranslation() 9 | 10 | const clearEventsFromDexie = () =>{ 11 | toast.info(t("DELETING_AND_REFRESHING_EVENTS")) 12 | fetchLatestEventsV2(true).then((result)=>{ 13 | toast.success(t("DONE")) 14 | }) 15 | } 16 | return( 17 | <> 18 |

    {t("MAINTENANCE_TASKS")}

    19 | 20 | 21 | 22 | 23 | 24 | ) 25 | } 26 | 27 | export default MaintenanceTasks -------------------------------------------------------------------------------- /src/components/tasks/EventEditorExitModal.js: -------------------------------------------------------------------------------- 1 | 2 | import Button from 'react-bootstrap/Button'; 3 | import Modal from 'react-bootstrap/Modal'; 4 | 5 | export function EventEditorExitModal(props) { 6 | return ( 7 | 14 | 15 | 16 | Discard changes to task? 17 | 18 | 19 |

    20 |

    21 | You have made some changes to this task. Unless you save, those changes will be discarded. 22 |

    23 |
    24 | 25 | 26 | 27 | 28 | 29 |
    30 | ); 31 | } -------------------------------------------------------------------------------- /src/components/tasks/TaskEditorExitModal.js: -------------------------------------------------------------------------------- 1 | 2 | import Button from 'react-bootstrap/Button'; 3 | import Modal from 'react-bootstrap/Modal'; 4 | 5 | export function TaskEditorExitModal(props) { 6 | return ( 7 | 14 | 15 | 16 | Discard changes to task? 17 | 18 | 19 |

    20 |

    21 | You have made some changes to this task. Unless you save, those changes will be discarded. 22 |

    23 |
    24 | 25 | 26 | 27 | 28 | 29 |
    30 | ); 31 | } -------------------------------------------------------------------------------- /src/components/tasks/TaskEditorSupport/RepeatTaskInfo.tsx: -------------------------------------------------------------------------------- 1 | import { Loading } from "@/components/common/Loading"; 2 | import i18next from "i18next"; 3 | import { useAtomValue } from "jotai"; 4 | import moment from "moment"; 5 | import { Alert, Button } from "react-bootstrap"; 6 | import { currentSimpleDateFormatAtom } from "stateStore/SettingsStore"; 7 | 8 | 9 | export default function RepeatTaskInfo({recurrenceObj, dateFormat, onSaveClick, isLoading}){ 10 | const button = !isLoading ?: 11 | return ( 12 | ( 13 |

    {i18next.t("REPEAT_TASK_MESSAGE")}

    14 |

    {i18next.t("CURRENT_INSTANCE_BEING_EDITED")+moment(recurrenceObj.getNextDueDate()).format(dateFormat)}

    15 |

    16 | 17 | {button} 18 |

    19 |
    ) 20 | ) 21 | } -------------------------------------------------------------------------------- /src/components/tasks/gantt_Dummy/DummyTaskHeaderComponent.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export const DummyTaskHeaderComponent: React.FC<{ 4 | headerHeight: number; 5 | rowWidth: string; 6 | fontFamily: string; 7 | fontSize: string; 8 | }> = ({ headerHeight, fontFamily, fontSize, rowWidth }) => { 9 | return ( 10 | <> 11 | 12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /src/components/tasks/views/SingleTask/DescriptionIcon.tsx: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'next-i18next'; 2 | import Button from 'react-bootstrap/Button'; 3 | import OverlayTrigger from 'react-bootstrap/OverlayTrigger'; 4 | import Tooltip from 'react-bootstrap/Tooltip'; 5 | import { MdSpeakerNotes } from 'react-icons/md'; 6 | 7 | export const DescriptionIcon = ({text}:{text:string}) =>{ 8 | const {t} = useTranslation() 9 | const renderTooltip = (props) => ( 10 | 11 | {`${t("DESCRIPTION")}: `}{text} 12 | 13 | ); 14 | 15 | return ( 16 | 20 | 21 | 22 | ); 23 | } -------------------------------------------------------------------------------- /src/components/tasks/views/SingleTask/SummaryText.tsx: -------------------------------------------------------------------------------- 1 | import { isDarkModeEnabled } from '@/helpers/frontend/theme'; 2 | import { useEffect, useState } from 'react'; 3 | import OverlayTrigger from 'react-bootstrap/OverlayTrigger'; 4 | import Tooltip from 'react-bootstrap/Tooltip'; 5 | 6 | export const SummaryText = ({text, color}: {text: string | undefined, color?: string}) =>{ 7 | 8 | const renderTooltip = (props) => ( 9 | 10 | {text} 11 | 12 | ); 13 | 14 | const style={ 15 | 16 | } 17 | return ( 18 | 22 | 23 |
    24 | {text} 25 |
    26 |
    27 |
    28 | ); 29 | } -------------------------------------------------------------------------------- /src/components/tasks/views/TaskFilters.tsx: -------------------------------------------------------------------------------- 1 | export const TaskFilters = () =>{ 2 | 3 | return( 4 | <> 5 | 6 | ) 7 | } -------------------------------------------------------------------------------- /src/components/tasks/views/TaskViewMain/SortByButton.tsx: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'next-i18next'; 2 | import { useState } from 'react'; 3 | import Form from 'react-bootstrap/Form'; 4 | 5 | export const SortBySelect = ({onChangeHandler}:{onChangeHandler: Function}) =>{ 6 | 7 | const [value, setValue] = useState("due_asc") 8 | const { t } = useTranslation() 9 | const optionSelected = (e) =>{ 10 | setValue(e.target.value) 11 | onChangeHandler(e.target.value) 12 | } 13 | return ( 14 | <> 15 | 16 | 17 | 18 | 19 | 20 | 21 | ); 22 | } -------------------------------------------------------------------------------- /src/config/style.js: -------------------------------------------------------------------------------- 1 | export const PRIMARY_COLOUR="#881be4" 2 | export const SECONDARY_COLOUR="#77E41B" 3 | export const BACKGROUND_GRAY="#f5f5f5" -------------------------------------------------------------------------------- /src/external/.gitignore: -------------------------------------------------------------------------------- 1 | bootstrap/ -------------------------------------------------------------------------------- /src/helpers/api/.gitignore: -------------------------------------------------------------------------------- 1 | db_test.js -------------------------------------------------------------------------------- /src/helpers/api/installSequelize.ts: -------------------------------------------------------------------------------- 1 | import { caldav_accounts } from "models/caldav_accounts" 2 | import { calendar_events } from "models/calendar_events" 3 | import { calendars } from "models/calendars" 4 | import { custom_filters } from "models/custom_filters" 5 | import { labels } from "models/labels" 6 | import { otp_table } from "models/otp_table" 7 | import {settings} from 'models/settings' 8 | import { ssid_table } from "models/ssid_table" 9 | import { users } from "models/users" 10 | 11 | 12 | export async function isInstalledV2(){ 13 | 14 | } -------------------------------------------------------------------------------- /src/helpers/api/tasks.js: -------------------------------------------------------------------------------- 1 | import { varNotEmpty } from "../general"; 2 | 3 | export function TaskPending(todo) 4 | { 5 | if(varNotEmpty(todo)) 6 | { 7 | if((todo.completed==null || (todo.completed!=null && todo.completed.toString=="")) && (todo.status!="COMPLETED" && todo.completion!="100")) 8 | { 9 | return true 10 | } 11 | else{ 12 | return false 13 | } 14 | }else{ 15 | return true 16 | } 17 | } -------------------------------------------------------------------------------- /src/helpers/api/template.ts: -------------------------------------------------------------------------------- 1 | import {templates} from "models/templates"; 2 | import { getSequelizeObj } from "./db"; 3 | 4 | const template_Model = templates.initModel(getSequelizeObj()) 5 | 6 | export async function insertNewTemplatetoDB(name, data, type, userid) 7 | { 8 | await template_Model.create({ name:name, data:data, type: type, userid:userid }); 9 | return 10 | 11 | } 12 | 13 | 14 | export async function getTemplatesFromDB(userid){ 15 | return await template_Model.findAll({ 16 | where: { 17 | userid: userid.toString(), 18 | }, 19 | }) 20 | 21 | } 22 | 23 | export async function deleteTemplatefromDB(id, userid){ 24 | return await template_Model.destroy({ 25 | where: { 26 | id: parseInt(id), 27 | userid:userid.toString() 28 | }, 29 | }); 30 | } -------------------------------------------------------------------------------- /src/helpers/api/tsdav.js: -------------------------------------------------------------------------------- 1 | import { varNotEmpty } from "../general" 2 | 3 | export async function process_calendarQueryResults(results, caldav_url, calendar, client) 4 | { 5 | if(Array.isArray(results)) 6 | { 7 | console.log(results) 8 | var objectURLs= [] 9 | for(const i in results) 10 | { 11 | if(varNotEmpty(results[i].href) && results[i].href!="") 12 | { 13 | objectURLs.push(caldav_url+results[i].href) 14 | 15 | } 16 | 17 | 18 | } 19 | console.log("objectURLs", objectURLs) 20 | 21 | const calendarObjects = await client.calendarMultiGet({ 22 | url: calendar.url, 23 | props: { 24 | }, 25 | objectUrls:objectURLs, 26 | depth: '1', 27 | 28 | }); 29 | 30 | console.log("calendarObjects", calendarObjects) 31 | 32 | 33 | 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /src/helpers/crypto.js: -------------------------------------------------------------------------------- 1 | import crypto from "crypto" 2 | 3 | export function getRandomString(len) 4 | { 5 | var hexLength = len/2 6 | var id = crypto.randomBytes(hexLength).toString('hex'); 7 | return id 8 | } -------------------------------------------------------------------------------- /src/helpers/errros.js: -------------------------------------------------------------------------------- 1 | import { varNotEmpty } from "./general"; 2 | 3 | export function getErrorResponse(e) 4 | { 5 | if(varNotEmpty(e) && varNotEmpty(e.message)) 6 | { 7 | return({ 8 | success:false, 9 | data:{ 10 | message:e.message, 11 | details:JSON.stringify(e) 12 | } 13 | }) 14 | 15 | }else{ 16 | return({ 17 | success:false, 18 | data:{ 19 | message:"ERROR_GENERIC", 20 | } 21 | }) 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /src/helpers/frontend/caldavaccountspage.js: -------------------------------------------------------------------------------- 1 | import { getCaldavAccountsfromServer, saveCaldavAccounstoDB } from "./calendar" 2 | import { getcalendarDB } from "./db" 3 | 4 | export async function getAllAddedCaldavAccounts(){ 5 | 6 | 7 | return new Promise( (resolve, reject) => { 8 | 9 | getcalendarDB().caldav_accounts.toArray().then((caldav_accounts) =>{ 10 | 11 | if(caldav_accounts!=null && caldav_accounts.length >0) 12 | { 13 | 14 | return resolve({success: true, data: {message: caldav_accounts}}) 15 | } 16 | else 17 | { 18 | //Get Caldav accounts from server. 19 | getCaldavAccountsfromServer().then((response) =>{ 20 | if(response.success==true) 21 | { 22 | saveCaldavAccounstoDB(response.data.message) 23 | } 24 | else 25 | { 26 | return resolve({success: false, data: {message: response.data.message}}) 27 | } 28 | 29 | }) 30 | 31 | } 32 | }) 33 | 34 | 35 | }) 36 | } 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/helpers/frontend/classes/Calendars.ts: -------------------------------------------------------------------------------- 1 | import { varNotEmpty } from "@/helpers/general"; 2 | import { getCaldavAccountsfromServer } from "../calendar"; 3 | import { getMessageFromAPIResponse } from "../response"; 4 | 5 | export class CalendarsHelper { 6 | 7 | static async getAllCalendars(): Promise 8 | { 9 | const caldav_accounts = await getCaldavAccountsfromServer() 10 | if(caldav_accounts!=null && caldav_accounts.success==true) 11 | { 12 | var accounts = getMessageFromAPIResponse(caldav_accounts) 13 | if(varNotEmpty(accounts) && Array.isArray(accounts) && accounts.length>0) 14 | { 15 | return accounts 16 | } 17 | } 18 | 19 | return [] 20 | } 21 | } -------------------------------------------------------------------------------- /src/helpers/frontend/classes/VTODOParsed.js: -------------------------------------------------------------------------------- 1 | import { VTODO } from "./VTODO"; 2 | 3 | export class VTODOParsed extends VTODO{ 4 | 5 | constructor(taskData) 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/helpers/frontend/db.js: -------------------------------------------------------------------------------- 1 | import Dexie from 'dexie'; 2 | 3 | 4 | export function getcalendarDB() { 5 | const db_calendar = new Dexie('mmdl-calendar-data'); 6 | 7 | db_calendar.version(5).stores({ 8 | calendar_events: '++id, url, etag, data, updated, caldav_accounts_id, calendar_id, type, [caldav_accounts_id+calendar_id], [caldav_accounts_id+calendar_id+type]', 9 | caldav_accounts: '++id, caldav_account_id, name, url, username', 10 | calendars: '++id, calendar_id, caldav_account_id, name, url', 11 | }); 12 | 13 | return db_calendar 14 | } 15 | 16 | export function getUserDB() { 17 | const db_user = new Dexie('mmdl-user-data'); 18 | db_user.version(3).stores({ 19 | user: '++id, username, userhash, ssid, email, mobile', 20 | labels: '++id, name, colour' 21 | }); 22 | return db_user 23 | } 24 | -------------------------------------------------------------------------------- /src/helpers/frontend/dexie/upgrade_helpers.ts: -------------------------------------------------------------------------------- 1 | export async function upgradeDexie(){ 2 | 3 | 4 | } 5 | -------------------------------------------------------------------------------- /src/helpers/frontend/eventmodifier.js: -------------------------------------------------------------------------------- 1 | import { getAuthenticationHeadersforUser } from "./user"; 2 | 3 | -------------------------------------------------------------------------------- /src/helpers/frontend/fullcalendar.ts: -------------------------------------------------------------------------------- 1 | 2 | export default function fullDayNameToNumber(nameOfDay){ 3 | 4 | } -------------------------------------------------------------------------------- /src/helpers/frontend/i18n.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/src/helpers/frontend/i18n.ts -------------------------------------------------------------------------------- /src/helpers/frontend/nextAuthHelpers.ts: -------------------------------------------------------------------------------- 1 | import { addUserToDB_Dexie } from "./dexie/users_dexie" 2 | import { getMessageFromAPIResponse } from "./response" 3 | 4 | export function getSessionFromNextAuthAPI():Promise{ 5 | const url_api = "/api/auth/session" 6 | const requestOptions = 7 | { 8 | method: 'GET', 9 | headers: new Headers({'Content-Type':'application/json'}), 10 | } 11 | 12 | return new Promise( (resolve, reject) => { 13 | fetch(url_api, requestOptions) 14 | .then(response => response.json()) 15 | .then((body) =>{ 16 | return resolve(body) 17 | }) 18 | .catch(e =>{ 19 | console.error("getSessionFromNextAuthAPI", e) 20 | return resolve(null) 21 | }) 22 | 23 | }) 24 | } 25 | 26 | export async function getUserIDFromNextAuthSession_API(){ 27 | 28 | const body = await getSessionFromNextAuthAPI() 29 | // console.log("body", body) 30 | if(body && ("user" in body) && ("id" in body.user) && body.user.id){ 31 | return body.user.id 32 | } 33 | 34 | return null 35 | 36 | } -------------------------------------------------------------------------------- /src/helpers/frontend/response.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | export function getMessageFromAPIResponse(body) 4 | { 5 | if(body==null) 6 | { 7 | return null 8 | } 9 | if(body.data!=null && body.data.message!=null) 10 | { 11 | return body.data.message 12 | } 13 | else{ 14 | return null 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /src/helpers/frontend/sample.js: -------------------------------------------------------------------------------- 1 | import { getUserDB } from './db'; 2 | 3 | export async function populateSampleDataIntoDB() 4 | { 5 | var db = getUserDB() 6 | //user: '++id, username, userhash, ssid, email, mobile' 7 | var username='abc' 8 | var userhash='ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f' 9 | var ssid = 'aa11de94da6f7b7034053c662d5ec08703b830d63638c1b21177589bf74911b96bb7b79f186008e5d2d72b195888ece8109a2fdc3ea53d0bc4224acc532e68e3' 10 | var id = await db.user.add({ 11 | username,userhash,ssid, 12 | }); 13 | 14 | } -------------------------------------------------------------------------------- /src/helpers/frontend/syncHelper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/src/helpers/frontend/syncHelper.ts -------------------------------------------------------------------------------- /src/helpers/frontend/taskeditor.ts: -------------------------------------------------------------------------------- 1 | import { toast } from "react-toastify" 2 | import { getI18nObject } from "./general" 3 | import { getMessageFromAPIResponse } from "./response" 4 | 5 | export function taskSubmitted(body: {success: boolean, data: {message: string }} | null, fetchEvents: Function) { 6 | const i18next = getI18nObject() 7 | 8 | const message = getMessageFromAPIResponse(body) 9 | if (body != null) { 10 | if (body.success == true) { 11 | if(message){ 12 | 13 | toast.success(i18next.t(message)) 14 | } 15 | fetchEvents() 16 | } 17 | else { 18 | if(message){ 19 | 20 | toast.error(i18next.t(message)) 21 | }else{ 22 | toast.error(i18next.t("ERROR_GENERIC")) 23 | } 24 | 25 | } 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/helpers/frontend/theme.ts: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | import { DARK_MODE_COOKIE_NAME } from './cookies' 3 | import { useEffect } from 'react' 4 | export const DEFAULT_THEME =" light" 5 | export function getThemeMode(){ 6 | const mode = Cookies.get(DARK_MODE_COOKIE_NAME) 7 | return mode ?? "light" 8 | } 9 | export function setThemeMode(mode){ 10 | Cookies.set(DARK_MODE_COOKIE_NAME, mode, { expires: 3650 }) 11 | } 12 | 13 | export function isDarkModeEnabled(){ 14 | return getThemeMode()=="dark" ? true : false 15 | } 16 | 17 | export function useCustomTheme(){ 18 | const themeMode = getThemeMode() 19 | useEffect(() =>{ 20 | let isMounted =true 21 | if(isMounted){ 22 | document.documentElement.setAttribute("data-bs-theme", getThemeMode()) 23 | 24 | } 25 | return () =>{ 26 | isMounted = false 27 | } 28 | }, [themeMode]) 29 | 30 | 31 | } -------------------------------------------------------------------------------- /src/helpers/installation.ts: -------------------------------------------------------------------------------- 1 | export function isInstalledV2(){ 2 | 3 | } -------------------------------------------------------------------------------- /src/helpers/logs.ts: -------------------------------------------------------------------------------- 1 | export function shouldLogforAPI() :boolean{ 2 | if(process.env.NEXT_API_DEBUG_MODE && process.env.NEXT_API_DEBUG_MODE.toLowerCase()=="true") 3 | { 4 | 5 | return true 6 | } 7 | return false 8 | } -------------------------------------------------------------------------------- /src/helpers/models.ts: -------------------------------------------------------------------------------- 1 | export function getAllDBModels(){ 2 | 3 | 4 | } -------------------------------------------------------------------------------- /src/helpers/sanitisation.ts: -------------------------------------------------------------------------------- 1 | function sanitizeInput(input: string): string { 2 | // Remove HTML tags using a regular expression 3 | const sanitizedInput = input.replace(/(<([^>]+)>)/gi, ''); 4 | 5 | // Escape special characters 6 | const escapedInput = escapeHtml(sanitizedInput); 7 | 8 | return escapedInput; 9 | } 10 | 11 | function escapeHtml(input: string): string { 12 | const map: { [key: string]: string } = { 13 | '&': '&', 14 | '<': '<', 15 | '>': '>', 16 | '"': '"', 17 | "'": ''', 18 | '/': '/', 19 | }; 20 | 21 | return input.replace(/[&<>"'/]/g, (match) => map[match]); 22 | } 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/helpers/validators.ts: -------------------------------------------------------------------------------- 1 | export function isCaldavURLinAllowedList(serverUrl){ 2 | if(!process.env.ADDITIONAL_VALID_CALDAV_URL_LIST){ 3 | return false 4 | } 5 | try{ 6 | 7 | const listofValidURLs = JSON.parse(process.env.ADDITIONAL_VALID_CALDAV_URL_LIST.toString()) 8 | 9 | if(Array.isArray(listofValidURLs) && listofValidURLs.length>0) 10 | { 11 | return listofValidURLs.includes(serverUrl) 12 | } 13 | return false 14 | }catch(e){ 15 | console.error("Error! isCaldavURLinAllowedList: Invalid value of ADDITIONAL_VALID_CALDAV_URL_LIST environment variable.") 16 | } 17 | 18 | return false 19 | } -------------------------------------------------------------------------------- /src/helpers/viewHelpers/pages.ts: -------------------------------------------------------------------------------- 1 | import { MYDAY_LABEL } from '@/config/constants' 2 | import { getSevenDaysEnd_ISOString, getTimeNow_ISOString, getTodaysDayEnd_ISOString } from '../general' 3 | 4 | export const PAGE_VIEW_NAME_MY_DAY ="MY_DAY" 5 | export const PAGE_VIEW_NAME_DUE_TODAY="DUE_TODAY" 6 | export const PAGE_VIEW_NAME_DUE_NEXT_SEVEN="DUE_NEXT_SEVEN_DAYS" 7 | export const PAGE_VIEW_NAME_HIGH_PRIORITY ="HIGH_PRIORITY" 8 | export const PAGE_VIEW_NAME_ALL_TASKS="ALL_TASKS" 9 | export const PAGE_VIEW_NAME_HAVE_STARTED="HAVE_STARTED" 10 | 11 | 12 | export const PAGE_VIEW_JSON = { 13 | 14 | "MY_DAY": { logic: "or", filter: { due: [0, getTodaysDayEnd_ISOString()], label: [MYDAY_LABEL] } }, 15 | "DUE_TODAY": { logic:"or", filter: { due: [0, getTodaysDayEnd_ISOString()] } }, 16 | "DUE_NEXT_SEVEN_DAYS":{logic:"or", filter: { due: [0, getSevenDaysEnd_ISOString()] }}, 17 | "HIGH_PRIORITY": { filter: { priority: 4 } }, 18 | "ALL_TASKS": {}, 19 | "HAVE_STARTED":{logic:"or", filter: { start: {before:getTimeNow_ISOString()}}} 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /src/i18n/.gitignore: -------------------------------------------------------------------------------- 1 | withHI.json 2 | -------------------------------------------------------------------------------- /src/pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import nextI18nextConfig from 'next-i18next.config' 2 | import Document, { 3 | Html, 4 | Head, 5 | Main, 6 | NextScript, 7 | DocumentProps, 8 | } from 'next/document' 9 | type Props = DocumentProps & { 10 | // add custom document props 11 | } 12 | class MyDocument extends Document { 13 | render() { 14 | const currentLocale = this.props.__NEXT_DATA__.locale ?? nextI18nextConfig.i18n.defaultLocale 15 | return ( 16 | 17 | 18 | 19 |
    20 | 21 | 22 | 23 | ) 24 | } 25 | } 26 | 27 | export default MyDocument -------------------------------------------------------------------------------- /src/pages/api/auth/[...nextauth].js: -------------------------------------------------------------------------------- 1 | import authProviders from "config/nextAuthProviders" 2 | import NextAuth from "next-auth" 3 | import SequelizeAdapter from "@auth/sequelize-adapter"; 4 | import { Sequelize } from "sequelize"; 5 | import { getSequelizeObj } from "@/helpers/api/db"; 6 | import { users } from "models/users"; 7 | import Account from "models/account"; 8 | import session from "models/session"; 9 | 10 | const sequelize = getSequelizeObj(false) 11 | 12 | export const authOptions = { 13 | // Configure one or more authentication providers 14 | providers:authProviders, 15 | adapter: SequelizeAdapter(sequelize,{ 16 | synchronize: false, 17 | 18 | }), 19 | callbacks: { 20 | session: async (session, user) => { 21 | // console.log("user, session", user, session) 22 | return Promise.resolve(session) 23 | }, 24 | async redirect({ url, baseUrl }) { 25 | return "/setup" 26 | }, 27 | 28 | }, 29 | 30 | } 31 | 32 | export default NextAuth(authOptions) -------------------------------------------------------------------------------- /src/pages/api/auth/inbuilt/check.js: -------------------------------------------------------------------------------- 1 | import { middleWareForAuthorisation } from "@/helpers/api/user"; 2 | 3 | export default async function checkLoginHandler(req, res) { 4 | if (req.method === 'GET') { 5 | if(await middleWareForAuthorisation(req, res)) 6 | { 7 | return res.status(200).json({ success: true, data: { message: 'LOGIN_OK'} }) 8 | 9 | }else{ 10 | return res.status(401).json({ success: false, data: { message: 'PLEASE_LOGIN'} }) 11 | 12 | } 13 | 14 | } 15 | return res.status(403).json({ success: 'false' ,data: {message: "INVALID_METHOD." }}) 16 | 17 | } -------------------------------------------------------------------------------- /src/pages/api/calendarsOLD/query.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/e0cfbf890aa3de461a21df4a24a9088bf045c08c/src/pages/api/calendarsOLD/query.js -------------------------------------------------------------------------------- /src/pages/api/filters/get.ts: -------------------------------------------------------------------------------- 1 | import { getFiltersFromDB } from '@/helpers/api/filter'; 2 | import { middleWareForAuthorisation, getUserIDFromLogin} from '@/helpers/api/user'; 3 | export default async function handler(req, res) { 4 | if (req.method === 'GET') { 5 | // console.log("req filters/get") 6 | if(await middleWareForAuthorisation(req, res)) 7 | { 8 | 9 | // var userid=await User.idFromAuthorisation(req.headers.authorization) 10 | const userid = await getUserIDFromLogin(req, res) 11 | if(userid==null){ 12 | return res.status(401).json({ success: false, data: { message: 'PLEASE_LOGIN'} }) 13 | 14 | } 15 | 16 | var allLabels= await getFiltersFromDB(userid) 17 | return res.status(200).json({ success: true, data: { message: allLabels} }) 18 | 19 | 20 | 21 | } 22 | else 23 | { 24 | return res.status(401).json({ success: false, data: { message: 'PLEASE_LOGIN'} }) 25 | 26 | } 27 | } 28 | else { 29 | return res.status(403).json({ success: 'false' ,data: {message: 'INVALID_METHOD'}}) 30 | } 31 | } -------------------------------------------------------------------------------- /src/pages/api/misc/parseics.js: -------------------------------------------------------------------------------- 1 | import { middleWareForAuthorisation } from "@/helpers/api/user" 2 | 3 | export default async function handler(req, res) { 4 | if (req.method === 'POST') { 5 | if(await middleWareForAuthorisation(req,res)) 6 | { 7 | var icalToolkit = require('ical-toolkit'); 8 | var json = icalToolkit.parseToJSON(req.body.ics); 9 | 10 | res.status(200).json({ success: true, data: { message: json} }) 11 | 12 | } 13 | else 14 | { 15 | res.status(401).json({ success: false, data: { message: 'PLEASE_LOGIN'} }) 16 | 17 | } 18 | }else { 19 | res.status(403).json({ success: false ,data: {message: 'INVALID_METHOD'}}) 20 | } 21 | } -------------------------------------------------------------------------------- /src/pages/api/oauth/status.ts: -------------------------------------------------------------------------------- 1 | export default async function handler(req, res) { 2 | if (req.method !== 'GET') { 3 | return res.status(403).json({ success: 'false' ,data: {message: 'INVALID_METHOD'}}) 4 | } 5 | let nextAuthStatus = false 6 | if(process.env.USE_NEXT_AUTH=="true"){ 7 | nextAuthStatus = true 8 | } 9 | // console.log("process.env nextAuthStatus", process.env.USE_NEXT_AUTH, nextAuthStatus) 10 | return res.status(200).json({ success: true ,data: {message: nextAuthStatus}}) 11 | } -------------------------------------------------------------------------------- /src/pages/api/users/settings/registrationstatus.js: -------------------------------------------------------------------------------- 1 | import { getRegistrationStatus, userRegistrationAllowed } from '@/helpers/api/settings'; 2 | export default async function handler(req, res) { 3 | if (req.method === 'GET') { 4 | const response = await userRegistrationAllowed() 5 | res.status(200).json({ success: true ,data: {message: response}}) 6 | 7 | }else 8 | { 9 | res.status(422).json({ success: false ,data: {message: "INVALID_METHOD"}}) 10 | 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/pages/api/v1/caldav/.gitignore: -------------------------------------------------------------------------------- 1 | registerV2.js 2 | -------------------------------------------------------------------------------- /src/pages/api/v1/labels/updatecache.js: -------------------------------------------------------------------------------- 1 | import { updateLabels } from '@/helpers/api/cal/labels'; 2 | import { getUserIDFromLogin, middleWareForAuthorisation, } from '@/helpers/api/user'; 3 | export default async function handler(req, res) { 4 | if (req.method === 'GET') { 5 | if(await middleWareForAuthorisation(req,res)) 6 | { 7 | // var userid=await User.idFromAuthorisation(req.headers.authorization) 8 | var userid = await getUserIDFromLogin(req, res) 9 | if(userid==null){ 10 | return res.status(401).json({ success: false, data: { message: 'PLEASE_LOGIN'} }) 11 | 12 | } 13 | 14 | const labels = await updateLabels(userid) 15 | res.status(200).json({ success: true, data: { message: "LABELS_UPDATED"} }) 16 | 17 | } 18 | else 19 | { 20 | res.status(401).json({ success: false, data: { message: 'PLEASE_LOGIN'} }) 21 | 22 | } 23 | } 24 | else { 25 | res.status(403).json({ success: false ,data: {message: 'INVALID_METHOD'}}) 26 | } 27 | } -------------------------------------------------------------------------------- /src/pages/api/v1/tests/codedecode.js: -------------------------------------------------------------------------------- 1 | import { AES } from "crypto-js" 2 | import CryptoJS from "crypto-js" 3 | export default async function handler(req, res) { 4 | if (req.method === 'GET') { 5 | res.status(401).json({ success: true, data: "NOPE_JUST_NOPE"}) 6 | 7 | /*var string = "test" 8 | var encoded = AES.encrypt(string, process.env.AES_PASSWORD).toString() 9 | console.log("encoded",encoded) 10 | console.log("decoded", CryptoJS.AES.decrypt(encoded, process.env.AES_PASSWORD).toString(CryptoJS.enc.Utf8)) 11 | 12 | res.status(200).json({ success: true, data: {string: req.query.string, encoded: encoded, decoded: "" } }) 13 | */ 14 | } 15 | } -------------------------------------------------------------------------------- /src/styles/fullcalendar.css: -------------------------------------------------------------------------------- 1 | .fc-widget-content { 2 | border-right: 2px solid #EE7 !important; /* Line thickness is 2px to better show */ 3 | } 4 | .fc-widget-content:first-child { 5 | border-right: inherit !important; /* Revert the first child */ 6 | } 7 | 8 | 9 | .fc-direction-ltr .fc-timegrid-now-indicator-arrow { 10 | 11 | left: 0; 12 | 13 | border-width: 10px 33px 10px 11px; 14 | 15 | border-radius: 0px 10px 10px 0px; 16 | 17 | opacity: .7; 18 | 19 | } 20 | 21 | .fc .fc-timegrid-now-indicator-arrow { 22 | 23 | position: absolute; 24 | 25 | z-index: 4; 26 | 27 | margin-top: -10px; 28 | 29 | border-style: solid; 30 | 31 | border-color: #F2CB05; 32 | 33 | } 34 | 35 | .fc .fc-timegrid-now-indicator-line { 36 | 37 | opacity: .7; 38 | 39 | position: absolute; 40 | 41 | z-index: 4; 42 | 43 | left: 0; 44 | 45 | right: 0; 46 | 47 | margin-top: -2px; 48 | 49 | border-style: solid; 50 | 51 | border-color: #F2CB05; 52 | 53 | border-color: var( — fc-now-indicator-color,#F2CB05); 54 | 55 | border-width: 5px 0 0; 56 | 57 | } -------------------------------------------------------------------------------- /src/styles/global.css: -------------------------------------------------------------------------------- 1 | 2 | .extra-padding { 3 | padding: 50 !important 4 | } 5 | 6 | h1{ 7 | font-size: 18px; 8 | } 9 | h2{ 10 | font-size: 16px; 11 | } 12 | 13 | h3{ 14 | font-size: 14px; 15 | } 16 | h4{ 17 | font-size: 12px; 18 | } 19 | 20 | p{ 21 | font-size: 12px; 22 | 23 | } 24 | 25 | .textDefault{ 26 | font-size: 12px; 27 | 28 | } 29 | 30 | .smallText{ 31 | font-size: 10px; 32 | 33 | } 34 | 35 | .badge{ 36 | background-color: green; 37 | } 38 | 39 | .taskDoneCheckbox{ 40 | height: 40px; 41 | } 42 | 43 | .btn-primary{ 44 | background-color: #881be4; 45 | border-color: #881be4; 46 | } 47 | .btn-primary:hover{ 48 | background-color: #cfa3f4; 49 | border-color: #cfa3f4; 50 | color: black; 51 | } 52 | .btn-primary::active{ 53 | background-color: #881be4; 54 | 55 | } 56 | 57 | a{ 58 | color: #881be4; 59 | } 60 | a:hover{ 61 | color: #cfa3f4; 62 | } 63 | 64 | .my-context-menu-dark{ 65 | background-color: "black" !important; 66 | color: "red" !important 67 | }; -------------------------------------------------------------------------------- /src/types/valarm.ts: -------------------------------------------------------------------------------- 1 | export interface vAlarm{ 2 | action: string; 3 | trigger: vAlarmTrigger; 4 | description?: string; 5 | repeat?: vAlarmRepeat; 6 | summary?:string 7 | attendees?:attendeeType[] 8 | } 9 | /** 10 | * 11 | */ 12 | interface vAlarmTrigger{ 13 | isRelated: boolean; 14 | value: string | number ; 15 | relatedTo?: string; 16 | } 17 | 18 | interface vAlarmRepeat{ 19 | repeat: number; 20 | duration: number; 21 | } 22 | 23 | export interface attendeeType{ 24 | commonName: string, 25 | email:string 26 | } 27 | -------------------------------------------------------------------------------- /stateStore/EventEditorStore.ts: -------------------------------------------------------------------------------- 1 | import { AlarmType } from '@/components/events/AlarmForm' 2 | import { atom } from 'jotai' 3 | 4 | export interface EventEditorInputType{ 5 | id: string | number | null, 6 | parentId?: string, 7 | category?: string[], 8 | priority?:number, 9 | taskDone?: boolean, 10 | end?: string, 11 | start?:string, 12 | summary?:string, 13 | calendar_id?:string | number, 14 | description?:string, 15 | alarms?: AlarmType[] 16 | isTemplate?:boolean, 17 | templateReturn?:Function 18 | templateData?:templateData 19 | 20 | } 21 | export interface templateData{ 22 | data?: string, 23 | calendar_id?:string 24 | } 25 | 26 | export const showEventEditorAtom = atom(false) 27 | export const eventEditorInputAtom = atom({id: null}) 28 | 29 | -------------------------------------------------------------------------------- /stateStore/LocalTaskFilters.ts: -------------------------------------------------------------------------------- 1 | import { atom } from 'jotai' 2 | 3 | export const showDoneTasks = atom(false) 4 | export const filterByLabels= atom([]) 5 | 6 | -------------------------------------------------------------------------------- /stateStore/MoveEventStore.ts: -------------------------------------------------------------------------------- 1 | import { atom } from "jotai"; 2 | 3 | export interface MoveEventModalInput{ 4 | id: string | number | null 5 | } 6 | export const showMoveEventModal= atom(false) 7 | export const moveEventModalInput = atom({id: null}) 8 | -------------------------------------------------------------------------------- /stateStore/SettingsStore.ts: -------------------------------------------------------------------------------- 1 | import { SETTING_NAME_DATE_FORMAT, SETTING_NAME_TIME_FORMAT } from '@/helpers/frontend/settings' 2 | import { atom } from 'jotai' 3 | 4 | 5 | export const currentSimpleDateFormatAtom = atom("DD/MM/YYYY") 6 | export const currentSimpleTimeFormatAtom = atom("HH:mm") 7 | 8 | export const currentDateFormatAtom = atom((get) => get(currentSimpleDateFormatAtom)+" "+get(currentSimpleTimeFormatAtom)) -------------------------------------------------------------------------------- /stateStore/TaskEditorStore.ts: -------------------------------------------------------------------------------- 1 | import { atom } from 'jotai' 2 | import { ParsedTask } from 'types/tasks/tasks' 3 | 4 | export interface TaskEditorInputType{ 5 | id: string | number | null, 6 | parentId?: string, 7 | category?: string[], 8 | priority?:number, 9 | taskDone?: boolean, 10 | due?: Date, 11 | start?:Date, 12 | summary?:string, 13 | calendar_id?:string | number, 14 | isTemplate?: boolean, 15 | rrule?:string, 16 | completion?:string | number, 17 | status?:string, 18 | description?:string, 19 | 20 | templateReturn?:Function, 21 | 22 | } 23 | export const showTaskEditorAtom = atom(false) 24 | export const taskEditorInputAtom = atom({id: null}) 25 | 26 | -------------------------------------------------------------------------------- /stateStore/ViewStore.ts: -------------------------------------------------------------------------------- 1 | import { PAGE_VIEW_JSON } from '@/helpers/viewHelpers/pages' 2 | import { atom } from 'jotai' 3 | import { useTranslation } from 'next-i18next' 4 | import { TaskFilter } from 'types/tasks/filters' 5 | 6 | interface calDavObject{ 7 | caldav_accounts_id: null | number, 8 | calendars_id: null | number 9 | } 10 | 11 | export const currentViewAtom = atom("tasklist") 12 | export const currentPageAtom = atom("MY_DAY") 13 | export const currentPageTitleAtom = atom("") 14 | export const calDavObjectAtom = atom({caldav_accounts_id: null, calendars_id:null}) 15 | 16 | export const updateViewAtom = atom(Date.now()) 17 | export const updateCalendarViewAtom = atom(Date.now()) 18 | export const filterAtom = atom(PAGE_VIEW_JSON["MY_DAY"]) 19 | 20 | //Filter value provided to the component. 21 | // This will be derived from the currentPage variable. 22 | 23 | // export const filterAtom = atom((get)=>{ 24 | // const currentP = get(currentPageAtom) 25 | // return PAGE_VIEW_JSON[currentP] 26 | // }) -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": [ 4 | "dom", 5 | "dom.iterable", 6 | "esnext" 7 | ], 8 | "paths": { 9 | "@/*": [ 10 | "./src/*" 11 | ] 12 | }, 13 | "baseUrl": ".", 14 | "allowJs": true, 15 | "skipLibCheck": true, 16 | "strict": false, 17 | "forceConsistentCasingInFileNames": true, 18 | "noEmit": true, 19 | "incremental": true, 20 | "esModuleInterop": true, 21 | "module": "esnext", 22 | "moduleResolution": "node", 23 | "resolveJsonModule": true, 24 | "isolatedModules": true, 25 | "jsx": "preserve", 26 | "plugins": [ 27 | { 28 | "name": "next" 29 | } 30 | ], 31 | "strictNullChecks": true, 32 | "target": "ES2017" 33 | }, 34 | "include": [ 35 | "next-env.d.ts", 36 | "**/*.js", 37 | "**/*.ts", 38 | "**/*.tsx", 39 | "jest.config.js.old", 40 | ".next/types/**/*.ts" 41 | ], 42 | "exclude": [ 43 | "node_modules" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /types/recurrence.ts: -------------------------------------------------------------------------------- 1 | export interface RruleObject{ 2 | 3 | FREQ?: string; 4 | UNTIL?: string; 5 | INTERVAL?: string; 6 | COUNT?: string; 7 | 8 | } -------------------------------------------------------------------------------- /types/tasks/filters.ts: -------------------------------------------------------------------------------- 1 | export interface TaskFilter{ 2 | logic?: "or" | "and", 3 | filter?: basicFilter 4 | } 5 | 6 | interface basicFilter{ 7 | due?: [number, number], 8 | label?:string, 9 | priority?:number 10 | } -------------------------------------------------------------------------------- /types/tasks/tasks.ts: -------------------------------------------------------------------------------- 1 | export interface ParsedTask{ 2 | due?: string 3 | dtstamp?: string 4 | uid?: string 5 | categories?: string[] 6 | completed?: string 7 | summary?: string 8 | created?: string 9 | completion?: string | number 10 | status?: string 11 | relatedto?: string | relatedToType | relatedToType[] 12 | priority?: string | number 13 | recurrenceid?: string 14 | description?: string 15 | start?: string 16 | class?: string 17 | rrule?: rruleType 18 | geo?: string 19 | location?: string 20 | organizer?: string 21 | sequence?: number | string 22 | resources?: string | string[] 23 | url?: string 24 | recurrences?: ParsedTask[] 25 | tz?: string 26 | 27 | } 28 | 29 | export interface relatedToType { 30 | params: { 31 | RELTYPE: string 32 | 33 | }, 34 | val: string 35 | } 36 | export interface rruleType { 37 | FREQ: string, 38 | INTERVAL: string | number, 39 | UNTIL?: string 40 | COUNT?: number 41 | } 42 | 43 | export interface optionsType { 44 | strict: boolean 45 | } --------------------------------------------------------------------------------