For everyone, who will encounter VUE 3. Some things have changed a bit, because vue decided that some things have to be completely different.
- vue filters: they don't exist anymore, but they are officially written by vue via globalProperties, so the existing template entry "{{ variable | foo }}" is changed to "{{ $filters.foo(variable) }}" in the script then it changes from "this.$root.filters.foo(variable);" to "this.$filters.foo(variable);"
- filter price and price2 are merging, since it's practically 1 function, I've combined it, and where needed the price filter can be extended with a 2nd argument true, which will return "free" if the 1st argument is 0
- filter price now there is no need to write in connection with noescape or v-html filter, because it contains it internally (can be disabled by last argument true)
- extistence of filter noescape instead of writing everything to v-html, where sometimes the writing was built from something like "var + ' a b c ' + translation + ' / ' + translation" you can use a filter that supports writing to the tag normally as elsewhere, e.g. "{{ $filters.noescape(var)}} abc {{ translation } } / {{ translation }}"
- $root.t is not there anymore, it's new in globalProperties, so instead of "{{ $root.t.translation}}" in template it's "{{ t.translation }}" and in script instead of "this.$root.t.translation" it's "this.t.translation"
- In globalProperties new filters can be found (in $filters), t for translations, currency, lang for text language (e.g. cs -> hodise to urls), lang_id for language id
That should be all. If there's a problem somewhere, DM Slack, if necessary.