Commit Graph

282 Commits

Author SHA1 Message Date
JC Brand
5a57ded243 Add support for the XEP-0333 displayed chat marker
Credit for this work goes to @deleolajide
2020-06-01 18:01:02 +02:00
JC Brand
ccd817cce1 Update to latest version of karma 2020-06-01 16:04:56 +02:00
Dele Olajide
cae5e9c875 Updates #1999 - Demarcate first unread message 2020-05-13 13:39:33 +02:00
JC Brand
7ebaac0b63 Explicitly add lit-element as dependency and update lockfile 2020-05-13 12:19:01 +02:00
JC Brand
2e82b82d7f Updated package-lock.json 2020-05-06 18:01:59 +02:00
JC Brand
089a54281e Bump various 3rd party dependencies 2020-04-29 16:01:33 +02:00
JC Brand
0c5593ed75 Various smaller fixes
- Fix failing tests.
- Bump timeout for emoji tests
- Remove unused files.
- Update features section.
2020-04-28 10:42:20 +02:00
JC Brand
ad4999384d Reduce unnecessary logging in tests 2020-04-23 13:52:21 +02:00
JC Brand
4b270359f6 Use Karma as test runner 2020-04-23 11:55:51 +02:00
JC Brand
7e23adf26f Remove the need for require.js to run tests 2020-04-22 12:10:39 +02:00
JC Brand
65246d0041 Update Makefile
- Don't unnecessarily build dist files
2020-04-21 14:25:27 +02:00
JC Brand
2696c26ffb Add new config setting allow_adhoc_commands 2020-04-17 15:01:12 +02:00
JC Brand
622abbe128 Downgrade style-loader
Webfonts don't load when running the dev server
2020-04-17 14:17:57 +02:00
JC Brand
5e91adbf4e Update various 3rd party dependencies 2020-04-17 11:40:14 +02:00
JC Brand
be3cbe6dc3 Downgrade dayjs
Due to this bug: https://github.com/iamkun/dayjs/issues/792
2020-04-15 17:47:50 +02:00
JC Brand
0660663161 Bump various 3rd party dependencies 2020-04-15 12:31:30 +02:00
JC Brand
df304a908f Manually merge translations from weblate 2020-04-13 14:29:39 +02:00
JC Brand
8824bb26c4 Bump various dependencies 2020-04-13 11:39:00 +02:00
JC Brand
ac4440f4bf Update 3rd party deps and disable XEP-156 to speed up tests 2020-04-10 21:13:37 +02:00
JC Brand
5b6a69e0ab Makefile: rebuild node-sass to fix build error on Travis
See: https://github.com/sass/node-sass/issues/1579#issuecomment-227663782
2020-04-07 14:13:49 +02:00
JC Brand
9c509eae4b Update to latest sass-loader 2020-04-07 14:08:01 +02:00
JC Brand
619cb8973d Update various 3rd party dependencies 2020-04-07 13:18:55 +02:00
JC Brand
321a54323e Allow moderators to retract their own messages...
when retractions are restricted to mods only
2020-03-26 10:35:08 +01:00
dependabot-preview[bot]
6a66ba7158
Bump @fortawesome/fontawesome-free from 5.9.0 to 5.13.0 (#1921)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.9.0 to 5.13.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.9.0...5.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-25 08:47:58 +01:00
JC Brand
4727f3b3bb Add support for optional chaining and nullish coalascing 2020-03-24 09:38:32 +01:00
JC Brand
00cac6d250 Add the ability to filter the results in the modtools modal 2020-03-23 14:34:19 +01:00
JC Brand
283a810d6b Use lit-html to render chatbox outlines 2020-03-21 17:21:53 +01:00
dependabot-preview[bot]
dda0838a12
Bump npm from 6.13.4 to 6.14.2 (#1906)
Bumps [npm](https://github.com/npm/cli) from 6.13.4 to 6.14.2.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.13.4...v6.14.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-18 09:06:22 +01:00
dependabot[bot]
49d8fdd237
Bump acorn from 6.2.0 to 6.4.1 (#1911)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.2.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.2.0...6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-17 14:05:57 +01:00
dependabot[bot]
da492fd753
Bump minimist from 1.2.0 to 1.2.2 (#1912)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.2.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-17 14:03:36 +01:00
JC Brand
ca012d4479 Update to newer Skeletor.js
`.forEach` on a Collection no longer returns the models, so need to
update some tests.
2020-03-12 15:24:29 +01:00
JC Brand
e691d858e3 Add version number and sized images to manifest.json 2020-03-03 16:00:57 +01:00
JC Brand
2ac33c77b3 Fix linting errors 2020-02-20 19:18:06 +01:00
dependabot-preview[bot]
56cbb69ad1
Bump mini-css-extract-plugin from 0.7.0 to 0.9.0 (#1878)
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.7.0 to 0.9.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.7.0...v0.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-20 13:07:14 +01:00
JC Brand
49817a850f MUC: Queue messages received before we're ready 2020-02-20 07:13:04 +01:00
dependabot-preview[bot]
bc48e413f1
Bump bootstrap from 4.3.1 to 4.4.1 (#1883)
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.3.1 to 4.4.1.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.3.1...v4.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-19 14:00:46 +01:00
JC Brand
0137eb88ae Smacks: Handle MUC messages received before the MUC exists 2020-02-19 13:39:07 +01:00
JC Brand
bcbde04530 Copy sounds dir to dist and use assets_path for sounds_path 2020-02-16 12:30:25 +01:00
JC Brand
a81e019427 Revert "Bump dayjs from 1.8.15 to 1.8.20 (#1881)"
This reverts commit 776bbe74ab.
2020-02-16 12:21:41 +01:00
JC Brand
f564a1edaf Show reason and actor for ban/kick events 2020-02-14 13:19:12 +01:00
dependabot-preview[bot]
da493430f8
Bump jsdoc from 3.6.2 to 3.6.3 (#1874)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.2 to 3.6.3.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/master/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.2...3.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-14 09:34:30 +01:00
dependabot-preview[bot]
776bbe74ab
Bump dayjs from 1.8.15 to 1.8.20 (#1881)
Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.8.15 to 1.8.20.
- [Release notes](https://github.com/iamkun/dayjs/releases)
- [Changelog](https://github.com/iamkun/dayjs/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/iamkun/dayjs/compare/v1.8.15...v1.8.20)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-14 09:24:08 +01:00
dependabot-preview[bot]
170d56b774
Bump autoprefixer from 9.6.1 to 9.7.4 (#1882)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 9.6.1 to 9.7.4.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/9.6.1...9.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-14 09:23:03 +01:00
JC Brand
3400acbfeb Show MUC buttons in a dropdown menu
- Get rid of the ChatBoxHeading class
- Add support for showing standalone buttons in overlay viewmode
2020-02-13 20:57:47 +01:00
JC Brand
2a7773dce5 Bump bootstrap.native 2020-02-13 20:03:48 +01:00
JC Brand
f6f7d05c8b Revert "Add terser minifier for webpack"
This reverts commit 34436b7f56.

I'm experiencing issues with map files while using the debugger in
the browser console.
2020-02-13 16:30:36 +01:00
JC Brand
34436b7f56 Add terser minifier for webpack 2020-02-13 14:42:59 +01:00
dependabot-preview[bot]
49fa881be8
[Security] Bump npm from 6.11.3 to 6.13.4 (#1870)
Bumps [npm](https://github.com/npm/cli) from 6.11.3 to 6.13.4. **This update includes security fixes.**
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.11.3...v6.13.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 11:31:36 +01:00
dependabot-preview[bot]
2598a8fa8d
[Security] Bump tar from 2.2.1 to 2.2.2 (#1869)
Bumps [tar](https://github.com/npm/node-tar) from 2.2.1 to 2.2.2. **This update includes a security fix.**
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v2.2.1...v2.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 10:01:13 +01:00
dependabot-preview[bot]
7fafabf7c4
Bump uglify-js from 3.7.4 to 3.7.7 (#1871)
Bumps [uglify-js](https://github.com/mishoo/UglifyJS2) from 3.7.4 to 3.7.7.
- [Release notes](https://github.com/mishoo/UglifyJS2/releases)
- [Commits](https://github.com/mishoo/UglifyJS2/compare/v3.7.4...v3.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 10:00:13 +01:00
dependabot-preview[bot]
c31b19a640
Bump webpack-merge from 4.2.1 to 4.2.2 (#1872)
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/survivejs/webpack-merge/releases)
- [Changelog](https://github.com/survivejs/webpack-merge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/survivejs/webpack-merge/compare/v4.2.1...v4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 09:59:43 +01:00
dependabot-preview[bot]
88ff2276e3
[Security] Bump fstream from 1.0.11 to 1.0.12 (#1862)
Bumps [fstream](https://github.com/npm/fstream) from 1.0.11 to 1.0.12. **This update includes a security fix.**
- [Release notes](https://github.com/npm/fstream/releases)
- [Commits](https://github.com/npm/fstream/compare/v1.0.11...v1.0.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:38:21 +01:00
dependabot-preview[bot]
e8b750c54f
[Security] Bump mixin-deep from 1.3.1 to 1.3.2 (#1866)
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2. **This update includes a security fix.**
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:38:01 +01:00
dependabot-preview[bot]
2a21a35a8e
[Security] Bump https-proxy-agent from 2.2.2 to 2.2.4 (#1864)
Bumps [https-proxy-agent](https://github.com/TooTallNate/node-https-proxy-agent) from 2.2.2 to 2.2.4. **This update includes security fixes.**
- [Release notes](https://github.com/TooTallNate/node-https-proxy-agent/releases)
- [Commits](https://github.com/TooTallNate/node-https-proxy-agent/compare/2.2.2...2.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:37:36 +01:00
dependabot-preview[bot]
788a3b930f
Bump install from 0.9.6 to 0.13.0 (#1865)
Bumps [install](https://github.com/benjamn/install) from 0.9.6 to 0.13.0.
- [Release notes](https://github.com/benjamn/install/releases)
- [Commits](https://github.com/benjamn/install/compare/v0.9.6...v0.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:36:54 +01:00
dependabot-preview[bot]
d893d7853b
Bump http-server from 0.11.1 to 0.12.1 (#1861)
Bumps [http-server](https://github.com/http-party/http-server) from 0.11.1 to 0.12.1.
- [Release notes](https://github.com/http-party/http-server/releases)
- [Commits](https://github.com/http-party/http-server/compare/0.11.1...v0.12.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:36:10 +01:00
dependabot-preview[bot]
177501a14a
Bump @babel/plugin-syntax-dynamic-import from 7.2.0 to 7.8.3 (#1867)
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.2.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:35:52 +01:00
dependabot-preview[bot]
a5b68b09ef
Bump sinon from 7.3.2 to 8.1.1 (#1868)
Bumps [sinon](https://github.com/sinonjs/sinon) from 7.3.2 to 8.1.1.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v7.3.2...v8.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:34:26 +01:00
JC Brand
976c3d6006 Remove the formdata and promise polyfills 2020-02-06 15:20:29 +01:00
JC Brand
7279f08a34 Update to newer skeletor which can return a promise on create 2020-02-03 23:24:44 +01:00
JC Brand
29aed314c1 Remove Backbone
* Remove backbone as NPM deps and from docs
* Remove backbone stuff from webpack
2020-01-30 17:36:55 +01:00
JC Brand
9fb2056753 Move MUC invite widget into a modal 2020-01-30 17:36:55 +01:00
JC Brand
ad93407907 Replace modal templates with lit-html components 2020-01-30 17:36:55 +01:00
JC Brand
a8104d7498 Add Skeletor as dependency 2020-01-30 17:36:55 +01:00
JC Brand
d8e561ef7e Fix linting errors 2019-12-20 16:02:53 +01:00
dependabot[bot]
115ee46e09 Bump npm from 6.11.3 to 6.13.4
Bumps [npm](https://github.com/npm/cli) from 6.11.3 to 6.13.4.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.11.3...v6.13.4)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-18 12:47:13 +02:00
JC Brand
0f63c84d5b core: properly clear cache in clearSession
Bump to latest backbone.browserStorage which adds the `clear` method
2019-12-11 15:44:56 +01:00
raphaelSeguin
97b8ecbbdf Display status avatars in the occupants list 2019-12-05 14:13:52 +01:00
JC Brand
e23c7ce543 More retraction updates
- Retracted moderated message are not editable
- Use "removed" for user-facing text
2019-11-26 22:04:38 +01:00
JC Brand
1fa203c990 Support for IndexedDB. updates #1105
Depend on latest backbone.browserStorage which has support for IndexedDB
via localforage.

Storage operations are now asynchronous and transactional.

Bugs fixed (mostly by waiting for operations to complete):

* Rooms are now fetched asynchronously, so wait before triggering `show`
  or when closing.
* Make sure chat create/update transactions complete before firing events
* Make sure chats and messages have been fetched before creating new ones.
* When doing a `fetch` with `wait: false` on a collection and then
  creating a model in that collection, then once the read
  operation finishes (after creating the model), the collection is emptied again.
* Patch and wait when saving.
  Otherwise we have previously set attributes overriding later ones.
* Make sure api.roomviews.close returns a promise

Test fixes:

* Chats are now asynchronously returned, so we need to use `await`
* Wait for the storage transaction to complete when creating and updating messages
* Wait for all chatboxes to close
    Otherwise we get sessionStorage inconsistencies due to the async nature of localforage.
* Wait for room views to close in spec/chatroom.js

In the process, remove the `closeAllChatBoxes` override in
converse-controlbox by letting the `close` method decide whether it
should be closed or not.
2019-10-30 13:02:23 +01:00
JC Brand
266fe131a9 Release 5.0.4 2019-10-08 14:22:56 +02:00
JC Brand
39896b508b Release 5.0.3 2019-09-13 15:19:00 +02:00
JC Brand
bdf4f3f536 Bump npm and lodash 2019-09-13 13:38:20 +02:00
JC Brand
5bf0955193 Release 5.0.2 2019-09-11 17:44:38 +02:00
JC Brand
54b3fc6dfc Update eslint 2019-09-09 13:13:23 +02:00
JC Brand
ef32050553 Update mobile.html 2019-09-09 12:49:36 +02:00
JC Brand
df7e3841a2 Add latest babel plugin for dynamic imports 2019-09-04 15:18:51 +02:00
JC Brand
12bca2298c Replace Bourbon with postcss/autoprefixer 2019-08-23 15:09:37 +02:00
JC Brand
9ae71104c2 webpack: split css out into separate file
- Add postcss with autoprefixer and cleancss
2019-08-23 14:56:10 +02:00
JC Brand
93de11d167 Dynamically load the dayjs translation.
Also, remove the Promise polyfill. We don't support browsers which don't support promises.
2019-08-23 14:03:52 +02:00
JC Brand
9f054dd767 Update webpack config
- hot reloading
- split config into dev and prod
2019-08-23 13:29:26 +02:00
JC Brand
76f2b66445 Add a po loader for webpack.
- Removes the need for generating and keeping json files
2019-08-23 11:42:37 +02:00
JC Brand
8aaf50d58c Use webpack's dynamic imports feature for fetching emoji JSON 2019-08-23 09:18:10 +02:00
JC Brand
8f571ff148 Release 5.0.1 2019-08-14 12:56:44 +02:00
JC Brand
bc27b3a36a Release 5.0.0 2019-08-08 18:13:12 +02:00
JC Brand
ade6266de8 Update backbone.overview and strophe.js 2019-08-08 12:45:17 +02:00
JC Brand
9a7dd99889 Ensure python 3.7 is used for sphinx and bump lerna version 2019-07-25 13:24:16 +02:00
JC Brand
30ad84d386 Update Lerna 2019-07-23 08:14:13 +02:00
JC Brand
a1630b5c1f Replace wait-until-promise with utility method
and bump default timeout

Also let `_converse.api.waitUntil` use it if a function is passed in.
2019-07-11 23:34:27 +02:00
JC Brand
8938245cdd Update various dependencies to their latest versions 2019-07-11 09:46:17 +02:00
JC Brand
168f29cf06 Only call credentials_url when authentication is set to login
Also update to newer strophe.js version which contains a bugfix.
2019-07-09 12:47:09 +02:00
JC Brand
98215deb21 Update to latest backbone.overview which debounces sorting on add event 2019-06-27 13:15:55 +02:00
Chaimaa ZEGOUMOU
a0b925ef6e Fixes #1071. x clear cross now same size as text (#1609) 2019-06-19 15:37:55 +02:00
JC Brand
dd91d3cc55 Use flexbox to keep the chat scrolled down
By using `display: flex` and `flex-direction: column-reverse`, the chat
now automatically scrolls down when loaded, without requiring any
extra JavaScript.

We still need to scroll down with JavaScript when sending a message.

By using `column-reverse`, the messages container now works in reverse.
So the newest message is the first element in the container and the
oldest message is the last. This is the reverse of before.

Due to this, this change will likely break some plugins.
2019-06-18 11:37:07 +02:00
JC Brand
83201e7c02 Reconnection fixes.
When reconnecting with a new transport, we call setUserJID
so that a new resource is generated, to avoid multiple
server-side sessions with the same resource.

We also call `_proto._doDisconnect` so that connection event handlers
for the old transport are removed.
2019-06-14 12:00:49 +02:00
JC Brand
91882e2b23 Bump clean-css and http-server versions 2019-06-12 06:45:13 +02:00
JC Brand
01fce55733 Add prettierx and tentatively use it for some formatting
I'm using prettierx, which is a fork of prettier so that we can have
spaces before the brackets in a function declaration.

I don't like how restrictive prettier is concerning its configuration
and formatting.

- it messes up some indentation in specs/
- it removes a second newline when I specifically want to have two
- it doesn't allow spaces before brackets in function declarations (hence prettierx)
- it adds spaces for function parameters with default values

None of this is configurable.

So auto-formatting is not turned on by default, but it might be a useful
tool in some cases.

Fixes an issue where indentation was off in converse-core.js, causing
vim-sleuth to wrongly indent by three spaces only.
2019-06-05 10:25:31 +02:00
JC Brand
f2ac9ef4d7 converse-muc: Support for XEP-0410 to check whether we're joined 2019-06-03 11:41:34 +02:00
JC Brand
3c6a17f85c Update to latest Strophe commit with explicit bind support 2019-06-03 10:02:57 +02:00
JC Brand
7b11d85503 Add support for XEP-0198 Stream Management
- New plugin `converse-smacks`
- New config option `enable_smacks`
- Rename session cache id from `converse.bosh-session` to `converse.session`
- Refactor logout and login as consistently used api methods
- Refactor session cache to store per JID

Fixes #316
2019-06-03 09:43:12 +02:00