diff --git a/.tool-versions b/.tool-versions index e4f68f147..e67e68a3b 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -elixir 1.14.1-otp-25 -erlang 25.1.1 +elixir 1.14.3-otp-25 +erlang 25.2.1 diff --git a/js/package.json b/js/package.json index 9d1585ca1..d73a875ce 100644 --- a/js/package.json +++ b/js/package.json @@ -49,7 +49,7 @@ "@tiptap/vue-3": "^2.0.0-beta.96", "@vue-a11y/announcer": "^2.1.0", "@vue-a11y/skip-to": "^2.1.2", - "@vue-leaflet/vue-leaflet": "^0.6.1", + "@vue-leaflet/vue-leaflet": "^0.8.0", "@vue/apollo-composable": "^4.0.0-beta.1", "@vue/compiler-sfc": "^3.2.37", "@vueuse/core": "^9.1.0", @@ -67,18 +67,28 @@ "intersection-observer": "^0.12.0", "jwt-decode": "^3.1.2", "leaflet": "^1.4.0", - "leaflet.locatecontrol": "^0.78", + "leaflet.locatecontrol": "^0.79", "leaflet.markercluster": "^1.5.3", "lodash": "^4.17.11", "ngeohash": "^0.6.3", "p-debounce": "^4.0.0", "phoenix": "^1.6", "postcss": "^8", + "prosemirror-commands": "^1.5.0", + "prosemirror-dropcursor": "^1.6.1", + "prosemirror-gapcursor": "^1.3.1", + "prosemirror-history": "^1.3.0", + "prosemirror-keymap": "^1.2.0", + "prosemirror-model": "^1.19.0", + "prosemirror-schema-list": "^1.2.2", + "prosemirror-state": "^1.4.2", + "prosemirror-transform": "^1.7.1", + "prosemirror-view": "^1.30.0", "register-service-worker": "^1.7.2", "sanitize-html": "^2.5.3", "tailwindcss": "^3", "tippy.js": "^6.2.3", - "unfetch": "^4.2.0", + "unfetch": "^5.0.0", "vue": "^3.2.37", "vue-i18n": "9", "vue-material-design-icons": "^5.1.2", @@ -90,7 +100,7 @@ "zhyswan-vuedraggable": "^4.1.3" }, "devDependencies": { - "@histoire/plugin-vue": "^0.11.0", + "@histoire/plugin-vue": "^0.12.4", "@playwright/test": "^1.25.1", "@rushstack/eslint-patch": "^1.1.4", "@tailwindcss/forms": "^0.5.2", @@ -103,9 +113,9 @@ "@types/ngeohash": "^0.6.2", "@types/phoenix": "^1.5.2", "@types/sanitize-html": "^2.5.0", - "@vitejs/plugin-vue": "^3.0.3", - "@vitest/coverage-c8": "^0.25.2", - "@vitest/ui": "^0.25.2", + "@vitejs/plugin-vue": "^4.0.0", + "@vitest/coverage-c8": "^0.28.2", + "@vitest/ui": "^0.28.2", "@vue/eslint-config-prettier": "^7.0.0", "@vue/eslint-config-typescript": "^11.0.0", "@vue/test-utils": "^2.0.2", @@ -115,17 +125,17 @@ "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-vue": "^9.3.0", "flush-promises": "^1.0.2", - "histoire": "^0.11.0", - "jsdom": "^20.0.0", + "histoire": "^0.12.4", + "jsdom": "^21.1.0", "mock-apollo-client": "^1.1.0", "prettier": "^2.2.1", "prettier-eslint": "^15.0.1", "rollup-plugin-visualizer": "^5.7.1", "sass": "^1.34.1", - "typescript": "~4.8.3", - "vite": "^3.0.9", - "vite-plugin-pwa": "^0.13.0", - "vitest": "^0.25.2", + "typescript": "~4.9.4", + "vite": "^4.0.4", + "vite-plugin-pwa": "^0.14.1", + "vitest": "^0.28.2", "vue-i18n-extract": "^2.0.4" } } diff --git a/js/src/plugins/dateFns.ts b/js/src/plugins/dateFns.ts index 545428f0b..0a88a9e3e 100644 --- a/js/src/plugins/dateFns.ts +++ b/js/src/plugins/dateFns.ts @@ -5,10 +5,9 @@ export const dateFnsPlugin = { install(app: App, options: { locale: string }) { function dateFnsfileForLanguage(lang: string) { const matches: Record = { - en_US: "en-US", en: "en-US", }; - return matches[lang] ?? lang; + return matches[lang] ?? lang.replace("_", "-"); } import( diff --git a/js/src/utils/support.ts b/js/src/utils/support.ts deleted file mode 100644 index b49ef7d6c..000000000 --- a/js/src/utils/support.ts +++ /dev/null @@ -1,10 +0,0 @@ -export function supportsWebPFormat(): boolean { - const elem = document.createElement("canvas"); - - if (elem.getContext && elem.getContext("2d")) { - // was able or not to get WebP representation - return elem.toDataURL("image/webp").indexOf("data:image/webp") === 0; - } - // very old browser like IE 8, canvas not supported - return false; -} diff --git a/js/src/views/CategoriesView.vue b/js/src/views/CategoriesView.vue index 8568a75c0..26daefce0 100644 --- a/js/src/views/CategoriesView.vue +++ b/js/src/views/CategoriesView.vue @@ -103,6 +103,7 @@ import { import { useI18n } from "vue-i18n"; import { useEventCategories } from "@/composition/apollo/config"; import EmptyContent from "@/components/Utils/EmptyContent.vue"; +import { useHead } from "@vueuse/head"; const { t } = useI18n({ useScope: "global" }); @@ -150,4 +151,8 @@ const imageLicense = (categoryLicence: CategoryPictureLicencing): string => { }; const isLicencePanelOpen = ref(false); + +useHead({ + title: computed(() => t("Category list")), +}); diff --git a/js/src/views/Event/EditView.vue b/js/src/views/Event/EditView.vue index ddb78ce9a..d917583fa 100644 --- a/js/src/views/Event/EditView.vue +++ b/js/src/views/Event/EditView.vue @@ -70,7 +70,7 @@ class="datepicker starts-on" :placeholder="t('Type or select a date…')" icon="calendar-today" - :locale="$i18n.locale" + :locale="$i18n.locale.replace('_', '-')" v-model="beginsOn" horizontal-time-picker editable @@ -90,7 +90,7 @@ class="datepicker ends-on" :placeholder="t('Type or select a date…')" icon="calendar-today" - :locale="$i18n.locale" + :locale="$i18n.locale.replace('_', '-')" v-model="endsOn" horizontal-time-picker :min-datetime="beginsOn" diff --git a/js/src/views/Event/MyEventsView.vue b/js/src/views/Event/MyEventsView.vue index f34ba4443..65b30ead9 100644 --- a/js/src/views/Event/MyEventsView.vue +++ b/js/src/views/Event/MyEventsView.vue @@ -1,5 +1,5 @@ @@ -211,7 +215,7 @@ + + diff --git a/js/src/views/Group/MyGroups.vue b/js/src/views/Group/MyGroups.vue index 4808380d8..80bbf114e 100644 --- a/js/src/views/Group/MyGroups.vue +++ b/js/src/views/Group/MyGroups.vue @@ -1,5 +1,5 @@