From 99ca6138183cfb19492fd53d0e3ed6b577d899a9 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 12 Dec 2023 16:51:54 +0000 Subject: [PATCH 01/48] Move 2 runners from Cypress to Playwright (#12034) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .github/workflows/cypress.yaml | 4 ++-- .github/workflows/end-to-end-tests.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cypress.yaml b/.github/workflows/cypress.yaml index ca6f38abfec..5b96cae48df 100644 --- a/.github/workflows/cypress.yaml +++ b/.github/workflows/cypress.yaml @@ -94,8 +94,8 @@ jobs: matrix: # Run tests using both crypto stacks crypto: [legacy, rust] - ci_node_total: [3] - ci_node_index: [0, 1, 2] + ci_node_total: [2] + ci_node_index: [0, 1] steps: # The version of chrome shipped by default may not be consistent across runners # so we explicitly use a specific version of chrome here. diff --git a/.github/workflows/end-to-end-tests.yaml b/.github/workflows/end-to-end-tests.yaml index c054d1cb460..c895376ced4 100644 --- a/.github/workflows/end-to-end-tests.yaml +++ b/.github/workflows/end-to-end-tests.yaml @@ -49,7 +49,7 @@ jobs: fail-fast: false matrix: # Run multiple instances in parallel to speed up the tests - runner: [1, 2, 3, 4, 5, 6] + runner: [1, 2, 3, 4, 5, 6, 7, 8] steps: # There's a 'download artifact' action, but it hasn't been updated for the workflow_run action # (https://github.com/actions/download-artifact/issues/60) so instead we get this mess: From c9008152c56e0dd441dbc31207267bd0aff07e0f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 12 Dec 2023 17:26:08 +0000 Subject: [PATCH 02/48] Migrate widgets/* from Cypress to Playwright (#12032) * Migrate send_event.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate read_events.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate kick.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate get-openid-token.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate layout.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate events.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate stickers.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate widget-pip-close.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix types Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add screenshot Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * expect.poll to stabilise test Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../get-openid-token.spec.ts | 141 --------- cypress/e2e/integration-manager/kick.spec.ts | 265 ----------------- .../integration-manager/read_events.spec.ts | 276 ------------------ .../integration-manager/send_event.spec.ts | 261 ----------------- cypress/e2e/widgets/events.spec.ts | 200 ------------- cypress/e2e/widgets/layout.spec.ts | 132 --------- cypress/e2e/widgets/widget-pip-close.spec.ts | 207 ------------- .../get-openid-token.spec.ts | 128 ++++++++ .../e2e/integration-manager/kick.spec.ts | 226 ++++++++++++++ .../integration-manager/read_events.spec.ts | 233 +++++++++++++++ .../integration-manager/send_event.spec.ts | 255 ++++++++++++++++ playwright/e2e/integration-manager/utils.ts | 25 ++ playwright/e2e/widgets/events.spec.ts | 176 +++++++++++ playwright/e2e/widgets/layout.spec.ts | 119 ++++++++ .../e2e/widgets/stickers.spec.ts | 136 ++++----- .../e2e/widgets/widget-pip-close.spec.ts | 169 +++++++++++ playwright/global.d.ts | 3 + playwright/pages/client.ts | 48 +++ playwright/plugins/webserver/index.ts | 2 +- .../layout.spec.ts/apps-drawer-linux.png | Bin 0 -> 6617 bytes 20 files changed, 1439 insertions(+), 1563 deletions(-) delete mode 100644 cypress/e2e/integration-manager/get-openid-token.spec.ts delete mode 100644 cypress/e2e/integration-manager/kick.spec.ts delete mode 100644 cypress/e2e/integration-manager/read_events.spec.ts delete mode 100644 cypress/e2e/integration-manager/send_event.spec.ts delete mode 100644 cypress/e2e/widgets/events.spec.ts delete mode 100644 cypress/e2e/widgets/layout.spec.ts delete mode 100644 cypress/e2e/widgets/widget-pip-close.spec.ts create mode 100644 playwright/e2e/integration-manager/get-openid-token.spec.ts create mode 100644 playwright/e2e/integration-manager/kick.spec.ts create mode 100644 playwright/e2e/integration-manager/read_events.spec.ts create mode 100644 playwright/e2e/integration-manager/send_event.spec.ts create mode 100644 playwright/e2e/integration-manager/utils.ts create mode 100644 playwright/e2e/widgets/events.spec.ts create mode 100644 playwright/e2e/widgets/layout.spec.ts rename {cypress => playwright}/e2e/widgets/stickers.spec.ts (52%) create mode 100644 playwright/e2e/widgets/widget-pip-close.spec.ts create mode 100644 playwright/snapshots/widgets/layout.spec.ts/apps-drawer-linux.png diff --git a/cypress/e2e/integration-manager/get-openid-token.spec.ts b/cypress/e2e/integration-manager/get-openid-token.spec.ts deleted file mode 100644 index b2dcb9146ae..00000000000 --- a/cypress/e2e/integration-manager/get-openid-token.spec.ts +++ /dev/null @@ -1,141 +0,0 @@ -/* -Copyright 2022 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { UserCredentials } from "../../support/login"; - -const ROOM_NAME = "Integration Manager Test"; -const USER_DISPLAY_NAME = "Alice"; - -const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; -const INTEGRATION_MANAGER_HTML = ` - - - Fake Integration Manager - - - - -

No response

- - - -`; - -function openIntegrationManager() { - cy.findByRole("button", { name: "Room info" }).click(); - cy.findByRole("button", { name: "Add widgets, bridges & bots" }).click(); -} - -function sendActionFromIntegrationManager(integrationManagerUrl: string) { - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.findByRole("button", { name: "Press to send action" }).should("exist").click(); - }); -} - -describe("Integration Manager: Get OpenID Token", () => { - let testUser: UserCredentials; - let homeserver: HomeserverInstance; - let integrationManagerUrl: string; - - beforeEach(() => { - cy.serveHtmlFile(INTEGRATION_MANAGER_HTML).then((url) => { - integrationManagerUrl = url; - }); - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, USER_DISPLAY_NAME, () => { - cy.window().then((win) => { - win.localStorage.setItem("mx_scalar_token", INTEGRATION_MANAGER_TOKEN); - win.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, INTEGRATION_MANAGER_TOKEN); - }); - }).then((user) => { - testUser = user; - }); - - cy.setAccountData("m.widgets", { - "m.integration_manager": { - content: { - type: "m.integration_manager", - name: "Integration Manager", - url: integrationManagerUrl, - data: { - api_url: integrationManagerUrl, - }, - }, - id: "integration-manager", - }, - }).as("integrationManager"); - - // Succeed when checking the token is valid - cy.intercept(`${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, (req) => { - req.continue((res) => { - return res.send(200, { - user_id: testUser.userId, - }); - }); - }); - - cy.createRoom({ - name: ROOM_NAME, - }).as("roomId"); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should successfully obtain an openID token", () => { - cy.all([cy.get<{}>("@integrationManager")]).then(() => { - cy.viewRoomByName(ROOM_NAME); - - openIntegrationManager(); - sendActionFromIntegrationManager(integrationManagerUrl); - - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response").within(() => { - cy.findByText(/access_token/); - }); - }); - }); - }); -}); diff --git a/cypress/e2e/integration-manager/kick.spec.ts b/cypress/e2e/integration-manager/kick.spec.ts deleted file mode 100644 index 7075c1c199f..00000000000 --- a/cypress/e2e/integration-manager/kick.spec.ts +++ /dev/null @@ -1,265 +0,0 @@ -/* -Copyright 2022 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { MatrixClient } from "../../global"; -import { UserCredentials } from "../../support/login"; - -const ROOM_NAME = "Integration Manager Test"; -const USER_DISPLAY_NAME = "Alice"; -const BOT_DISPLAY_NAME = "Bob"; -const KICK_REASON = "Goodbye"; - -const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; -const INTEGRATION_MANAGER_HTML = ` - - - Fake Integration Manager - - - - - - - - - -`; - -function openIntegrationManager() { - cy.findByRole("button", { name: "Room info" }).click(); - cy.findByRole("button", { name: "Add widgets, bridges & bots" }).click(); -} - -function closeIntegrationManager(integrationManagerUrl: string) { - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.findByRole("button", { name: "Press to close" }).should("exist").click(); - }); -} - -function sendActionFromIntegrationManager(integrationManagerUrl: string, targetRoomId: string, targetUserId: string) { - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#target-room-id").should("exist").type(targetRoomId); - cy.get("#target-user-id").should("exist").type(targetUserId); - cy.findByRole("button", { name: "Press to send action" }).should("exist").click(); - }); -} - -function clickUntilGone(selector: string, attempt = 0) { - if (attempt === 11) { - throw new Error("clickUntilGone attempt count exceeded"); - } - - cy.get(selector) - .last() - .click() - .then(($button) => { - const exists = Cypress.$(selector).length > 0; - if (exists) { - clickUntilGone(selector, ++attempt); - } - }); -} - -function expectKickedMessage(shouldExist: boolean) { - // Expand any event summaries, we can't use a click multiple here because clicking one might de-render others - // This is quite horrible but seems the most stable way of clicking 0-N buttons, - // one at a time with a full re-evaluation after each click - clickUntilGone(".mx_GenericEventListSummary_toggle[aria-expanded=false]"); - - // Check for the event message (or lack thereof) - cy.findByText(`${USER_DISPLAY_NAME} removed ${BOT_DISPLAY_NAME}: ${KICK_REASON}`).should( - shouldExist ? "exist" : "not.exist", - ); -} - -describe("Integration Manager: Kick", () => { - let testUser: UserCredentials; - let homeserver: HomeserverInstance; - let integrationManagerUrl: string; - - beforeEach(() => { - cy.serveHtmlFile(INTEGRATION_MANAGER_HTML).then((url) => { - integrationManagerUrl = url; - }); - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, USER_DISPLAY_NAME, () => { - cy.window().then((win) => { - win.localStorage.setItem("mx_scalar_token", INTEGRATION_MANAGER_TOKEN); - win.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, INTEGRATION_MANAGER_TOKEN); - }); - }).then((user) => { - testUser = user; - }); - - cy.setAccountData("m.widgets", { - "m.integration_manager": { - content: { - type: "m.integration_manager", - name: "Integration Manager", - url: integrationManagerUrl, - data: { - api_url: integrationManagerUrl, - }, - }, - id: "integration-manager", - }, - }).as("integrationManager"); - - // Succeed when checking the token is valid - cy.intercept(`${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, (req) => { - req.continue((res) => { - return res.send(200, { - user_id: testUser.userId, - }); - }); - }); - - cy.createRoom({ - name: ROOM_NAME, - }).as("roomId"); - - cy.getBot(homeserver, { displayName: BOT_DISPLAY_NAME, autoAcceptInvites: true }).as("bob"); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should kick the target", () => { - cy.all([cy.get("@bob"), cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then( - ([targetUser, roomId]) => { - const targetUserId = targetUser.getUserId(); - cy.viewRoomByName(ROOM_NAME); - cy.inviteUser(roomId, targetUserId); - cy.findByText(`${BOT_DISPLAY_NAME} joined the room`).should("exist"); - - openIntegrationManager(); - sendActionFromIntegrationManager(integrationManagerUrl, roomId, targetUserId); - closeIntegrationManager(integrationManagerUrl); - expectKickedMessage(true); - }, - ); - }); - - it("should not kick the target if lacking permissions", () => { - cy.all([cy.get("@bob"), cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then( - ([targetUser, roomId]) => { - const targetUserId = targetUser.getUserId(); - cy.viewRoomByName(ROOM_NAME); - cy.inviteUser(roomId, targetUserId); - cy.findByText(`${BOT_DISPLAY_NAME} joined the room`).should("exist"); - cy.getClient() - .then(async (client) => { - await client.sendStateEvent(roomId, "m.room.power_levels", { - kick: 50, - users: { - [testUser.userId]: 0, - }, - }); - }) - .then(() => { - openIntegrationManager(); - sendActionFromIntegrationManager(integrationManagerUrl, roomId, targetUserId); - closeIntegrationManager(integrationManagerUrl); - expectKickedMessage(false); - }); - }, - ); - }); - - it("should no-op if the target already left", () => { - cy.all([cy.get("@bob"), cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then( - ([targetUser, roomId]) => { - const targetUserId = targetUser.getUserId(); - cy.viewRoomByName(ROOM_NAME); - cy.inviteUser(roomId, targetUserId); - cy.findByText(`${BOT_DISPLAY_NAME} joined the room`) - .should("exist") - .then(async () => { - await targetUser.leave(roomId); - }) - .then(() => { - openIntegrationManager(); - sendActionFromIntegrationManager(integrationManagerUrl, roomId, targetUserId); - closeIntegrationManager(integrationManagerUrl); - expectKickedMessage(false); - }); - }, - ); - }); - - it("should no-op if the target was banned", () => { - cy.all([cy.get("@bob"), cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then( - ([targetUser, roomId]) => { - const targetUserId = targetUser.getUserId(); - cy.viewRoomByName(ROOM_NAME); - cy.inviteUser(roomId, targetUserId); - cy.findByText(`${BOT_DISPLAY_NAME} joined the room`).should("exist"); - cy.getClient() - .then(async (client) => { - await client.ban(roomId, targetUserId); - }) - .then(() => { - openIntegrationManager(); - sendActionFromIntegrationManager(integrationManagerUrl, roomId, targetUserId); - closeIntegrationManager(integrationManagerUrl); - expectKickedMessage(false); - }); - }, - ); - }); - - it("should no-op if the target was never a room member", () => { - cy.all([cy.get("@bob"), cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then( - ([targetUser, roomId]) => { - const targetUserId = targetUser.getUserId(); - cy.viewRoomByName(ROOM_NAME); - - openIntegrationManager(); - sendActionFromIntegrationManager(integrationManagerUrl, roomId, targetUserId); - closeIntegrationManager(integrationManagerUrl); - expectKickedMessage(false); - }, - ); - }); -}); diff --git a/cypress/e2e/integration-manager/read_events.spec.ts b/cypress/e2e/integration-manager/read_events.spec.ts deleted file mode 100644 index 65b195a3c72..00000000000 --- a/cypress/e2e/integration-manager/read_events.spec.ts +++ /dev/null @@ -1,276 +0,0 @@ -/* -Copyright 2022 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { UserCredentials } from "../../support/login"; - -const ROOM_NAME = "Integration Manager Test"; -const USER_DISPLAY_NAME = "Alice"; - -const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; -const INTEGRATION_MANAGER_HTML = ` - - - Fake Integration Manager - - - - - - - -

No response

- - - -`; - -function openIntegrationManager() { - cy.findByRole("button", { name: "Room info" }).click(); - cy.get(".mx_RoomSummaryCard_appsGroup").within(() => { - cy.findByRole("button", { name: "Add widgets, bridges & bots" }).click(); - }); -} - -function sendActionFromIntegrationManager( - integrationManagerUrl: string, - targetRoomId: string, - eventType: string, - stateKey: string | boolean, -) { - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#target-room-id").should("exist").type(targetRoomId); - cy.get("#event-type").should("exist").type(eventType); - cy.get("#state-key").should("exist").type(JSON.stringify(stateKey)); - cy.get("#send-action").should("exist").click(); - }); -} - -describe("Integration Manager: Read Events", () => { - let testUser: UserCredentials; - let homeserver: HomeserverInstance; - let integrationManagerUrl: string; - - beforeEach(() => { - cy.serveHtmlFile(INTEGRATION_MANAGER_HTML).then((url) => { - integrationManagerUrl = url; - }); - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, USER_DISPLAY_NAME, () => { - cy.window().then((win) => { - win.localStorage.setItem("mx_scalar_token", INTEGRATION_MANAGER_TOKEN); - win.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, INTEGRATION_MANAGER_TOKEN); - }); - }).then((user) => { - testUser = user; - }); - - cy.setAccountData("m.widgets", { - "m.integration_manager": { - content: { - type: "m.integration_manager", - name: "Integration Manager", - url: integrationManagerUrl, - data: { - api_url: integrationManagerUrl, - }, - }, - id: "integration-manager", - }, - }).as("integrationManager"); - - // Succeed when checking the token is valid - cy.intercept(`${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, (req) => { - req.continue((res) => { - return res.send(200, { - user_id: testUser.userId, - }); - }); - }); - - cy.createRoom({ - name: ROOM_NAME, - }).as("roomId"); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should read a state event by state key", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - const eventType = "io.element.integrations.installations"; - const eventContent = { - foo: "bar", - }; - const stateKey = "state-key-123"; - - // Send a state event - cy.getClient() - .then(async (client) => { - return await client.sendStateEvent(roomId, eventType, eventContent, stateKey); - }) - .then((event) => { - openIntegrationManager(); - - // Read state events - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response") - .should("include.text", event.event_id) - .should("include.text", `"content":${JSON.stringify(eventContent)}`); - }); - }); - }); - }); - - it("should read a state event with empty state key", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - const eventType = "io.element.integrations.installations"; - const eventContent = { - foo: "bar", - }; - const stateKey = ""; - - // Send a state event - cy.getClient() - .then(async (client) => { - return await client.sendStateEvent(roomId, eventType, eventContent, stateKey); - }) - .then((event) => { - openIntegrationManager(); - - // Read state events - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response") - .should("include.text", event.event_id) - .should("include.text", `"content":${JSON.stringify(eventContent)}`); - }); - }); - }); - }); - - it("should read state events with any state key", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - const eventType = "io.element.integrations.installations"; - - const stateKey1 = "state-key-123"; - const eventContent1 = { - foo1: "bar1", - }; - const stateKey2 = "state-key-456"; - const eventContent2 = { - foo2: "bar2", - }; - const stateKey3 = "state-key-789"; - const eventContent3 = { - foo3: "bar3", - }; - - // Send state events - cy.getClient() - .then(async (client) => { - return Promise.all([ - client.sendStateEvent(roomId, eventType, eventContent1, stateKey1), - client.sendStateEvent(roomId, eventType, eventContent2, stateKey2), - client.sendStateEvent(roomId, eventType, eventContent3, stateKey3), - ]); - }) - .then((events) => { - openIntegrationManager(); - - // Read state events - sendActionFromIntegrationManager( - integrationManagerUrl, - roomId, - eventType, - true, // Any state key - ); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response") - .should("include.text", events[0].event_id) - .should("include.text", `"content":${JSON.stringify(eventContent1)}`) - .should("include.text", events[1].event_id) - .should("include.text", `"content":${JSON.stringify(eventContent2)}`) - .should("include.text", events[2].event_id) - .should("include.text", `"content":${JSON.stringify(eventContent3)}`); - }); - }); - }); - }); - - it("should fail to read an event type which is not allowed", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - const eventType = "com.example.event"; - const stateKey = ""; - - openIntegrationManager(); - - // Read state events - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response").should("include.text", "Failed to read events"); - }); - }); - }); -}); diff --git a/cypress/e2e/integration-manager/send_event.spec.ts b/cypress/e2e/integration-manager/send_event.spec.ts deleted file mode 100644 index d8a746b4237..00000000000 --- a/cypress/e2e/integration-manager/send_event.spec.ts +++ /dev/null @@ -1,261 +0,0 @@ -/* -Copyright 2022 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { UserCredentials } from "../../support/login"; - -const ROOM_NAME = "Integration Manager Test"; -const USER_DISPLAY_NAME = "Alice"; - -const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; -const INTEGRATION_MANAGER_HTML = ` - - - Fake Integration Manager - - - - - - - - -

No response

- - - -`; - -function openIntegrationManager() { - cy.findByRole("button", { name: "Room info" }).click(); - cy.get(".mx_RoomSummaryCard_appsGroup").within(() => { - cy.findByRole("button", { name: "Add widgets, bridges & bots" }).click(); - }); -} - -function sendActionFromIntegrationManager( - integrationManagerUrl: string, - targetRoomId: string, - eventType: string, - stateKey: string, - content: Record, -) { - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#target-room-id").should("exist").type(targetRoomId); - cy.get("#event-type").should("exist").type(eventType); - if (stateKey) { - cy.get("#state-key").should("exist").type(stateKey); - } - cy.get("#event-content").should("exist").type(JSON.stringify(content), { parseSpecialCharSequences: false }); - cy.get("#send-action").should("exist").click(); - }); -} - -describe("Integration Manager: Send Event", () => { - let testUser: UserCredentials; - let homeserver: HomeserverInstance; - let integrationManagerUrl: string; - - beforeEach(() => { - cy.serveHtmlFile(INTEGRATION_MANAGER_HTML).then((url) => { - integrationManagerUrl = url; - }); - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, USER_DISPLAY_NAME, () => { - cy.window().then((win) => { - win.localStorage.setItem("mx_scalar_token", INTEGRATION_MANAGER_TOKEN); - win.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, INTEGRATION_MANAGER_TOKEN); - }); - }).then((user) => { - testUser = user; - }); - - cy.setAccountData("m.widgets", { - "m.integration_manager": { - content: { - type: "m.integration_manager", - name: "Integration Manager", - url: integrationManagerUrl, - data: { - api_url: integrationManagerUrl, - }, - }, - id: "integration-manager", - }, - }).as("integrationManager"); - - // Succeed when checking the token is valid - cy.intercept(`${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, (req) => { - req.continue((res) => { - return res.send(200, { - user_id: testUser.userId, - }); - }); - }); - - cy.createRoom({ - name: ROOM_NAME, - }).as("roomId"); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should send a state event", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - openIntegrationManager(); - - const eventType = "io.element.integrations.installations"; - const eventContent = { - foo: "bar", - }; - const stateKey = "state-key-123"; - - // Send the event - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey, eventContent); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response").should("include.text", "event_id"); - }); - - // Check the event - cy.getClient() - .then(async (client) => { - return await client.getStateEvent(roomId, eventType, stateKey); - }) - .then((event) => { - expect(event).to.deep.equal(eventContent); - }); - }); - }); - - it("should send a state event with empty content", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - openIntegrationManager(); - - const eventType = "io.element.integrations.installations"; - const eventContent = {}; - const stateKey = "state-key-123"; - - // Send the event - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey, eventContent); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response").should("include.text", "event_id"); - }); - - // Check the event - cy.getClient() - .then(async (client) => { - return await client.getStateEvent(roomId, eventType, stateKey); - }) - .then((event) => { - expect(event).to.be.empty; - }); - }); - }); - - it("should send a state event with empty state key", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - openIntegrationManager(); - - const eventType = "io.element.integrations.installations"; - const eventContent = { - foo: "bar", - }; - const stateKey = ""; - - // Send the event - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey, eventContent); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response").should("include.text", "event_id"); - }); - - // Check the event - cy.getClient() - .then(async (client) => { - return await client.getStateEvent(roomId, eventType, stateKey); - }) - .then((event) => { - expect(event).to.deep.equal(eventContent); - }); - }); - }); - - it("should fail to send an event type which is not allowed", () => { - cy.all([cy.get("@roomId"), cy.get<{}>("@integrationManager")]).then(([roomId]) => { - cy.viewRoomByName(ROOM_NAME); - - openIntegrationManager(); - - const eventType = "com.example.event"; - const eventContent = { - foo: "bar", - }; - const stateKey = ""; - - // Send the event - sendActionFromIntegrationManager(integrationManagerUrl, roomId, eventType, stateKey, eventContent); - - // Check the response - cy.accessIframe(`iframe[src*="${integrationManagerUrl}"]`).within(() => { - cy.get("#message-response").should("include.text", "Failed to send event"); - }); - }); - }); -}); diff --git a/cypress/e2e/widgets/events.spec.ts b/cypress/e2e/widgets/events.spec.ts deleted file mode 100644 index 58e4c096791..00000000000 --- a/cypress/e2e/widgets/events.spec.ts +++ /dev/null @@ -1,200 +0,0 @@ -/* -Copyright 2022 Mikhail Aheichyk -Copyright 2022 Nordeck IT + Consulting GmbH. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { IWidget } from "matrix-widget-api/src/interfaces/IWidget"; - -import type { MatrixClient } from "matrix-js-sdk/src/matrix"; -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { UserCredentials } from "../../support/login"; -import { waitForRoom } from "../utils"; - -const DEMO_WIDGET_ID = "demo-widget-id"; -const DEMO_WIDGET_NAME = "Demo Widget"; -const DEMO_WIDGET_TYPE = "demo"; -const ROOM_NAME = "Demo"; - -const DEMO_WIDGET_HTML = ` - - - Demo Widget - - - - - - -`; - -describe("Widget Events", () => { - let homeserver: HomeserverInstance; - let user: UserCredentials; - let bot: MatrixClient; - let demoWidgetUrl: string; - - beforeEach(() => { - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, "Mike").then((_user) => { - user = _user; - }); - cy.getBot(homeserver, { displayName: "Bot", autoAcceptInvites: true }).then((_bot) => { - bot = _bot; - }); - }); - cy.serveHtmlFile(DEMO_WIDGET_HTML).then((url) => { - demoWidgetUrl = url; - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should be updated if user is re-invited into the room with updated state event", () => { - cy.createRoom({ - name: ROOM_NAME, - invite: [bot.getUserId()], - }).then((roomId) => { - // setup widget via state event - cy.getClient() - .then(async (matrixClient) => { - const content: IWidget = { - id: DEMO_WIDGET_ID, - creatorUserId: "somebody", - type: DEMO_WIDGET_TYPE, - name: DEMO_WIDGET_NAME, - url: demoWidgetUrl, - }; - await matrixClient.sendStateEvent(roomId, "im.vector.modular.widgets", content, DEMO_WIDGET_ID); - }) - .as("widgetEventSent"); - - // set initial layout - cy.getClient() - .then(async (matrixClient) => { - const content = { - widgets: { - [DEMO_WIDGET_ID]: { - container: "top", - index: 1, - width: 100, - height: 0, - }, - }, - }; - await matrixClient.sendStateEvent(roomId, "io.element.widgets.layout", content, ""); - }) - .as("layoutEventSent"); - - // open the room - cy.viewRoomByName(ROOM_NAME); - - // approve capabilities - cy.get(".mx_WidgetCapabilitiesPromptDialog").within(() => { - cy.findByRole("button", { name: "Approve" }).click(); - }); - - cy.all([cy.get("@widgetEventSent"), cy.get("@layoutEventSent")]).then(async () => { - // bot creates a new room with 'm.room.topic' - const { room_id: roomNew } = await bot.createRoom({ - name: "New room", - initial_state: [ - { - type: "m.room.topic", - state_key: "", - content: { - topic: "topic initial", - }, - }, - ], - }); - - await bot.invite(roomNew, user.userId); - - // widget should receive 'm.room.topic' event after invite - cy.window().then(async (win) => { - await waitForRoom(win, win.mxMatrixClientPeg.get(), roomId, (room) => { - const events = room.getLiveTimeline().getEvents(); - return events.some( - (e) => - e.getType() === "net.widget_echo" && - e.getContent().type === "m.room.topic" && - e.getContent().content.topic === "topic initial", - ); - }); - }); - - // update the topic - await bot.sendStateEvent( - roomNew, - "m.room.topic", - { - topic: "topic updated", - }, - "", - ); - - await bot.invite(roomNew, user.userId, "something changed in the room"); - - // widget should receive updated 'm.room.topic' event after re-invite - cy.window().then(async (win) => { - await waitForRoom(win, win.mxMatrixClientPeg.get(), roomId, (room) => { - const events = room.getLiveTimeline().getEvents(); - return events.some( - (e) => - e.getType() === "net.widget_echo" && - e.getContent().type === "m.room.topic" && - e.getContent().content.topic === "topic updated", - ); - }); - }); - }); - }); - }); -}); diff --git a/cypress/e2e/widgets/layout.spec.ts b/cypress/e2e/widgets/layout.spec.ts deleted file mode 100644 index 16470fd5a0b..00000000000 --- a/cypress/e2e/widgets/layout.spec.ts +++ /dev/null @@ -1,132 +0,0 @@ -/* -Copyright 2022 Oliver Sand -Copyright 2022 Nordeck IT + Consulting GmbH. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -import { IWidget } from "matrix-widget-api"; - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; - -const ROOM_NAME = "Test Room"; -const WIDGET_ID = "fake-widget"; -const WIDGET_HTML = ` - - - Fake Widget - - - Hello World - - -`; - -describe("Widget Layout", () => { - let widgetUrl: string; - let homeserver: HomeserverInstance; - let roomId: string; - - beforeEach(() => { - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, "Sally"); - }); - cy.serveHtmlFile(WIDGET_HTML).then((url) => { - widgetUrl = url; - }); - - cy.createRoom({ - name: ROOM_NAME, - }).then((id) => { - roomId = id; - - // setup widget via state event - cy.getClient() - .then(async (matrixClient) => { - const content: IWidget = { - id: WIDGET_ID, - creatorUserId: "somebody", - type: "widget", - name: "widget", - url: widgetUrl, - }; - await matrixClient.sendStateEvent(roomId, "im.vector.modular.widgets", content, WIDGET_ID); - }) - .as("widgetEventSent"); - - // set initial layout - cy.getClient() - .then(async (matrixClient) => { - const content = { - widgets: { - [WIDGET_ID]: { - container: "top", - index: 1, - width: 100, - height: 0, - }, - }, - }; - await matrixClient.sendStateEvent(roomId, "io.element.widgets.layout", content, ""); - }) - .as("layoutEventSent"); - }); - - cy.all([cy.get("@widgetEventSent"), cy.get("@layoutEventSent")]).then(() => { - // open the room - cy.viewRoomByName(ROOM_NAME); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should be set properly", () => { - cy.get(".mx_AppsDrawer").percySnapshotElement("Widgets drawer on the timeline (AppsDrawer)"); - }); - - it("manually resize the height of the top container layout", () => { - cy.get('iframe[title="widget"]').invoke("height").should("be.lessThan", 250); - - cy.get(".mx_AppsDrawer_resizer_container_handle") - .trigger("mousedown") - .trigger("mousemove", { clientX: 0, clientY: 550, force: true }) - .trigger("mouseup", { clientX: 0, clientY: 550, force: true }); - - cy.get('iframe[title="widget"]').invoke("height").should("be.greaterThan", 400); - }); - - it("programatically resize the height of the top container layout", () => { - cy.get('iframe[title="widget"]').invoke("height").should("be.lessThan", 250); - - cy.getClient().then(async (matrixClient) => { - const content = { - widgets: { - [WIDGET_ID]: { - container: "top", - index: 1, - width: 100, - height: 100, - }, - }, - }; - await matrixClient.sendStateEvent(roomId, "io.element.widgets.layout", content, ""); - }); - - cy.get('iframe[title="widget"]').invoke("height").should("be.greaterThan", 400); - }); -}); diff --git a/cypress/e2e/widgets/widget-pip-close.spec.ts b/cypress/e2e/widgets/widget-pip-close.spec.ts deleted file mode 100644 index ca717947d0b..00000000000 --- a/cypress/e2e/widgets/widget-pip-close.spec.ts +++ /dev/null @@ -1,207 +0,0 @@ -/* -Copyright 2022 Mikhail Aheichyk -Copyright 2022 Nordeck IT + Consulting GmbH. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { IWidget } from "matrix-widget-api/src/interfaces/IWidget"; - -import type { MatrixClient, MatrixEvent } from "matrix-js-sdk/src/matrix"; -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { UserCredentials } from "../../support/login"; - -const DEMO_WIDGET_ID = "demo-widget-id"; -const DEMO_WIDGET_NAME = "Demo Widget"; -const DEMO_WIDGET_TYPE = "demo"; -const ROOM_NAME = "Demo"; - -const DEMO_WIDGET_HTML = ` - - - Demo Widget - - - - - - -`; - -// mostly copied from src/utils/WidgetUtils.waitForRoomWidget with small modifications -function waitForRoomWidget(win: Cypress.AUTWindow, widgetId: string, roomId: string, add: boolean): Promise { - const matrixClient = win.mxMatrixClientPeg.get(); - - return new Promise((resolve, reject) => { - function eventsInIntendedState(evList) { - const widgetPresent = evList.some((ev) => { - return ev.getContent() && ev.getContent()["id"] === widgetId; - }); - if (add) { - return widgetPresent; - } else { - return !widgetPresent; - } - } - - const room = matrixClient.getRoom(roomId); - - const startingWidgetEvents = room.currentState.getStateEvents("im.vector.modular.widgets"); - if (eventsInIntendedState(startingWidgetEvents)) { - resolve(); - return; - } - - function onRoomStateEvents(ev: MatrixEvent) { - if (ev.getRoomId() !== roomId || ev.getType() !== "im.vector.modular.widgets") return; - - const currentWidgetEvents = room.currentState.getStateEvents("im.vector.modular.widgets"); - - if (eventsInIntendedState(currentWidgetEvents)) { - matrixClient.removeListener(win.matrixcs.RoomStateEvent.Events, onRoomStateEvents); - resolve(); - } - } - - matrixClient.on(win.matrixcs.RoomStateEvent.Events, onRoomStateEvents); - }); -} - -describe("Widget PIP", () => { - let homeserver: HomeserverInstance; - let user: UserCredentials; - let bot: MatrixClient; - let demoWidgetUrl: string; - - function roomCreateAddWidgetPip(userRemove: "leave" | "kick" | "ban") { - cy.createRoom({ - name: ROOM_NAME, - invite: [bot.getUserId()], - }).then((roomId) => { - // sets bot to Admin and user to Moderator - cy.getClient() - .then((matrixClient) => { - return matrixClient.sendStateEvent(roomId, "m.room.power_levels", { - users: { - [user.userId]: 50, - [bot.getUserId()]: 100, - }, - }); - }) - .as("powerLevelsChanged"); - - // bot joins the room - cy.botJoinRoom(bot, roomId).as("botJoined"); - - // setup widget via state event - cy.getClient() - .then(async (matrixClient) => { - const content: IWidget = { - id: DEMO_WIDGET_ID, - creatorUserId: "somebody", - type: DEMO_WIDGET_TYPE, - name: DEMO_WIDGET_NAME, - url: demoWidgetUrl, - }; - await matrixClient.sendStateEvent(roomId, "im.vector.modular.widgets", content, DEMO_WIDGET_ID); - }) - .as("widgetEventSent"); - - // open the room - cy.viewRoomByName(ROOM_NAME); - - cy.all([ - cy.get("@powerLevelsChanged"), - cy.get("@botJoined"), - cy.get("@widgetEventSent"), - ]).then(() => { - cy.window().then(async (win) => { - // wait for widget state event - await waitForRoomWidget(win, DEMO_WIDGET_ID, roomId, true); - - // activate widget in pip mode - win.mxActiveWidgetStore.setWidgetPersistence(DEMO_WIDGET_ID, roomId, true); - - // checks that pip window is opened - cy.get(".mx_WidgetPip").should("exist"); - - // checks that widget is opened in pip - cy.accessIframe(`iframe[title="${DEMO_WIDGET_NAME}"]`).within({}, () => { - cy.get("#demo") - .should("exist") - .then(async () => { - const userId = user.userId; - if (userRemove == "leave") { - cy.getClient().then(async (matrixClient) => { - await matrixClient.leave(roomId); - }); - } else if (userRemove == "kick") { - await bot.kick(roomId, userId); - } else if (userRemove == "ban") { - await bot.ban(roomId, userId); - } - - // checks that pip window is closed - cy.get(".mx_WidgetPip").should("not.exist"); - }); - }); - }); - }); - }); - } - - beforeEach(() => { - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, "Mike").then((_user) => { - user = _user; - }); - cy.getBot(homeserver, { displayName: "Bot", autoAcceptInvites: false }).then((_bot) => { - bot = _bot; - }); - }); - cy.serveHtmlFile(DEMO_WIDGET_HTML).then((url) => { - demoWidgetUrl = url; - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); - - it("should be closed on leave", () => { - roomCreateAddWidgetPip("leave"); - }); - - it("should be closed on kick", () => { - roomCreateAddWidgetPip("kick"); - }); - - it("should be closed on ban", () => { - roomCreateAddWidgetPip("ban"); - }); -}); diff --git a/playwright/e2e/integration-manager/get-openid-token.spec.ts b/playwright/e2e/integration-manager/get-openid-token.spec.ts new file mode 100644 index 00000000000..c107bb2cbcb --- /dev/null +++ b/playwright/e2e/integration-manager/get-openid-token.spec.ts @@ -0,0 +1,128 @@ +/* +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import type { Page } from "@playwright/test"; +import { test, expect } from "../../element-web-test"; +import { openIntegrationManager } from "./utils"; + +const ROOM_NAME = "Integration Manager Test"; + +const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; +const INTEGRATION_MANAGER_HTML = ` + + + Fake Integration Manager + + + + +

No response

+ + + +`; + +async function sendActionFromIntegrationManager(page: Page, integrationManagerUrl: string) { + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await iframe.getByRole("button", { name: "Press to send action" }).click(); +} + +test.describe("Integration Manager: Get OpenID Token", () => { + test.use({ + displayName: "Alice", + room: async ({ user, app }, use) => { + const roomId = await app.client.createRoom({ + name: ROOM_NAME, + }); + await use({ roomId }); + }, + }); + + let integrationManagerUrl: string; + test.beforeEach(async ({ page, webserver }) => { + integrationManagerUrl = webserver.start(INTEGRATION_MANAGER_HTML); + + await page.addInitScript( + ({ token, integrationManagerUrl }) => { + window.localStorage.setItem("mx_scalar_token", token); + window.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, token); + }, + { + token: INTEGRATION_MANAGER_TOKEN, + integrationManagerUrl, + }, + ); + }); + + test.beforeEach(async ({ page, user, app, room }) => { + await app.client.setAccountData("m.widgets", { + "m.integration_manager": { + content: { + type: "m.integration_manager", + name: "Integration Manager", + url: integrationManagerUrl, + data: { + api_url: integrationManagerUrl, + }, + }, + id: "integration-manager", + }, + }); + + // Succeed when checking the token is valid + await page.route( + `${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, + async (route) => { + await route.fulfill({ + json: { + user_id: user.userId, + }, + }); + }, + ); + + await app.viewRoomByName(ROOM_NAME); + }); + + test("should successfully obtain an openID token", async ({ page }) => { + await openIntegrationManager(page); + await sendActionFromIntegrationManager(page, integrationManagerUrl); + + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response").getByText(/access_token/)).toBeVisible(); + }); +}); diff --git a/playwright/e2e/integration-manager/kick.spec.ts b/playwright/e2e/integration-manager/kick.spec.ts new file mode 100644 index 00000000000..b5ca6a1b3a5 --- /dev/null +++ b/playwright/e2e/integration-manager/kick.spec.ts @@ -0,0 +1,226 @@ +/* +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import type { Page } from "@playwright/test"; +import { test, expect } from "../../element-web-test"; +import { openIntegrationManager } from "./utils"; + +const ROOM_NAME = "Integration Manager Test"; +const USER_DISPLAY_NAME = "Alice"; +const BOT_DISPLAY_NAME = "Bob"; +const KICK_REASON = "Goodbye"; + +const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; +const INTEGRATION_MANAGER_HTML = ` + + + Fake Integration Manager + + + + + + + + + +`; + +async function closeIntegrationManager(page: Page, integrationManagerUrl: string) { + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await iframe.getByRole("button", { name: "Press to close" }).click(); +} + +async function sendActionFromIntegrationManager( + page: Page, + integrationManagerUrl: string, + targetRoomId: string, + targetUserId: string, +) { + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await iframe.locator("#target-room-id").fill(targetRoomId); + await iframe.locator("#target-user-id").fill(targetUserId); + await iframe.getByRole("button", { name: "Press to send action" }).click(); +} + +async function clickUntilGone(page: Page, selector: string, attempt = 0) { + if (attempt === 11) { + throw new Error("clickUntilGone attempt count exceeded"); + } + + await page.locator(selector).last().click(); + + const count = await page.locator(selector).count(); + if (count > 0) { + return clickUntilGone(page, selector, ++attempt); + } +} + +async function expectKickedMessage(page: Page, shouldExist: boolean) { + // Expand any event summaries, we can't use a click multiple here because clicking one might de-render others + // This is quite horrible but seems the most stable way of clicking 0-N buttons, + // one at a time with a full re-evaluation after each click + await clickUntilGone(page, ".mx_GenericEventListSummary_toggle[aria-expanded=false]"); + + // Check for the event message (or lack thereof) + await expect(page.getByText(`${USER_DISPLAY_NAME} removed ${BOT_DISPLAY_NAME}: ${KICK_REASON}`)).toBeVisible({ + visible: shouldExist, + }); +} + +test.describe("Integration Manager: Kick", () => { + test.use({ + displayName: "Alice", + room: async ({ user, app }, use) => { + const roomId = await app.client.createRoom({ + name: ROOM_NAME, + }); + await use({ roomId }); + }, + botCreateOpts: { + displayName: BOT_DISPLAY_NAME, + autoAcceptInvites: true, + }, + }); + + let integrationManagerUrl: string; + test.beforeEach(async ({ page, webserver }) => { + integrationManagerUrl = webserver.start(INTEGRATION_MANAGER_HTML); + + await page.addInitScript( + ({ token, integrationManagerUrl }) => { + window.localStorage.setItem("mx_scalar_token", token); + window.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, token); + }, + { + token: INTEGRATION_MANAGER_TOKEN, + integrationManagerUrl, + }, + ); + }); + + test.beforeEach(async ({ page, user, app, room }) => { + await app.client.setAccountData("m.widgets", { + "m.integration_manager": { + content: { + type: "m.integration_manager", + name: "Integration Manager", + url: integrationManagerUrl, + data: { + api_url: integrationManagerUrl, + }, + }, + id: "integration-manager", + }, + }); + + // Succeed when checking the token is valid + await page.route( + `${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, + async (route) => { + await route.fulfill({ + json: { + user_id: user.userId, + }, + }); + }, + ); + + await app.viewRoomByName(ROOM_NAME); + }); + + test("should kick the target", async ({ page, app, bot: targetUser, room }) => { + await app.viewRoomByName(ROOM_NAME); + await app.client.inviteUser(room.roomId, targetUser.credentials.userId); + await expect(page.getByText(`${BOT_DISPLAY_NAME} joined the room`)).toBeVisible(); + + await openIntegrationManager(page); + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, targetUser.credentials.userId); + await closeIntegrationManager(page, integrationManagerUrl); + await expectKickedMessage(page, true); + }); + + test("should not kick the target if lacking permissions", async ({ page, app, user, bot: targetUser, room }) => { + await app.viewRoomByName(ROOM_NAME); + await app.client.inviteUser(room.roomId, targetUser.credentials.userId); + await expect(page.getByText(`${BOT_DISPLAY_NAME} joined the room`)).toBeVisible(); + + await app.client.sendStateEvent(room.roomId, "m.room.power_levels", { + kick: 50, + users: { + [user.userId]: 0, + }, + }); + + await openIntegrationManager(page); + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, targetUser.credentials.userId); + await closeIntegrationManager(page, integrationManagerUrl); + await expectKickedMessage(page, false); + }); + + test("should no-op if the target already left", async ({ page, app, bot: targetUser, room }) => { + await app.viewRoomByName(ROOM_NAME); + await app.client.inviteUser(room.roomId, targetUser.credentials.userId); + await expect(page.getByText(`${BOT_DISPLAY_NAME} joined the room`)).toBeVisible(); + await targetUser.leave(room.roomId); + + await openIntegrationManager(page); + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, targetUser.credentials.userId); + await closeIntegrationManager(page, integrationManagerUrl); + await expectKickedMessage(page, false); + }); + + test("should no-op if the target was banned", async ({ page, app, bot: targetUser, room }) => { + await app.viewRoomByName(ROOM_NAME); + await app.client.inviteUser(room.roomId, targetUser.credentials.userId); + await expect(page.getByText(`${BOT_DISPLAY_NAME} joined the room`)).toBeVisible(); + await app.client.ban(room.roomId, targetUser.credentials.userId); + + await openIntegrationManager(page); + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, targetUser.credentials.userId); + await closeIntegrationManager(page, integrationManagerUrl); + await expectKickedMessage(page, false); + }); + + test("should no-op if the target was never a room member", async ({ page, app, bot: targetUser, room }) => { + await app.viewRoomByName(ROOM_NAME); + + await openIntegrationManager(page); + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, targetUser.credentials.userId); + await closeIntegrationManager(page, integrationManagerUrl); + await expectKickedMessage(page, false); + }); +}); diff --git a/playwright/e2e/integration-manager/read_events.spec.ts b/playwright/e2e/integration-manager/read_events.spec.ts new file mode 100644 index 00000000000..b178596674d --- /dev/null +++ b/playwright/e2e/integration-manager/read_events.spec.ts @@ -0,0 +1,233 @@ +/* +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import type { Page } from "@playwright/test"; +import { test, expect } from "../../element-web-test"; +import { openIntegrationManager } from "./utils"; + +const ROOM_NAME = "Integration Manager Test"; + +const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; +const INTEGRATION_MANAGER_HTML = ` + + + Fake Integration Manager + + + + + + + +

No response

+ + + +`; + +async function sendActionFromIntegrationManager( + page: Page, + integrationManagerUrl: string, + targetRoomId: string, + eventType: string, + stateKey: string | boolean, +) { + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await iframe.locator("#target-room-id").fill(targetRoomId); + await iframe.locator("#event-type").fill(eventType); + await iframe.locator("#state-key").fill(JSON.stringify(stateKey)); + await iframe.locator("#send-action").click(); +} + +test.describe("Integration Manager: Read Events", () => { + test.use({ + displayName: "Alice", + room: async ({ user, app }, use) => { + const roomId = await app.client.createRoom({ + name: ROOM_NAME, + }); + await use({ roomId }); + }, + }); + + let integrationManagerUrl: string; + test.beforeEach(async ({ page, webserver }) => { + integrationManagerUrl = webserver.start(INTEGRATION_MANAGER_HTML); + + await page.addInitScript( + ({ token, integrationManagerUrl }) => { + window.localStorage.setItem("mx_scalar_token", token); + window.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, token); + }, + { + token: INTEGRATION_MANAGER_TOKEN, + integrationManagerUrl, + }, + ); + }); + + test.beforeEach(async ({ page, user, app, room }) => { + await app.client.setAccountData("m.widgets", { + "m.integration_manager": { + content: { + type: "m.integration_manager", + name: "Integration Manager", + url: integrationManagerUrl, + data: { + api_url: integrationManagerUrl, + }, + }, + id: "integration-manager", + }, + }); + + // Succeed when checking the token is valid + await page.route( + `${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, + async (route) => { + await route.fulfill({ + json: { + user_id: user.userId, + }, + }); + }, + ); + + await app.viewRoomByName(ROOM_NAME); + }); + + test("should read a state event by state key", async ({ page, app, room }) => { + const eventType = "io.element.integrations.installations"; + const eventContent = { + foo: "bar", + }; + const stateKey = "state-key-123"; + + // Send a state event + const sendEventResponse = await app.client.sendStateEvent(room.roomId, eventType, eventContent, stateKey); + await openIntegrationManager(page); + + // Read state events + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, eventType, stateKey); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText(sendEventResponse.event_id); + await expect(iframe.locator("#message-response")).toContainText(`"content":${JSON.stringify(eventContent)}`); + }); + + test("should read a state event with empty state key", async ({ page, app, room }) => { + const eventType = "io.element.integrations.installations"; + const eventContent = { + foo: "bar", + }; + const stateKey = ""; + + // Send a state event + const sendEventResponse = await app.client.sendStateEvent(room.roomId, eventType, eventContent, stateKey); + await openIntegrationManager(page); + + // Read state events + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, eventType, stateKey); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText(sendEventResponse.event_id); + await expect(iframe.locator("#message-response")).toContainText(`"content":${JSON.stringify(eventContent)}`); + }); + + test("should read state events with any state key", async ({ page, app, room }) => { + const eventType = "io.element.integrations.installations"; + + const stateKey1 = "state-key-123"; + const eventContent1 = { + foo1: "bar1", + }; + const stateKey2 = "state-key-456"; + const eventContent2 = { + foo2: "bar2", + }; + const stateKey3 = "state-key-789"; + const eventContent3 = { + foo3: "bar3", + }; + + // Send state events + const sendEventResponses = await Promise.all([ + app.client.sendStateEvent(room.roomId, eventType, eventContent1, stateKey1), + app.client.sendStateEvent(room.roomId, eventType, eventContent2, stateKey2), + app.client.sendStateEvent(room.roomId, eventType, eventContent3, stateKey3), + ]); + + await openIntegrationManager(page); + + // Read state events + await sendActionFromIntegrationManager( + page, + integrationManagerUrl, + room.roomId, + eventType, + true, // Any state key + ); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText(sendEventResponses[0].event_id); + await expect(iframe.locator("#message-response")).toContainText(`"content":${JSON.stringify(eventContent1)}`); + await expect(iframe.locator("#message-response")).toContainText(sendEventResponses[1].event_id); + await expect(iframe.locator("#message-response")).toContainText(`"content":${JSON.stringify(eventContent2)}`); + await expect(iframe.locator("#message-response")).toContainText(sendEventResponses[2].event_id); + await expect(iframe.locator("#message-response")).toContainText(`"content":${JSON.stringify(eventContent3)}`); + }); + + test("should fail to read an event type which is not allowed", async ({ page, room }) => { + const eventType = "com.example.event"; + const stateKey = ""; + + await openIntegrationManager(page); + + // Read state events + await sendActionFromIntegrationManager(page, integrationManagerUrl, room.roomId, eventType, stateKey); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText("Failed to read events"); + }); +}); diff --git a/playwright/e2e/integration-manager/send_event.spec.ts b/playwright/e2e/integration-manager/send_event.spec.ts new file mode 100644 index 00000000000..61bad8a3ec7 --- /dev/null +++ b/playwright/e2e/integration-manager/send_event.spec.ts @@ -0,0 +1,255 @@ +/* +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import type { Page } from "@playwright/test"; +import { test, expect } from "../../element-web-test"; +import { openIntegrationManager } from "./utils"; + +const ROOM_NAME = "Integration Manager Test"; + +const INTEGRATION_MANAGER_TOKEN = "DefinitelySecret_DoNotUseThisForReal"; +const INTEGRATION_MANAGER_HTML = ` + + + Fake Integration Manager + + + + + + + + +

No response

+ + + +`; + +async function sendActionFromIntegrationManager( + page: Page, + integrationManagerUrl: string, + targetRoomId: string, + eventType: string, + stateKey: string, + content: Record, +) { + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await iframe.locator("#target-room-id").fill(targetRoomId); + await iframe.locator("#event-type").fill(eventType); + if (stateKey) { + await iframe.locator("#state-key").fill(stateKey); + } + await iframe.locator("#event-content").fill(JSON.stringify(content)); + await iframe.locator("#send-action").click(); +} + +test.describe("Integration Manager: Send Event", () => { + test.use({ + displayName: "Alice", + room: async ({ user, app }, use) => { + const roomId = await app.client.createRoom({ + name: ROOM_NAME, + }); + await use({ roomId }); + }, + }); + + let integrationManagerUrl: string; + test.beforeEach(async ({ page, webserver }) => { + integrationManagerUrl = webserver.start(INTEGRATION_MANAGER_HTML); + + await page.addInitScript( + ({ token, integrationManagerUrl }) => { + window.localStorage.setItem("mx_scalar_token", token); + window.localStorage.setItem(`mx_scalar_token_at_${integrationManagerUrl}`, token); + }, + { + token: INTEGRATION_MANAGER_TOKEN, + integrationManagerUrl, + }, + ); + }); + + test.beforeEach(async ({ page, user, app, room }) => { + await app.client.setAccountData("m.widgets", { + "m.integration_manager": { + content: { + type: "m.integration_manager", + name: "Integration Manager", + url: integrationManagerUrl, + data: { + api_url: integrationManagerUrl, + }, + }, + id: "integration-manager", + }, + }); + + // Succeed when checking the token is valid + await page.route( + `${integrationManagerUrl}/account?scalar_token=${INTEGRATION_MANAGER_TOKEN}*`, + async (route) => { + await route.fulfill({ + json: { + user_id: user.userId, + }, + }); + }, + ); + + await app.viewRoomByName(ROOM_NAME); + await openIntegrationManager(page); + }); + + test("should send a state event", async ({ page, app, room }) => { + const eventType = "io.element.integrations.installations"; + const eventContent = { + foo: "bar", + }; + const stateKey = "state-key-123"; + + // Send the event + await sendActionFromIntegrationManager( + page, + integrationManagerUrl, + room.roomId, + eventType, + stateKey, + eventContent, + ); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText("event_id"); + + // Check the event + const event = await app.client.evaluate( + (cli, { room, eventType, stateKey }) => { + return cli.getStateEvent(room.roomId, eventType, stateKey); + }, + { room, eventType, stateKey }, + ); + expect(event).toMatchObject(eventContent); + }); + + test("should send a state event with empty content", async ({ page, app, room }) => { + const eventType = "io.element.integrations.installations"; + const eventContent = {}; + const stateKey = "state-key-123"; + + // Send the event + await sendActionFromIntegrationManager( + page, + integrationManagerUrl, + room.roomId, + eventType, + stateKey, + eventContent, + ); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText("event_id"); + + // Check the event + const event = await app.client.evaluate( + (cli, { room, eventType, stateKey }) => { + return cli.getStateEvent(room.roomId, eventType, stateKey); + }, + { room, eventType, stateKey }, + ); + expect(event).toMatchObject({}); + }); + + test("should send a state event with empty state key", async ({ page, app, room }) => { + const eventType = "io.element.integrations.installations"; + const eventContent = { + foo: "bar", + }; + const stateKey = ""; + + // Send the event + await sendActionFromIntegrationManager( + page, + integrationManagerUrl, + room.roomId, + eventType, + stateKey, + eventContent, + ); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText("event_id"); + + // Check the event + const event = await app.client.evaluate( + (cli, { room, eventType, stateKey }) => { + return cli.getStateEvent(room.roomId, eventType, stateKey); + }, + { room, eventType, stateKey }, + ); + expect(event).toMatchObject(eventContent); + }); + + test("should fail to send an event type which is not allowed", async ({ page, room }) => { + const eventType = "com.example.event"; + const eventContent = { + foo: "bar", + }; + const stateKey = ""; + + // Send the event + await sendActionFromIntegrationManager( + page, + integrationManagerUrl, + room.roomId, + eventType, + stateKey, + eventContent, + ); + + // Check the response + const iframe = page.frameLocator(`iframe[src*="${integrationManagerUrl}"]`); + await expect(iframe.locator("#message-response")).toContainText("Failed to send event"); + }); +}); diff --git a/playwright/e2e/integration-manager/utils.ts b/playwright/e2e/integration-manager/utils.ts new file mode 100644 index 00000000000..259ff732c79 --- /dev/null +++ b/playwright/e2e/integration-manager/utils.ts @@ -0,0 +1,25 @@ +/* +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import type { Page } from "@playwright/test"; + +export async function openIntegrationManager(page: Page) { + await page.getByRole("button", { name: "Room info" }).click(); + await page + .locator(".mx_RoomSummaryCard_appsGroup") + .getByRole("button", { name: "Add widgets, bridges & bots" }) + .click(); +} diff --git a/playwright/e2e/widgets/events.spec.ts b/playwright/e2e/widgets/events.spec.ts new file mode 100644 index 00000000000..a336bd2cfa1 --- /dev/null +++ b/playwright/e2e/widgets/events.spec.ts @@ -0,0 +1,176 @@ +/* +Copyright 2022 Mikhail Aheichyk +Copyright 2022 Nordeck IT + Consulting GmbH. +Copyright 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import { test } from "../../element-web-test"; +import { waitForRoom } from "../utils"; + +const DEMO_WIDGET_ID = "demo-widget-id"; +const DEMO_WIDGET_NAME = "Demo Widget"; +const DEMO_WIDGET_TYPE = "demo"; +const ROOM_NAME = "Demo"; + +const DEMO_WIDGET_HTML = ` + + + Demo Widget + + + + + + +`; + +test.describe("Widget Events", () => { + test.use({ + displayName: "Mike", + botCreateOpts: { displayName: "Bot", autoAcceptInvites: true }, + }); + + let demoWidgetUrl: string; + test.beforeEach(async ({ webserver }) => { + demoWidgetUrl = webserver.start(DEMO_WIDGET_HTML); + }); + + test("should be updated if user is re-invited into the room with updated state event", async ({ + page, + app, + user, + bot, + }) => { + const roomId = await app.client.createRoom({ + name: ROOM_NAME, + invite: [bot.credentials.userId], + }); + + // setup widget via state event + await app.client.sendStateEvent( + roomId, + "im.vector.modular.widgets", + { + id: DEMO_WIDGET_ID, + creatorUserId: "somebody", + type: DEMO_WIDGET_TYPE, + name: DEMO_WIDGET_NAME, + url: demoWidgetUrl, + }, + DEMO_WIDGET_ID, + ); + + // set initial layout + await app.client.sendStateEvent( + roomId, + "io.element.widgets.layout", + { + widgets: { + [DEMO_WIDGET_ID]: { + container: "top", + index: 1, + width: 100, + height: 0, + }, + }, + }, + "", + ); + + // open the room + await app.viewRoomByName(ROOM_NAME); + + // approve capabilities + await page.locator(".mx_WidgetCapabilitiesPromptDialog").getByRole("button", { name: "Approve" }).click(); + + // bot creates a new room with 'm.room.topic' + const roomNew = await bot.createRoom({ + name: "New room", + initial_state: [ + { + type: "m.room.topic", + state_key: "", + content: { + topic: "topic initial", + }, + }, + ], + }); + + await bot.inviteUser(roomNew, user.userId); + + // widget should receive 'm.room.topic' event after invite + await waitForRoom(page, app.client, roomId, (room) => { + const events = room.getLiveTimeline().getEvents(); + return events.some( + (e) => + e.getType() === "net.widget_echo" && + e.getContent().type === "m.room.topic" && + e.getContent().content.topic === "topic initial", + ); + }); + + // update the topic + await bot.sendStateEvent( + roomNew, + "m.room.topic", + { + topic: "topic updated", + }, + "", + ); + + await bot.inviteUser(roomNew, user.userId); + + // widget should receive updated 'm.room.topic' event after re-invite + await waitForRoom(page, app.client, roomId, (room) => { + const events = room.getLiveTimeline().getEvents(); + return events.some( + (e) => + e.getType() === "net.widget_echo" && + e.getContent().type === "m.room.topic" && + e.getContent().content.topic === "topic updated", + ); + }); + }); +}); diff --git a/playwright/e2e/widgets/layout.spec.ts b/playwright/e2e/widgets/layout.spec.ts new file mode 100644 index 00000000000..a5dd856a931 --- /dev/null +++ b/playwright/e2e/widgets/layout.spec.ts @@ -0,0 +1,119 @@ +/* +Copyright 2022 Oliver Sand +Copyright 2022 Nordeck IT + Consulting GmbH. +Copyright 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import { test, expect } from "../../element-web-test"; + +const ROOM_NAME = "Test Room"; +const WIDGET_ID = "fake-widget"; +const WIDGET_HTML = ` + + + Fake Widget + + + Hello World + + +`; + +test.describe("Widget Layout", () => { + test.use({ + displayName: "Sally", + }); + + let roomId: string; + let widgetUrl: string; + test.beforeEach(async ({ webserver, app, user }) => { + widgetUrl = webserver.start(WIDGET_HTML); + + roomId = await app.client.createRoom({ name: ROOM_NAME }); + + // setup widget via state event + await app.client.sendStateEvent( + roomId, + "im.vector.modular.widgets", + { + id: WIDGET_ID, + creatorUserId: "somebody", + type: "widget", + name: "widget", + url: widgetUrl, + }, + WIDGET_ID, + ); + + // set initial layout + await app.client.sendStateEvent( + roomId, + "io.element.widgets.layout", + { + widgets: { + [WIDGET_ID]: { + container: "top", + index: 1, + width: 100, + height: 0, + }, + }, + }, + "", + ); + + // open the room + await app.viewRoomByName(ROOM_NAME); + }); + + test("should be set properly", async ({ page }) => { + await expect(page.locator(".mx_AppsDrawer")).toMatchScreenshot("apps-drawer.png"); + }); + + test("manually resize the height of the top container layout", async ({ page }) => { + const iframe = page.locator('iframe[title="widget"]'); + expect((await iframe.boundingBox()).height).toBeLessThan(250); + + await page.locator(".mx_AppsDrawer_resizer_container_handle").hover(); + await page.mouse.down(); + await page.mouse.move(0, 550); + await page.mouse.up(); + + expect((await iframe.boundingBox()).height).toBeGreaterThan(400); + }); + + test("programmatically resize the height of the top container layout", async ({ page, app }) => { + const iframe = page.locator('iframe[title="widget"]'); + expect((await iframe.boundingBox()).height).toBeLessThan(250); + + await app.client.sendStateEvent( + roomId, + "io.element.widgets.layout", + { + widgets: { + [WIDGET_ID]: { + container: "top", + index: 1, + width: 100, + height: 500, + }, + }, + }, + "", + ); + + await expect.poll(async () => (await iframe.boundingBox()).height).toBeGreaterThan(400); + }); +}); diff --git a/cypress/e2e/widgets/stickers.spec.ts b/playwright/e2e/widgets/stickers.spec.ts similarity index 52% rename from cypress/e2e/widgets/stickers.spec.ts rename to playwright/e2e/widgets/stickers.spec.ts index d3e08f8405c..37aaea58cea 100644 --- a/cypress/e2e/widgets/stickers.spec.ts +++ b/playwright/e2e/widgets/stickers.spec.ts @@ -1,5 +1,5 @@ /* -Copyright 2022 The Matrix.org Foundation C.I.C. +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -/// - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; +import type { Page } from "@playwright/test"; +import { test, expect } from "../../element-web-test"; +import { ElementAppPage } from "../../pages/ElementAppPage"; const STICKER_PICKER_WIDGET_ID = "fake-sticker-picker"; const STICKER_PICKER_WIDGET_NAME = "Fake Stickers"; @@ -33,7 +33,7 @@ const STICKER_MESSAGE = JSON.stringify({ content: { body: STICKER_NAME, msgtype: "m.sticker", - url: "mxc://somewhere", + url: "mxc://localhost/somewhere", }, }, requestId: "1", @@ -66,108 +66,86 @@ const WIDGET_HTML = ` `; -function openStickerPicker() { - cy.openMessageComposerOptions().findByRole("menuitem", { name: "Sticker" }).click(); +async function openStickerPicker(app: ElementAppPage) { + const options = await app.openMessageComposerOptions(); + await options.getByRole("menuitem", { name: "Sticker" }).click(); } -function sendStickerFromPicker() { - // Note: Until https://github.com/cypress-io/cypress/issues/136 is fixed we will need - // to use `chromeWebSecurity: false` in our cypress config. Not even cy.origin() can - // break into the iframe for us :( - cy.accessIframe(`iframe[title="${STICKER_PICKER_WIDGET_NAME}"]`).within({}, () => { - cy.get("#sendsticker").should("exist").click(); - }); +async function sendStickerFromPicker(page: Page) { + const iframe = page.frameLocator(`iframe[title="${STICKER_PICKER_WIDGET_NAME}"]`); + await iframe.locator("#sendsticker").click(); // Sticker picker should close itself after sending. - cy.get(".mx_AppTileFullWidth#stickers").should("not.exist"); + await expect(page.locator(".mx_AppTileFullWidth#stickers")).not.toBeVisible(); } -function expectTimelineSticker(roomId: string) { +async function expectTimelineSticker(page: Page, roomId: string) { // Make sure it's in the right room - cy.get(".mx_EventTile_sticker > a").should("have.attr", "href").and("include", `/${roomId}/`); + await expect(page.locator(".mx_EventTile_sticker > a")).toHaveAttribute("href", new RegExp(`/${roomId}/`)); // Make sure the image points at the sticker image. We will briefly show it // using the thumbnail URL, but as soon as that fails, we will switch to the // download URL. - cy.get(`img[alt="${STICKER_NAME}"][src*="download/somewhere"]`).should("exist"); + await expect(page.locator(`img[alt="${STICKER_NAME}"]`)).toHaveAttribute( + "src", + new RegExp("/download/localhost/somewhere"), + ); } -describe("Stickers", () => { +test.describe("Stickers", () => { + test.use({ + displayName: "Sally", + }); + // We spin up a web server for the sticker picker so that we're not testing to see if // sysadmins can deploy sticker pickers on the same Element domain - we actually want // to make sure that cross-origin postMessage works properly. This makes it difficult // to write the test though, as we have to juggle iframe logistics. // // See sendStickerFromPicker() for more detail on iframe comms. - let stickerPickerUrl: string; - let homeserver: HomeserverInstance; - let userId: string; - - beforeEach(() => { - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, "Sally").then((user) => (userId = user.userId)); - }); - cy.serveHtmlFile(WIDGET_HTML).then((url) => { - stickerPickerUrl = url; - }); + test.beforeEach(async ({ webserver }) => { + stickerPickerUrl = webserver.start(WIDGET_HTML); }); - afterEach(() => { - cy.stopHomeserver(homeserver); - cy.stopWebServers(); - }); + test("should send a sticker to multiple rooms", async ({ page, app, user }) => { + const roomId1 = await app.client.createRoom({ name: ROOM_NAME_1 }); + const roomId2 = await app.client.createRoom({ name: ROOM_NAME_2 }); - it("should send a sticker to multiple rooms", () => { - cy.createRoom({ - name: ROOM_NAME_1, - }).as("roomId1"); - cy.createRoom({ - name: ROOM_NAME_2, - }).as("roomId2"); - cy.setAccountData("m.widgets", { + await app.client.setAccountData("m.widgets", { [STICKER_PICKER_WIDGET_ID]: { content: { type: "m.stickerpicker", name: STICKER_PICKER_WIDGET_NAME, url: stickerPickerUrl, - creatorUserId: userId, + creatorUserId: user.userId, }, - sender: userId, + sender: user.userId, state_key: STICKER_PICKER_WIDGET_ID, type: "m.widget", id: STICKER_PICKER_WIDGET_ID, }, - }).as("stickers"); - - cy.all([ - cy.get("@roomId1"), - cy.get("@roomId2"), - cy.get<{}>("@stickers"), // just want to wait for it to be set up - ]).then(([roomId1, roomId2]) => { - cy.viewRoomByName(ROOM_NAME_1); - cy.url().should("contain", `/#/room/${roomId1}`); - openStickerPicker(); - sendStickerFromPicker(); - expectTimelineSticker(roomId1); - - // Ensure that when we switch to a different room that the sticker - // goes to the right place - cy.viewRoomByName(ROOM_NAME_2); - cy.url().should("contain", `/#/room/${roomId2}`); - openStickerPicker(); - sendStickerFromPicker(); - expectTimelineSticker(roomId2); }); + + await app.viewRoomByName(ROOM_NAME_1); + await expect(page).toHaveURL(`/#/room/${roomId1}`); + await openStickerPicker(app); + await sendStickerFromPicker(page); + await expectTimelineSticker(page, roomId1); + + // Ensure that when we switch to a different room that the sticker + // goes to the right place + await app.viewRoomByName(ROOM_NAME_2); + await expect(page).toHaveURL(`/#/room/${roomId2}`); + await openStickerPicker(app); + await sendStickerFromPicker(page); + await expectTimelineSticker(page, roomId2); }); - it("should handle a sticker picker widget missing creatorUserId", () => { - cy.createRoom({ - name: ROOM_NAME_1, - }).as("roomId1"); - cy.setAccountData("m.widgets", { + test("should handle a sticker picker widget missing creatorUserId", async ({ page, app, user }) => { + const roomId1 = await app.client.createRoom({ name: ROOM_NAME_1 }); + + await app.client.setAccountData("m.widgets", { [STICKER_PICKER_WIDGET_ID]: { content: { type: "m.stickerpicker", @@ -175,19 +153,17 @@ describe("Stickers", () => { url: stickerPickerUrl, // No creatorUserId }, - sender: userId, + sender: user.userId, state_key: STICKER_PICKER_WIDGET_ID, type: "m.widget", id: STICKER_PICKER_WIDGET_ID, }, - }).as("stickers"); - - cy.all([cy.get("@roomId1"), cy.get<{}>("@stickers")]).then(([roomId1]) => { - cy.viewRoomByName(ROOM_NAME_1); - cy.url().should("contain", `/#/room/${roomId1}`); - openStickerPicker(); - sendStickerFromPicker(); - expectTimelineSticker(roomId1); }); + + await app.viewRoomByName(ROOM_NAME_1); + await expect(page).toHaveURL(`/#/room/${roomId1}`); + await openStickerPicker(app); + await sendStickerFromPicker(page); + await expectTimelineSticker(page, roomId1); }); }); diff --git a/playwright/e2e/widgets/widget-pip-close.spec.ts b/playwright/e2e/widgets/widget-pip-close.spec.ts new file mode 100644 index 00000000000..c8073a34051 --- /dev/null +++ b/playwright/e2e/widgets/widget-pip-close.spec.ts @@ -0,0 +1,169 @@ +/* +Copyright 2022 Mikhail Aheichyk +Copyright 2022 Nordeck IT + Consulting GmbH. +Copyright 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import type { IWidget } from "matrix-widget-api/src/interfaces/IWidget"; +import type { MatrixEvent, RoomStateEvent } from "matrix-js-sdk/src/matrix"; +import { test, expect } from "../../element-web-test"; +import { Client } from "../../pages/client"; + +const DEMO_WIDGET_ID = "demo-widget-id"; +const DEMO_WIDGET_NAME = "Demo Widget"; +const DEMO_WIDGET_TYPE = "demo"; +const ROOM_NAME = "Demo"; + +const DEMO_WIDGET_HTML = ` + + + Demo Widget + + + + + + +`; + +// mostly copied from src/utils/WidgetUtils.waitForRoomWidget with small modifications +async function waitForRoomWidget(client: Client, widgetId: string, roomId: string, add: boolean): Promise { + await client.evaluate( + (matrixClient, { widgetId, roomId, add }) => { + return new Promise((resolve, reject) => { + function eventsInIntendedState(evList: MatrixEvent[]) { + const widgetPresent = evList.some((ev) => { + return ev.getContent() && ev.getContent()["id"] === widgetId; + }); + if (add) { + return widgetPresent; + } else { + return !widgetPresent; + } + } + + const room = matrixClient.getRoom(roomId); + + const startingWidgetEvents = room.currentState.getStateEvents("im.vector.modular.widgets"); + if (eventsInIntendedState(startingWidgetEvents)) { + resolve(); + return; + } + + function onRoomStateEvents(ev: MatrixEvent) { + if (ev.getRoomId() !== roomId || ev.getType() !== "im.vector.modular.widgets") return; + + const currentWidgetEvents = room.currentState.getStateEvents("im.vector.modular.widgets"); + + if (eventsInIntendedState(currentWidgetEvents)) { + matrixClient.removeListener("RoomState.events" as RoomStateEvent.Events, onRoomStateEvents); + resolve(); + } + } + + matrixClient.on("RoomState.events" as RoomStateEvent.Events, onRoomStateEvents); + }); + }, + { widgetId, roomId, add }, + ); +} + +test.describe("Widget PIP", () => { + test.use({ + displayName: "Mike", + botCreateOpts: { displayName: "Bot", autoAcceptInvites: false }, + }); + + let demoWidgetUrl: string; + test.beforeEach(async ({ webserver }) => { + demoWidgetUrl = webserver.start(DEMO_WIDGET_HTML); + }); + + for (const userRemove of ["leave", "kick", "ban"] as const) { + test(`should be closed on ${userRemove}`, async ({ page, app, bot, user }) => { + const roomId = await app.client.createRoom({ + name: ROOM_NAME, + invite: [bot.credentials.userId], + }); + + // sets bot to Admin and user to Moderator + await app.client.sendStateEvent(roomId, "m.room.power_levels", { + users: { + [user.userId]: 50, + [bot.credentials.userId]: 100, + }, + }); + + // bot joins the room + await bot.joinRoom(roomId); + + // setup widget via state event + const content: IWidget = { + id: DEMO_WIDGET_ID, + creatorUserId: "somebody", + type: DEMO_WIDGET_TYPE, + name: DEMO_WIDGET_NAME, + url: demoWidgetUrl, + }; + await app.client.sendStateEvent(roomId, "im.vector.modular.widgets", content, DEMO_WIDGET_ID); + + // open the room + await app.viewRoomByName(ROOM_NAME); + + // wait for widget state event + await waitForRoomWidget(app.client, DEMO_WIDGET_ID, roomId, true); + + // activate widget in pip mode + await page.evaluate( + ({ widgetId, roomId }) => { + window.mxActiveWidgetStore.setWidgetPersistence(widgetId, roomId, true); + }, + { + widgetId: DEMO_WIDGET_ID, + roomId, + }, + ); + + // checks that pip window is opened + await expect(page.locator(".mx_WidgetPip")).toBeVisible(); + + // checks that widget is opened in pip + const iframe = page.frameLocator(`iframe[title="${DEMO_WIDGET_NAME}"]`); + await expect(iframe.locator("#demo")).toBeVisible(); + + const userId = user.userId; + if (userRemove == "leave") { + await app.client.leave(roomId); + } else if (userRemove == "kick") { + await bot.kick(roomId, userId); + } else if (userRemove == "ban") { + await bot.ban(roomId, userId); + } + + // checks that pip window is closed + await expect(iframe.locator(".mx_WidgetPip")).not.toBeVisible(); + }); + } +}); diff --git a/playwright/global.d.ts b/playwright/global.d.ts index c537d0a142e..166bfbe9931 100644 --- a/playwright/global.d.ts +++ b/playwright/global.d.ts @@ -25,6 +25,9 @@ declare global { mxSettingsStore: { setValue(settingName: string, roomId: string | null, level: SettingLevel, value: any): Promise; }; + mxActiveWidgetStore: { + setWidgetPersistence(widgetId: string, roomId: string | null, val: boolean): void; + }; matrixcs: typeof Matrix; } } diff --git a/playwright/pages/client.ts b/playwright/pages/client.ts index fcd0d86e02d..6c56cb90d3b 100644 --- a/playwright/pages/client.ts +++ b/playwright/pages/client.ts @@ -314,6 +314,54 @@ export class Client { }, credentials); } + /** + * Sets account data for the user. + * @param type The type of account data to set + * @param content The content to set + */ + public async setAccountData(type: string, content: IContent): Promise { + const client = await this.prepareClient(); + return client.evaluate( + async (client, { type, content }) => { + await client.setAccountData(type, content); + }, + { type, content }, + ); + } + + /** + * Sends a state event into the room. + * @param roomId ID of the room to send the event into + * @param eventType type of event to send + * @param content the event content to send + * @param stateKey the state key to use + */ + public async sendStateEvent( + roomId: string, + eventType: string, + content: IContent, + stateKey?: string, + ): Promise { + const client = await this.prepareClient(); + return client.evaluate( + async (client, { roomId, eventType, content, stateKey }) => { + return client.sendStateEvent(roomId, eventType, content, stateKey); + }, + { roomId, eventType, content, stateKey }, + ); + } + + /** + * Leaves the given room. + * @param roomId ID of the room to leave + */ + public async leave(roomId: string): Promise { + const client = await this.prepareClient(); + return client.evaluate(async (client, roomId) => { + await client.leave(roomId); + }, roomId); + } + /** * Sets the directory visibility for a room. * @param roomId ID of the room to set the directory visibility for diff --git a/playwright/plugins/webserver/index.ts b/playwright/plugins/webserver/index.ts index 2fe083f179b..1bc2cbfa429 100644 --- a/playwright/plugins/webserver/index.ts +++ b/playwright/plugins/webserver/index.ts @@ -33,7 +33,7 @@ export class Webserver { const address = this.server.address() as AddressInfo; console.log(`Started webserver at ${address.address}:${address.port}`); - return `http://localhost:${address.port}/`; + return `http://localhost:${address.port}`; } public stop(): void { diff --git a/playwright/snapshots/widgets/layout.spec.ts/apps-drawer-linux.png b/playwright/snapshots/widgets/layout.spec.ts/apps-drawer-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..20618f5d66e398decfd674f41b3af98c915d81c3 GIT binary patch literal 6617 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
  • 1O z#Z9!>dh5GBsTFzRx=Wn`tT`N5BjaKr%S?vFa-v%Y0 z^k(GO@lgd_55T|oX0$&uFaW2t_)&nNHu%B^XXdDV2)KKPzWYFH9e>A_sDnnPV17?Y z@0HTBUN3Lk$fy{YX9O1T?G@#ktNS^|aOdQfm`FPW2J9;g(W$8|tu4#1H7cs0CYNj| zW}N(E4j=vm5b31;U+oMdqh>~*H)eR8^JYYT0r>X9GyBI?ar#+yd;MdoVkZH`iZ;@z ziB)~l=dr!(xGP|~QN1>SPYZSif&*QzI?d3_x;k=YKW@iYpl;WG>_%TjptR?G;qE@b zWUJ@znLu4l*59U+%=F1{gfoLONl}%D_44>NF=`UcEsOJ56-` z_WAB5ed3~i+}ax0U~{p-^w+kVpE)eP-raxYc>L>Ko+3-A5=IJJkqqX$;1fOW{nvwC zrXFFdbHf*#lUFKR1eUIgzt1(wTAI5(O;Qpvouu^w=elkiwsWJjAu3JJq?pm;Xa$n! z$j=)jbMItgDj+pWQ#M40jX8#2rt?xKAUH2RhP+DK**zRVDcXNJt?9k1iDs<>{r1$h z<}^QWy6A(Kux>_x*C_jPTOOJzyV<` zM$-!M0-`+Q*ovT73G!re*E@KEgtq)~)EF%jwPU zvG++~OQJ3V``D1_o}$slSm0mQR8DZ8P$+a#AA!+;_s9u-Fc`_x7-!aDgbm4bn9kdW z9lMr)BIrJC0#(uFu*gFMlMbuFs^nZnhi7akRQ-X^qx` z5cFAEgM>VQr1Vucn`Eah~e zyu?I(Ada{(dN&oRO+RHwQ^_2I*K;}DsIHBz7{^ZNY=opLr}B@6ddL(dx-QFaITR=q z4qutsH=&kdwPy}rTX+W}fxo)gqBxz{7I{&i^Ry`2uczQdRQ!hwdkYwdfNZ^#kEfNB z+n{-)v5kkbT-UFh2lNYGc|M%yqTskF#e}GR3dlySh$uFLvgb0K7Oa zzdhZ|R9<4mhghXD$KWySS>b%d1UTmwKv)d{M0~i?>mn#K@PK!r)h3O0fP<==te4{ot{e(Jh#LoW>EC8e0SDHdWtU;?Zz_xtfw zO1T_>&>XhM<`OwLmK9!NUp^GaRv)|k=WqK!>=`&FT#>BRna;f z%C=2fm?UHP7g>`xx5uvx29{S=S_PE*a?Nu?NV9adt9Pz7_xhHt)d@3wA&JA`xQ|cL ze}cocp#;me(4s{7UZ0(ZlTT0edE0RFBZ~7CY>nDb{X)C&cgx~DkmpxvQ86*xS9(x# z7C~e>99dqJEHJtDdKYN=ywQJs9T?U_cED{a#qwJws&4=&Psi53OAEnGJ;F`rM^tm| zM#Cmj6kKhgh)b0hDnT=yQyV2fX<=X&6V#q%LWv`MFjPtc*#(vK7RSm!de2rp=ljg2 zsl)l-U;AZZ(+YgxiOb9Ekp_+nFR&WaWs2!byt>gHbF!mgCi-PDk|BjN8)w1bn6(pznu#<_2ooKjMFU@(&>XiH85jQ~;fo^YXRT+5##WY zpu$Md64>pHJieD6P6iqa-4TKci6b0d&Zs=MsJnN=}MoqvzEcz4zndCn1 z^(x?^C=tuR50ENn>;~9s@)8pt~iV+L{W*$KASf zh9sr>Mg(H1)HCqGgY_E@Kv&@p4A2dE+io2R>Qmi{_|Reo8Wc!Uxbc_&$F#l)Rpyy7 UrzghRz&Z%b-Peuw!_PPW8_KWkJ^%m! literal 0 HcmV?d00001 From dac1121ea7d05bfdcfe5906fb3b4e2daba9c6533 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:28:15 +0000 Subject: [PATCH 03/48] Update babel monorepo to v7.23.5 (#12039) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 410 +++++++++++++++++++++++++++++------------------------- 1 file changed, 219 insertions(+), 191 deletions(-) diff --git a/yarn.lock b/yarn.lock index 12fa6d49aaa..20355c08f1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,7 +80,7 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -88,31 +88,39 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" +"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": version "7.21.7" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" - integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.0.0", "@babel/core@^7.12.10": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" - integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" + integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.3" + "@babel/helpers" "^7.23.6" + "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -150,9 +158,9 @@ semver "^6.3.1" "@babel/eslint-plugin@^7.12.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.22.10.tgz#b84e0f029b8f78604c3f6797cd6208cad46fbcf5" - integrity sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.23.5.tgz#77d4703e9f83b81e9fc13382810372beb2f10f94" + integrity sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g== dependencies: eslint-rule-composer "^0.3.0" @@ -176,6 +184,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -201,14 +219,14 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" @@ -228,16 +246,16 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" + integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" @@ -251,10 +269,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -262,7 +280,7 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.21.5", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": +"@babel/helper-environment-visitor@^7.21.5", "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -289,7 +307,7 @@ dependencies: "@babel/types" "^7.21.5" -"@babel/helper-member-expression-to-functions@^7.22.15": +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== @@ -365,7 +383,7 @@ "@babel/traverse" "^7.21.5" "@babel/types" "^7.21.5" -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": +"@babel/helper-replace-supers@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -417,10 +435,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== "@babel/helper-wrap-function@^7.22.20": version "7.22.20" @@ -440,28 +458,28 @@ "@babel/traverse" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== +"@babel/helpers@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" + integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.22.13", "@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.14.7", "@babel/parser@^7.18.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16", "@babel/parser@^7.23.3": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" - integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.14.7", "@babel/parser@^7.18.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16", "@babel/parser@^7.23.3", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -703,10 +721,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz#9df2627bad7f434ed13eef3e61b2b65cafd4885b" - integrity sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ== +"@babel/plugin-transform-async-generator-functions@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -729,10 +747,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz#e99a3ff08f58edd28a8ed82481df76925a4ffca7" - integrity sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw== +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -744,19 +762,19 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz#56f2371c7e5bf6ff964d84c5dc4d4db5536b5159" - integrity sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ== +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" - integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== +"@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-compilation-targets" "^7.22.15" @@ -798,10 +816,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz#82625924da9ed5fb11a428efb02e43bc9a3ab13e" - integrity sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A== +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -814,20 +832,21 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz#dcd066d995f6ac6077e5a4ccb68322a01e23ac49" - integrity sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg== +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" @@ -838,10 +857,10 @@ "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz#489724ab7d3918a4329afb4172b2fd2cf3c8d245" - integrity sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A== +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -853,10 +872,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz#3a406d6083feb9487083bca6d2334a3c9b6c4808" - integrity sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A== +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -918,26 +937,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz#8a613d514b521b640344ed7c56afeff52f9413f8" - integrity sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz#2f8da42b75ba89e5cfcd677afd0856d52c0c2e68" - integrity sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw== +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz#509373753b5f7202fe1940e92fd075bd7874955f" - integrity sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog== +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== dependencies: "@babel/compat-data" "^7.23.3" "@babel/helper-compilation-targets" "^7.22.15" @@ -953,18 +972,18 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-catch-binding@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz#362c0b545ee9e5b0fa9d9e6fe77acf9d4c480027" - integrity sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A== +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz#92fc83f54aa3adc34288933fa27e54c13113f4be" - integrity sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg== +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -992,10 +1011,10 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz#5cd34a2ce6f2d008cc8f91d8dcc29e2c41466da6" - integrity sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA== +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-create-class-features-plugin" "^7.22.15" @@ -1147,14 +1166,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.12.11": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.3.tgz#d299e0140a7650684b95c62be2db0ef8c975143e" - integrity sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a" + integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" + "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" @@ -1178,25 +1197,25 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.3" - "@babel/plugin-transform-classes" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.3" - "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" @@ -1204,15 +1223,15 @@ "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.3" - "@babel/plugin-transform-numeric-separator" "^7.23.3" - "@babel/plugin-transform-object-rest-spread" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.3" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" "@babel/plugin-transform-parameters" "^7.23.3" "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" "@babel/plugin-transform-property-literals" "^7.23.3" "@babel/plugin-transform-regenerator" "^7.23.3" "@babel/plugin-transform-reserved-words" "^7.23.3" @@ -1281,9 +1300,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.9", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" - integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" + integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== dependencies: regenerator-runtime "^0.14.0" @@ -1305,7 +1324,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.18.5", "@babel/traverse@^7.21.5", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.20", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": +"@babel/traverse@^7.18.5", "@babel/traverse@^7.21.5", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.20": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== @@ -1321,6 +1340,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" + integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.21.5", "@babel/types@^7.3.3": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" @@ -1330,16 +1365,16 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.22.15": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" - integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.4.4": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.4.4": +"@babel/types@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== @@ -3613,28 +3648,28 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__traverse" "^7.0.6" babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== + version "0.4.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" + integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" semver "^6.3.1" babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== + version "0.5.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" + integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -3784,14 +3819,14 @@ browserslist@^4.21.3: node-releases "^2.0.8" update-browserslist-db "^1.0.10" -browserslist@^4.21.9, browserslist@^4.22.1: - version "4.22.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" update-browserslist-db "^1.0.13" bs58@^5.0.0: @@ -3880,10 +3915,10 @@ caniuse-lite@^1.0.30001449: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz#56a08885228edf62cbe1ac8980f2b5dae159997e" integrity sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg== -caniuse-lite@^1.0.30001541: - version "1.0.30001565" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz#a528b253c8a2d95d2b415e11d8b9942acc100c4f" - integrity sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w== +caniuse-lite@^1.0.30001565: + version "1.0.30001568" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz#53fa9297273c9a977a560663f48cbea1767518b7" + integrity sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A== caseless@~0.12.0: version "0.12.0" @@ -4205,19 +4240,12 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -core-js-compat@^3.31.0: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.2.tgz#3ea4563bfd015ad4e4b52442865b02c62aba5085" - integrity sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw== - dependencies: - browserslist "^4.22.1" - -core-js-compat@^3.33.1: - version "3.33.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" - integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== +core-js-compat@^3.31.0, core-js-compat@^3.33.1: + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" + integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== dependencies: - browserslist "^4.22.1" + browserslist "^4.22.2" core-js@^3.0.0: version "3.30.0" @@ -4519,7 +4547,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -4797,10 +4825,10 @@ electron-to-chromium@^1.4.284: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.385.tgz#1afd8d6280d510145148777b899ff481c65531ff" integrity sha512-L9zlje9bIw0h+CwPQumiuVlfMcV4boxRjFIWDcLfFqTZNbkwOExBzfmswytHawObQX4OUhtNv8gIiB21kOurIg== -electron-to-chromium@^1.4.535: - version "1.4.595" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz#fa33309eb9aabb7426915f8e166ec60f664e9ad4" - integrity sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ== +electron-to-chromium@^1.4.601: + version "1.4.610" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz#e17b22203f4aa2e1ed77759c720546d95a51186f" + integrity sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg== emittery@^0.13.1: version "0.13.1" @@ -7914,10 +7942,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== node-releases@^2.0.8: version "2.0.10" From 1f1d791270a97898230c14de34cf2a6c2c70723b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:28:26 +0000 Subject: [PATCH 04/48] Update dependency @types/jest to v29.5.11 (#12041) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1ade36cf58f..8541ace3421 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,7 @@ "@types/file-saver": "^2.0.3", "@types/fs-extra": "^11.0.0", "@types/glob-to-regexp": "^0.4.1", - "@types/jest": "29.5.10", + "@types/jest": "29.5.11", "@types/katex": "^0.16.0", "@types/lodash": "^4.14.168", "@types/modernizr": "^3.5.3", diff --git a/yarn.lock b/yarn.lock index 20355c08f1b..7141bc692e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2800,10 +2800,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@29.5.10": - version "29.5.10" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.10.tgz#a10fc5bab9e426081c12b2ef73d24d4f0c9b7f50" - integrity sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ== +"@types/jest@29.5.11": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" From 436f730d2bdf6eabc0ae6ca1f21916659309d4f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:28:38 +0000 Subject: [PATCH 05/48] Update dependency @types/node to v16.18.68 (#12042) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7141bc692e8..2053815c14a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2899,9 +2899,9 @@ undici-types "~5.26.4" "@types/node@^16", "@types/node@^16.18.39": - version "16.18.65" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.65.tgz#b07eb49a14a808777b82879288a7e6f5a296ccfa" - integrity sha512-5E9WgTy95B7i90oISjui9U5Zu7iExUPfU4ygtv4yXEy6zJFE3oQYHCnh5H1jZRPkjphJt2Ml3oQW6M0qtK534A== + version "16.18.68" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.68.tgz#3155f64a961b3d8d10246c80657f9a7292e3421a" + integrity sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg== "@types/normalize-package-data@^2.4.0": version "2.4.4" From 6cf2c0d437ef6fadca8f1f6ea524a023ba2bc247 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:28:44 +0000 Subject: [PATCH 06/48] Update dependency typescript to v5.3.3 (#12043) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8541ace3421..aff5c94f65d 100644 --- a/package.json +++ b/package.json @@ -233,7 +233,7 @@ "stylelint-config-standard": "^34.0.0", "stylelint-scss": "^5.0.0", "ts-node": "^10.9.1", - "typescript": "5.3.2" + "typescript": "5.3.3" }, "peerDependencies": { "postcss": "^8.4.19", diff --git a/yarn.lock b/yarn.lock index 2053815c14a..818e94f2f1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10035,10 +10035,10 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" - integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== +typescript@5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== ua-parser-js@^1.0.2: version "1.0.37" From 7ea9da52a2eacff3d0d6334c4ba87d8c2d807cd1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:37:18 +0000 Subject: [PATCH 07/48] Update dependency stylelint-config-standard to v35 (#12047) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index aff5c94f65d..013b6d998fa 100644 --- a/package.json +++ b/package.json @@ -230,7 +230,7 @@ "raw-loader": "^4.0.2", "rimraf": "^5.0.0", "stylelint": "^15.0.0", - "stylelint-config-standard": "^34.0.0", + "stylelint-config-standard": "^35.0.0", "stylelint-scss": "^5.0.0", "ts-node": "^10.9.1", "typescript": "5.3.3" diff --git a/yarn.lock b/yarn.lock index 818e94f2f1c..e6d336d8006 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9566,17 +9566,17 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== -stylelint-config-recommended@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz#c48a358cc46b629ea01f22db60b351f703e00597" - integrity sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ== +stylelint-config-recommended@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz#b395c7014838d2aaca1755eebd914d0bb5274994" + integrity sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ== -stylelint-config-standard@^34.0.0: - version "34.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz#309f3c48118a02aae262230c174282e40e766cf4" - integrity sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ== +stylelint-config-standard@^35.0.0: + version "35.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-35.0.0.tgz#f4574670affb72b6c99d2b5ca5ad010a11ee8d19" + integrity sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g== dependencies: - stylelint-config-recommended "^13.0.0" + stylelint-config-recommended "^14.0.0" stylelint-scss@^5.0.0: version "5.3.1" From 0f6b2f72b137a30ea82a0f146af8b364e1029ddd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:05:05 +0000 Subject: [PATCH 08/48] Update all non-major dependencies (#12038) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 49 +++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index e6d336d8006..01704120ac6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,9 +45,9 @@ tunnel "^0.0.6" "@adobe/css-tools@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" - integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== + version "4.3.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11" + integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw== "@ampproject/remapping@^2.2.0": version "2.2.1" @@ -58,9 +58,9 @@ "@jridgewell/trace-mapping" "^0.3.9" "@axe-core/playwright@^4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@axe-core/playwright/-/playwright-4.8.1.tgz#2785f73eb9f0ba1d003387f85730f235e0b424ac" - integrity sha512-KC1X++UdRAwMLRvB+BIKFheyLHUnbJTL0t0Wbv6TJMozn2V2QyEtAcN6jyUiudtGiLUGhHCtj/eWorBnVZ4dAA== + version "4.8.2" + resolved "https://registry.yarnpkg.com/@axe-core/playwright/-/playwright-4.8.2.tgz#5d5c47d859c8fccbbebda5b8b144fd789a979ee1" + integrity sha512-9KOhX2tNuvqn9DzpBNyqoqNKRZBrexeSiN9irQ0sEdq8zH13JnatepCJxobuXn4UopNy6iIpP4342beMiH+MSQ== dependencies: axe-core "~4.8.2" @@ -2570,9 +2570,9 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^6.0.0": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz#cf0835c33bc5ef00befb9e672b1e3e6a710e30e3" - integrity sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw== + version "6.1.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.5.tgz#0a635d0ad4a1a880089d967299d94e9cfc81fbe1" + integrity sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g== dependencies: "@adobe/css-tools" "^4.3.1" "@babel/runtime" "^7.9.2" @@ -3248,20 +3248,25 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.0.2, acorn-walk@^8.1.1: +acorn-walk@^8.0.2: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn-walk@^8.1.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" + integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + acorn@^8.1.0, acorn@^8.8.1, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== acorn@^8.4.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== agent-base@6: version "6.0.2" @@ -5145,9 +5150,9 @@ eslint-config-google@^0.14.0: integrity sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw== eslint-config-prettier@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-import-resolver-node@^0.3.9: version "0.3.9" @@ -5825,9 +5830,9 @@ fs-extra@^10.1.0: universalify "^2.0.0" fs-extra@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -9869,9 +9874,9 @@ truncate-utf8-bytes@^1.0.0: utf8-byte-length "^1.0.1" ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" From dc134978fcb201856fb8f626ed2de2389201ff22 Mon Sep 17 00:00:00 2001 From: ElementRobot Date: Wed, 13 Dec 2023 06:22:56 +0000 Subject: [PATCH 09/48] [create-pull-request] automated change (#12048) Co-authored-by: github-merge-queue --- src/i18n/strings/de_DE.json | 26 ++++++++++++- src/i18n/strings/et.json | 4 +- src/i18n/strings/fr.json | 69 +++++++++++++++++++++++++++++++++-- src/i18n/strings/id.json | 21 +++++++++++ src/i18n/strings/ru.json | 36 +++++++++++++----- src/i18n/strings/sk.json | 9 ++++- src/i18n/strings/sv.json | 27 +++++++++++++- src/i18n/strings/zh_Hans.json | 19 +++++----- 8 files changed, 180 insertions(+), 31 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 189bd039ca7..4a6f1b539ec 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -79,6 +79,7 @@ "next": "Weiter", "no": "Nein", "ok": "Ok", + "pause": "Pausieren", "pin": "Anheften", "play": "Abspielen", "proceed": "Fortfahren", @@ -422,11 +423,13 @@ "other": "und %(count)s weitere …", "one": "und ein weiterer …" }, + "android": "Android", "appearance": "Erscheinungsbild", "application": "Anwendung", "are_you_sure": "Bist du sicher?", "attachment": "Anhang", "authentication": "Authentifizierung", + "beta": "Beta", "camera": "Kamera", "cameras": "Kameras", "capabilities": "Funktionen", @@ -459,6 +462,7 @@ "identity_server": "Identitäts-Server", "image": "Bild", "integration_manager": "Integrationsverwaltung", + "ios": "iOS", "joined": "Beigetreten", "labs": "Labor", "legal": "Rechtliches", @@ -466,10 +470,12 @@ "loading": "Lade …", "location": "Standort", "low_priority": "Niedrige Priorität", + "matrix": "Matrix", "message": "Nachricht", "message_layout": "Nachrichtenlayout", "microphone": "Mikrofon", "model": "Modell", + "modern": "Modern", "mute": "Stummschalten", "n_members": { "other": "%(count)s Mitglieder", @@ -483,10 +489,12 @@ "one": "%(count)s Raum", "other": "%(count)s Räume" }, + "name": "Name", "no_results": "Keine Ergebnisse", "no_results_found": "Keine Ergebnisse", "not_trusted": "Nicht vertrauenswürdig", "off": "Aus", + "offline": "Offline", "on": "An", "options": "Optionen", "orphan_rooms": "Andere Räume", @@ -514,16 +522,21 @@ "secure_backup": "Verschlüsselte Sicherung", "security": "Sicherheit", "select_all": "Alle auswählen", + "server": "Server", "settings": "Einstellungen", "setup_secure_messages": "Richte sichere Nachrichten ein", "show_more": "Mehr zeigen", "someone": "Jemand", + "space": "Raum", + "sticker": "Sticker", "stickerpack": "Sticker-Paket", "success": "Erfolg", "suggestions": "Vorschläge", "support": "Unterstützung", "system_alerts": "Systembenachrichtigung", "theme": "Design", + "thread": "Thema", + "threads": "Themen", "timeline": "Verlauf", "trusted": "Vertrauenswürdig", "unavailable": "Nicht verfügbar", @@ -538,6 +551,8 @@ "username": "Benutzername", "verification_cancelled": "Verifikation abgebrochen", "verified": "Verifiziert", + "version": "Version", + "video": "Video", "video_room": "Videoraum", "view_message": "Nachricht anzeigen", "warning": "Warnung", @@ -1100,8 +1115,10 @@ "file_attached": "Datei angehängt", "from_the_beginning": "Von Anfang an", "generating_zip": "ZIP-Archiv wird generiert", + "html": "HTML", "html_title": "Exportierte Daten", "include_attachments": "Anhänge einbeziehen", + "json": "JSON", "media_omitted": "Medien ausgelassen", "media_omitted_file_size": "Medien ausgelassen - Datei zu groß", "messages": "Nachrichten", @@ -1660,11 +1677,13 @@ "unable_edit_title": "Umfrage kann nicht bearbeitet werden" }, "power_level": { + "admin": "Administrator", "custom": "Benutzerdefiniert (%(level)s)", "custom_level": "Selbstdefiniertes Berechtigungslevel", "default": "Standard", "label": "Berechtigungsstufe", "mod": "Moderator", + "moderator": "Moderator", "restricted": "Eingeschränkt" }, "presence": { @@ -1672,7 +1691,9 @@ "busy": "Beschäftigt", "idle": "Abwesend", "idle_for": "Abwesend seit %(duration)s", + "offline": "Offline", "offline_for": "Offline seit %(duration)s", + "online": "Online", "online_for": "Online seit %(duration)s", "unknown": "Unbekannt", "unknown_for": "Unbekannt seit %(duration)s" @@ -3078,10 +3099,13 @@ "n_hours_ago": "vor %(num)s Stunden", "n_minutes_ago": "vor %(num)s Minuten", "seconds_left": "%(seconds)s verbleibend", + "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)s d %(hours)s h %(minutes)s m %(seconds)s s", + "short_hours": "%(value)sh", "short_hours_minutes_seconds": "%(hours)s h %(minutes)s m %(seconds)s s", "short_minutes": "%(value)smin", - "short_minutes_seconds": "%(minutes)s m %(seconds)s s" + "short_minutes_seconds": "%(minutes)s m %(seconds)s s", + "short_seconds": "%(value)ss" }, "timeline": { "context_menu": { diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index 0c59632f100..35f8e061734 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -157,7 +157,7 @@ "autodiscovery_generic_failure": "Serveri automaattuvastuse seadistuste laadimine ei õnnestunud", "autodiscovery_hs_incompatible": "Sinu koduserver on liiga vana ega toeta vähimat nõutavat API versiooni. Lisateavet saad oma serveri haldajalt või kui ise oled haldaja, siis palun uuenda serverit.", "autodiscovery_invalid": "Vigane vastus koduserveri tuvastamise päringule", - "autodiscovery_invalid_hs": "Koduserveri URL ei tundu viitama korrektsele Matrix'i koduserverile", + "autodiscovery_invalid_hs": "Näib, et koduserveri URL ei viita korrektsele Matrix'i koduserverile", "autodiscovery_invalid_hs_base_url": "m.homeserver'i kehtetu base_url", "autodiscovery_invalid_is": "Isikutuvastusserveri aadress ei tundu viitama kehtivale isikutuvastusserverile", "autodiscovery_invalid_is_base_url": "m.identity_server'i kehtetu base_url", @@ -855,7 +855,7 @@ "cross_signing_ready": "Risttunnustamine on kasutamiseks valmis.", "cross_signing_ready_no_backup": "Risttunnustamine on töövalmis, aga krüptovõtmed on varundamata.", "cross_signing_room_normal": "See jututuba on läbivalt krüptitud", - "cross_signing_room_verified": "Kõik kasutajad siin nututoas on verifitseeritud", + "cross_signing_room_verified": "Kõik kasutajad siin jututoas on verifitseeritud", "cross_signing_room_warning": "Keegi kasutab tundmatut sessiooni", "cross_signing_unsupported": "Sinu koduserver ei toeta risttunnustamist.", "cross_signing_untrusted": "Sinu kontol on turvahoidlas olemas risttunnustamise identiteet, kuid seda veel ei loeta antud sessioonis usaldusväärseks.", diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 3cae96c2234..c4e0ad1b6e0 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -163,6 +163,7 @@ "autodiscovery_invalid_is_base_url": "base_url pour m.identity_server non valide", "autodiscovery_invalid_is_response": "Réponse non valide lors de la découverte du serveur d'identité", "autodiscovery_invalid_json": "JSON non valide", + "autodiscovery_no_well_known": "Aucun fichier JSON .well-known n’a été trouvé", "autodiscovery_unexpected_error_hs": "Une erreur inattendue est survenue pendant la résolution de la configuration du serveur d’accueil", "autodiscovery_unexpected_error_is": "Une erreur inattendue est survenue pendant la résolution de la configuration du serveur d’identité", "captcha_description": "Ce serveur d’accueil veut s’assurer que vous n’êtes pas un robot.", @@ -228,6 +229,8 @@ "no_hs_url_provided": "Aucune URL de serveur d’accueil fournie", "oidc": { "error_title": "Nous n’avons pas pu vous connecter", + "generic_auth_error": "Une erreur s’est produite lors de l’authentification. Allez à la page de connexion et réessayez.", + "logout_redirect_warning": "Vous allez être redirigé vers le fournisseur d’authentification de votre serveur pour terminer la déconnexion.", "missing_or_invalid_stored_state": "Nous avons demandé à votre navigateur de mémoriser votre serveur d’accueil, mais il semble l’avoir oublié. Rendez-vous à la page de connexion et réessayez." }, "password_field_keep_going_prompt": "En cours…", @@ -285,6 +288,7 @@ "sign_out_other_devices": "Déconnecter tous les appareils" }, "reset_password_action": "Réinitialiser le mot de passe", + "reset_password_button": "Mot de passe oublié ?", "reset_password_email_field_description": "Utiliser une adresse e-mail pour récupérer votre compte", "reset_password_email_field_required_invalid": "Saisir l’adresse e-mail (obligatoire sur ce serveur d’accueil)", "reset_password_email_not_associated": "Votre adresse e-mail ne semble pas être associée à un identifiant Matrix sur ce serveur d’accueil.", @@ -387,6 +391,7 @@ "preparing_logs": "Préparation de l’envoi des journaux", "send_logs": "Envoyer les journaux", "submit_debug_logs": "Envoyer les journaux de débogage", + "textarea_label": "Remarques", "thank_you": "Merci !", "title": "Signalement d’anomalies", "unsupported_browser": "Rappel : Votre navigateur n’est pas pris en charge donc votre expérience pourrait être aléatoire.", @@ -481,6 +486,10 @@ "one": "%(count)s membre", "other": "%(count)s membres" }, + "n_participants": { + "one": "1 participant", + "other": "%(count)s participants" + }, "n_rooms": { "one": "%(count)s salon", "other": "%(count)s salons" @@ -672,6 +681,7 @@ "private_space_description": "Un espace privé pour vous et votre équipe", "public_description": "Espace ouvert à tous, idéal pour les communautés", "public_heading": "Votre espace public", + "search_public_button": "Rechercher des espaces publics", "setup_rooms_community_description": "Créons un salon pour chacun d’entre eux.", "setup_rooms_community_heading": "De quoi voulez-vous discuter dans %(spaceName)s ?", "setup_rooms_description": "Vous pourrez en ajouter plus tard, y compris certains déjà existant.", @@ -859,6 +869,9 @@ }, "event_shield_reason_authenticity_not_guaranteed": "L’authenticité de ce message chiffré ne peut pas être garantie sur cet appareil.", "event_shield_reason_mismatched_sender_key": "Chiffré par une session non vérifiée", + "event_shield_reason_unknown_device": "Chiffré par un appareil inconnu ou supprimé.", + "event_shield_reason_unsigned_device": "Chiffré par un appareil non vérifié par son propriétaire.", + "event_shield_reason_unverified_identity": "Chiffré par un utilisateur non vérifié.", "export_unsupported": "Votre navigateur ne prend pas en charge les extensions cryptographiques nécessaires", "import_invalid_keyfile": "Fichier de clé %(brand)s non valide", "import_invalid_passphrase": "Erreur d’authentification : mot de passe incorrect ?", @@ -1116,6 +1129,7 @@ }, "fetching_events": "Récupération des évènements…", "file_attached": "Fichier attaché", + "format": "Formater", "from_the_beginning": "Depuis le début", "generating_zip": "Génération d’un ZIP", "html": "HTML", @@ -1242,6 +1256,8 @@ "error_permissions_space": "Vous n’avez pas la permission d’inviter des personnes dans cet espace.", "error_profile_undisclosed": "L’utilisateur existe peut-être", "error_transfer_multiple_target": "Un appel ne peut être transféré qu’à un seul utilisateur.", + "error_unfederated_room": "Ce salon n’est pas fédéré. Vous ne pouvez pas inviter des personnes venant de serveurs externes.", + "error_unfederated_space": "Cet espace n’est pas fédéré. Vous ne pouvez pas inviter des personnes venant de serveurs externes.", "error_unknown": "Erreur de serveur inconnue", "error_user_not_found": "L’utilisateur n’existe pas", "error_version_unsupported_room": "Le serveur d’accueil de l’utilisateur ne prend pas en charge la version de ce salon.", @@ -1294,6 +1310,7 @@ "cancel_reply": "Annuler la réponse à un message", "category_autocomplete": "Autocomplétion", "category_calls": "Appels", + "category_navigation": "Navigation", "category_room_list": "Liste de salons", "close_dialog_menu": "Fermer le dialogue ou le menu contextuel", "composer_jump_end": "Avancer à la fin du compositeur", @@ -1377,6 +1394,7 @@ "element_call_video_rooms": "Salons vidéo Element Call", "experimental_description": "Envie d’expériences ? Essayez nos dernières idées en développement. Ces fonctionnalités ne sont pas terminées ; elles peuvent changer, être instables, ou être complètement abandonnées. En savoir plus.", "experimental_section": "Avant-premières", + "feature_disable_call_per_sender_encryption": "Désactiver le chiffrement de chaque expéditeur pour Element Call", "feature_wysiwyg_composer_description": "Utilise le texte formaté au lieu de Markdown dans le compositeur de message.", "group_calls": "Nouvelle expérience d’appel de groupe", "group_developer": "Développeur", @@ -1389,6 +1407,7 @@ "group_spaces": "Espaces", "group_themes": "Thèmes", "group_voip": "Audio et vidéo", + "group_widgets": "Widgets", "hidebold": "Masquer le point de notification (affiche seulement les badges des compteurs)", "html_topic": "Afficher la version HTML des sujets des salons", "join_beta": "Rejoindre la bêta", @@ -1405,8 +1424,12 @@ "new_room_decoration_ui": "En cours de développement, nouvel en-tête de salon et interface des détails", "notification_settings": "Nouveaux paramètres de notification", "notification_settings_beta_title": "Paramètres de notification", - "oidc_native_flow": "Active le nouveau processus OIDC natif (en cours de développement)", + "notifications": "Active le panneau de notifications dans l’en-tête du salon", + "oidc_native_flow": "Authentification native OIDC", + "oidc_native_flow_description": "⚠ ATTENTION : Expérimental. Utilise l’authentification OIDC native lorsqu’elle est prise en charge par le serveur.", "pinning": "Messages épinglés", + "render_reaction_images": "Afficher les images personnalisées des réactions", + "render_reaction_images_description": "Parfois appelés « émojis personnalisés ».", "report_to_moderators": "Signaler aux modérateurs", "report_to_moderators_description": "Dans les salons prenant en charge la modération, le bouton « Signaler » vous permet de signaler des abus aux modérateurs du salon.", "rust_crypto": "Implémentation cryptographique en Rust", @@ -1423,6 +1446,7 @@ "sliding_sync_server_specify_proxy": "Votre serveur manque d’un support natif, vous devez spécifier un serveur mandataire (proxy)", "sliding_sync_server_support": "Votre serveur a un support natif", "under_active_development": "En cours de développement.", + "unrealiable_e2e": "Non fiable dans les salons chiffrés", "video_rooms": "Salons vidéo", "video_rooms_a_new_way_to_chat": "Une nouvelle façons de discuter avec la voix et la vidéo dans %(brand)s.", "video_rooms_always_on_voip_channels": "Les salons vidéo sont des canaux VoIP toujours actifs embarqués dans un salon dans %(brand)s.", @@ -1431,6 +1455,7 @@ "video_rooms_faq1_question": "Comment créer un salon vidéo ?", "video_rooms_faq2_answer": "Oui, l’historique de conversation est affiché à côté de la vidéo.", "video_rooms_faq2_question": "Est-il possible d’utiliser les messages textuels en même temps que l’appel vidéo ?", + "video_rooms_feedbackSubheading": "Merci d’essayer la version bêta. Veuillez l’utiliser au maximum pour que nous puissions l’améliorer.", "voice_broadcast": "Diffusion audio", "voice_broadcast_force_small_chunks": "Forcer la diffusion audio à utiliser des morceaux de 15s", "wysiwyg_composer": "Éditeur de texte formaté" @@ -1561,15 +1586,18 @@ "notifications": { "all_messages": "Tous les messages", "all_messages_description": "Recevoir une notification pour chaque message", + "class_global": "Global", "class_other": "Autre", "colour_bold": "Gras", "colour_grey": "Gris", + "colour_muted": "Muet", "colour_none": "Aucun", "colour_red": "Rouge", "colour_unsent": "Non envoyé", "default": "Par défaut", "email_pusher_app_display_name": "Notifications par courriel", "enable_prompt_toast_description": "Activer les notifications sur le bureau", + "enable_prompt_toast_title": "Notifications", "enable_prompt_toast_title_from_message_send": "Ne ratez pas une réponse", "error_change_title": "Modifier les paramètres de notification", "keyword": "Mot-clé", @@ -1706,7 +1734,8 @@ "online": "En ligne", "online_for": "En ligne depuis %(duration)s", "unknown": "Inconnu", - "unknown_for": "Inconnu depuis %(duration)s" + "unknown_for": "Inconnu depuis %(duration)s", + "unreachable": "Le serveur de l’utilisateur est inaccessible" }, "quick_settings": { "all_settings": "Tous les paramètres", @@ -1734,6 +1763,7 @@ "report_content": { "description": "Le signalement de ce message enverra son « event ID » unique à l’administrateur de votre serveur d’accueil. Si les messages dans ce salon sont chiffrés, l’administrateur ne pourra pas lire le texte du message ou voir les fichiers ou les images.", "disagree": "Désaccord", + "error_create_room_moderation_bot": "Impossible de créer un salon avec un bot de modération", "hide_messages_from_user": "Cocher pour masquer tous les messages présents et futurs de cet utilisateur.", "ignore_user": "Ignorer l’utilisateur", "illegal_content": "Contenu illicite", @@ -1820,7 +1850,8 @@ }, "video_room_chat": { "title": "Conversation privée" - } + }, + "widgets_section": "Widgets" }, "room": { "3pid_invite_email_not_found_account": "Cette invitation a été envoyée à %(email)s qui n’est pas associé à votre compte", @@ -1890,11 +1921,13 @@ "show_widgets_button": "Afficher les widgets", "video_call_button_ec": "Appel vidéo (%(brand)s)", "video_call_button_jitsi": "Appel vidéo (Jitsi)", + "video_call_button_legacy": "Appel vidéo ancienne génération", "video_call_ec_change_layout": "Changer la disposition", "video_call_ec_layout_freedom": "Liberté", "video_call_ec_layout_spotlight": "Projecteur", "video_room_view_chat_button": "Afficher la chronologie du chat" }, + "header_untrusted_label": "Non fiable", "inaccessible": "Ce salon ou cet espace n’est pas accessible en ce moment.", "inaccessible_name": "%(roomName)s n’est pas joignable pour le moment.", "inaccessible_subtitle_1": "Réessayez plus tard ou demandez à l’administrateur du salon ou de l’espace si vous y avez accès.", @@ -1943,6 +1976,8 @@ "kicked_by": "Vous avez été retiré par %(memberName)s", "kicked_from_room_by": "Vous avez été expulsé(e) de %(roomName)s par %(memberName)s", "knock_cancel_action": "Annuler la demande", + "knock_denied_subtitle": "Puisque l’accès vous a été refusé, vous ne pourrez rejoindre le salon que sur invitation d’un administrateur ou d’un modérateur du groupe.", + "knock_denied_title": "L’accès vous a été refusé", "knock_message_field_placeholder": "Message (optionnel)", "knock_prompt": "Demander à venir ?", "knock_prompt_name": "Demander à venir dans %(roomName)s ?", @@ -2038,6 +2073,7 @@ "show_previews": "Afficher un aperçu des messages", "sort_by": "Trier par", "sort_by_activity": "Activité", + "sort_by_alphabet": "A-Z", "sort_unread_first": "Afficher les salons non lus en premier", "space_menu_label": "Menu %(spaceName)s", "sublist_options": "Options de liste", @@ -2146,6 +2182,12 @@ "upload_sound_label": "Envoyer un son personnalisé", "uploaded_sound": "Son téléchargé" }, + "people": { + "knock_empty": "Aucune demande", + "knock_section": "Demander à rejoindre", + "see_less": "Voir moins", + "see_more": "Voir plus" + }, "permissions": { "add_privileged_user_description": "Donne plus de privilèges à un ou plusieurs utilisateurs de ce salon", "add_privileged_user_filter_placeholder": "Chercher des utilisateurs dans ce salon…", @@ -2186,6 +2228,7 @@ "muted_users_section": "Utilisateurs ignorés", "no_privileged_users": "Aucun utilisateur n’a de privilège spécifique dans ce salon", "notifications.room": "Avertir tout le monde", + "permissions_section": "Autorisations", "permissions_section_description_room": "Sélectionner les rôles nécessaires pour modifier les différentes parties du salon", "permissions_section_description_space": "Sélectionner les rôles nécessaires pour modifier les différentes parties de l’espace", "privileged_users_section": "Utilisateurs privilégiés", @@ -2257,6 +2300,8 @@ }, "join_rule_upgrade_upgrading_room": "Mise-à-jour du salon", "public_without_alias_warning": "Pour créer un lien vers ce salon, ajoutez une adresse.", + "publish_room": "Rendez ce salon visible dans l’annuaire des salons publics.", + "publish_space": "Rendez cet espace visible dans le répertoires des salons publics.", "strict_encryption": "Ne jamais envoyer des messages chiffrés aux sessions non vérifiées dans ce salon depuis cette session", "title": "Sécurité et vie privée" }, @@ -2328,11 +2373,13 @@ "brand_version": "Version de %(brand)s :", "chat_bot": "Discuter avec le bot %(brand)s", "clear_cache_reload": "Vider le cache et recharger", + "crypto_version": "Version crypto :", "help_link": "Pour obtenir de l’aide sur l’utilisation de %(brand)s, cliquez ici.", "help_link_chat_bot": "Pour obtenir de l’aide sur l’utilisation de %(brand)s, cliquez ici ou commencez une discussion avec notre bot en utilisant le bouton ci-dessous.", "homeserver": "Le serveur d’accueil est %(homeserverUrl)s", "identity_server": "Le serveur d’identité est %(identityServerUrl)s", - "title": "Aide et À propos" + "title": "Aide et À propos", + "versions": "Versions" } }, "settings": { @@ -2340,6 +2387,7 @@ "all_rooms_home_description": "Tous les salons dans lesquels vous vous trouvez apparaîtront sur l’Accueil.", "always_show_message_timestamps": "Toujours afficher l’heure des messages", "appearance": { + "bundled_emoji_font": "Utilise la police d’émoji interne", "custom_font": "Utiliser une police du système", "custom_font_description": "Définissez le nom d’une police de caractères installée sur votre système et %(brand)s essaiera de l’utiliser.", "custom_font_name": "Nom de la police du système", @@ -2672,6 +2720,7 @@ "send_read_receipts_unsupported": "Votre serveur ne supporte pas la désactivation de l’envoi des accusés de réception.", "send_typing_notifications": "Envoyer des notifications de saisie", "sessions": { + "best_security_note": "Pour une sécurité optimale, vérifiez vos sessions et déconnectez-vous de toute session que vous ne reconnaissez pas ou que vous n’utilisez plus.", "browser": "Navigateur", "confirm_sign_out": { "one": "Confirmer la déconnexion de cet appareil", @@ -2698,6 +2747,7 @@ "device_verified_description_current": "Votre session actuelle est prête pour une messagerie sécurisée.", "error_pusher_state": "Échec lors de la définition de l’état push", "filter_all": "Tout", + "filter_inactive": "Inactive", "filter_inactive_description": "Inactive depuis au moins %(inactiveAgeDays)s jours", "filter_label": "Filtrer les appareils", "filter_unverified_description": "Messagerie non sécurisée", @@ -2756,6 +2806,7 @@ "unverified_sessions_explainer_1": "Les sessions non vérifiées se sont identifiées avec vos identifiants mais n’ont pas fait de vérification croisée.", "unverified_sessions_explainer_2": "Vous devriez vous tout particulièrement vous assurer que vous connaissez ces sessions, car elles peuvent représenter un usage frauduleux de votre compte.", "unverified_sessions_list_description": "Vérifiez vos sessions pour améliorer la sécurité de votre messagerie, ou déconnectez celles que vous ne connaissez pas ou n’utilisez plus.", + "url": "URL", "verified_session": "Session vérifiée", "verified_sessions": "Sessions vérifiées", "verified_sessions_explainer_1": "Les sessions vérifiées sont toutes celles qui utilisent ce compte après avoir saisie la phrase de sécurité ou confirmé votre identité à l’aide d’une autre session vérifiée.", @@ -2783,6 +2834,7 @@ "metaspaces_orphans_description": "Regroupe tous les salons n’appartenant pas à un espace au même endroit.", "metaspaces_people_description": "Regrouper toutes vos connaissances au même endroit.", "metaspaces_subsection": "Espaces à afficher", + "spaces_explainer": "Les espaces sont un nouveau moyen de regrouper les salons et les gens. En plus des espaces auxquels vous participez, vous pouvez également utiliser ceux qui sont prédéfinis.", "title": "Barre latérale" }, "start_automatically": "Démarrer automatiquement après la phase d'authentification du système", @@ -2846,6 +2898,7 @@ "discardsession": "Force la session de groupe sortante actuelle dans un salon chiffré à être rejetée", "error_invalid_rendering_type": "Erreur de commande : Impossible de trouver le type de rendu (%(renderingType)s)", "error_invalid_runfn": "Erreur de commande : Impossible de gérer la commande de barre oblique.", + "error_invalid_user_in_room": "Impossible de trouver l’utilisateur dans le salon", "help": "Affiche la liste des commandes avec leurs utilisations et descriptions", "help_dialog_title": "Aide aux commandes", "holdcall": "Met l’appel dans ce salon en attente", @@ -3014,6 +3067,7 @@ }, "create_new_room_button": "Créer un nouveau salon", "failed_querying_public_rooms": "Impossible d’interroger les salons publics", + "failed_querying_public_spaces": "Impossible d’interroger les espaces publics", "group_chat_section_title": "Autres options", "heading_with_query": "Utilisez « %(query)s » pour rechercher", "heading_without_query": "Recherche de", @@ -3022,6 +3076,7 @@ "message_search_section_title": "Autres recherches", "other_rooms_in_space": "Autres salons dans %(spaceName)s", "public_rooms_label": "Salons public", + "public_spaces_label": "Espaces publics", "recent_searches_section_title": "Recherches récentes", "recently_viewed_section_title": "Affiché récemment", "remove_filter": "Supprimer le filtre de recherche pour %(filter)s", @@ -3037,6 +3092,8 @@ "empty_add_prompt": "En ajouter maintenant" }, "terms": { + "column_document": "Document", + "column_service": "Service", "column_summary": "Résumé", "identity_server_no_terms_description_1": "Cette action nécessite l’accès au serveur d’identité par défaut afin de valider une adresse e-mail ou un numéro de téléphone, mais le serveur n’a aucune condition de service.", "identity_server_no_terms_description_2": "Continuez seulement si vous faites confiance au propriétaire du serveur.", @@ -3350,6 +3407,7 @@ "pending_moderation_reason": "Message en attente de modération : %(reason)s", "reactions": { "add_reaction_prompt": "Ajouter une réaction", + "custom_reaction_fallback_label": "Réaction personnalisée", "label": "%(reactors)s ont réagi avec %(content)s", "tooltip": "ont réagi avec %(shortName)s" }, @@ -3905,6 +3963,7 @@ "l33t": "Les substitutions prévisibles comme « @ » à la place de « a » ne sont pas très utiles", "longerKeyboardPattern": "Utilisez un schéma plus long et avec plus de variations", "noNeed": "Il n'y a pas besoin de symbole, de chiffre ou de majuscule", + "pwned": "Si vous utilisez ce mot de passe autre part, vous devriez le changer.", "recentYears": "Évitez les années récentes", "repeated": "Évitez de répéter des mots et des caractères", "reverseWords": "Les mots inversés ne sont pas beaucoup plus difficiles à deviner", @@ -3918,6 +3977,7 @@ "extendedRepeat": "Les répétitions comme « abcabcabc » ne sont pas beaucoup plus difficiles à deviner que « abc »", "keyPattern": "Les répétitions de motif court sur un clavier sont faciles à deviner", "namesByThemselves": "Les noms et prénoms seuls sont faciles à deviner", + "pwned": "Votre mot de passe a été exposé suite à une fuite de données sur Internet.", "recentYears": "Les années récentes sont faciles à deviner", "sequences": "Les séquences comme abc ou 6543 sont faciles à deviner", "similarToCommon": "Cela ressemble à un mot de passe répandu", @@ -3925,6 +3985,7 @@ "straightRow": "Les suites de touches sont faciles à deviner", "topHundred": "Cela fait partie des 100 mots de passe les plus répandus", "topTen": "Cela fait partie des 10 mots de passe les plus répandus", + "userInputs": "Il ne devrait y avoir aucune donnée personnelle ou relative à la page.", "wordByItself": "Un mot seul est facile à deviner" } } diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index a128077d370..09b1b5cc631 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -46,6 +46,7 @@ "dismiss": "Abaikan", "done": "Selesai", "download": "Unduh", + "edit": "Sunting", "enable": "Aktifkan", "enter_fullscreen": "Masuki layar penuh", "exit_fullscreeen": "Keluar dari layar penuh", @@ -77,7 +78,9 @@ "new_video_room": "Ruangan video baru", "next": "Lanjut", "no": "Tidak", + "ok": "Oke", "pause": "Jeda", + "pin": "Sematkan", "play": "Mainkan", "proceed": "Lanjut", "quote": "Kutip", @@ -418,11 +421,13 @@ "one": "dan satu lainnya...", "other": "dan %(count)s lainnya..." }, + "android": "Android", "appearance": "Tampilan", "application": "Aplikasi", "are_you_sure": "Apakah Anda yakin?", "attachment": "Lampiran", "authentication": "Autentikasi", + "beta": "Beta", "camera": "Kamera", "cameras": "Kamera", "capabilities": "Kemampuan", @@ -436,9 +441,11 @@ "display_name": "Nama Tampilan", "edited": "diedit", "email_address": "Alamat email", + "emoji": "Emoji", "encrypted": "Terenkripsi", "encryption_enabled": "Enkripsi diaktifkan", "error": "Kesalahan", + "faq": "Pertanyaan Umum", "favourites": "Favorit", "feedback": "Masukan", "filter_results": "Saring hasil", @@ -449,9 +456,11 @@ "help": "Bantuan", "historical": "Riwayat", "home": "Beranda", + "homeserver": "Homeserver", "identity_server": "Server identitas", "image": "Gambar", "integration_manager": "Manajer integrasi", + "ios": "iOS", "joined": "Tergabung", "labs": "Uji Coba", "legal": "Hukum", @@ -459,9 +468,12 @@ "loading": "Memuat…", "location": "Lokasi", "low_priority": "Prioritas rendah", + "matrix": "Matrix", "message": "Pesan", "message_layout": "Tata letak pesan", "microphone": "Mikrofon", + "model": "Model", + "modern": "Modern", "mute": "Bisukan", "n_members": { "one": "%(count)s anggota", @@ -508,10 +520,12 @@ "secure_backup": "Cadangan Aman", "security": "Keamanan", "select_all": "Pilih semua", + "server": "Server", "settings": "Pengaturan", "setup_secure_messages": "Siapkan Pesan Aman", "show_more": "Tampilkan lebih banyak", "someone": "Seseorang", + "space": "Space", "spaces": "Space", "sticker": "Stiker", "stickerpack": "Paket Stiker", @@ -537,6 +551,7 @@ "verification_cancelled": "Verifikasi dibatalkan", "verified": "Terverifikasi", "version": "Versi", + "video": "Video", "video_room": "Ruangan video", "view_message": "Tampilkan pesan", "warning": "Peringatan", @@ -1101,8 +1116,10 @@ "file_attached": "File Dilampirkan", "from_the_beginning": "Dari awal", "generating_zip": "Membuat sebuah ZIP", + "html": "HTML", "html_title": "Data Terekspor", "include_attachments": "Tambahkan Lampiran", + "json": "JSON", "media_omitted": "Media tidak disertakan", "media_omitted_file_size": "Media tidak disertakan — melebihi batas ukuran file", "messages": "Pesan", @@ -1660,10 +1677,13 @@ "unable_edit_title": "Tidak dapat mengedit poll" }, "power_level": { + "admin": "Admin", "custom": "Kustom (%(level)s)", "custom_level": "Tingkat kustom", "default": "Bawaan", "label": "Tingkat daya", + "mod": "Mod", + "moderator": "Moderator", "restricted": "Dibatasi" }, "presence": { @@ -3072,6 +3092,7 @@ "short_days_hours_minutes_seconds": "%(days)sh %(hours)sj %(minutes)sm %(seconds)sd", "short_hours": "%(value)sj", "short_hours_minutes_seconds": "%(hours)sj %(minutes)sm %(seconds)sd", + "short_minutes": "%(value)sm", "short_minutes_seconds": "%(minutes)sm %(seconds)sd", "short_seconds": "%(value)sd" }, diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index da391b156b0..51c6de33767 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -715,7 +715,7 @@ "developer_tools": "Инструменты разработчика", "edit_setting": "Изменить настройки", "edit_values": "Редактировать значения", - "empty_string": "<пустая строка>", + "empty_string": "", "event_content": "Содержимое события", "event_id": "ID события: %(eventId)s", "event_sent": "Событие отправлено!", @@ -751,15 +751,20 @@ "room_encrypted": "Комната зашифрована ✅", "room_id": "ID комнаты: %(roomId)s", "room_not_encrypted": "Комната не имеет шифрования 🚨", - "room_notifications_dot": "Точка:", - "room_notifications_highlight": "Выделение:", + "room_notifications_dot": "Точка: ", + "room_notifications_highlight": "Выделение: ", "room_notifications_last_event": "Последнее событие:", - "room_notifications_sender": "Отправитель:", + "room_notifications_sender": "Отправитель: ", "room_notifications_thread_id": "Id обсуждения: ", - "room_notifications_total": "Всего:", - "room_notifications_type": "Тип:", + "room_notifications_total": "Всего: ", + "room_notifications_type": "Тип: ", "room_status": "Статус комнаты", "room_unread_status": "Статус непрочитанной комнаты: %(status)s", + "room_unread_status_count": { + "one": "Статус непрочитанной комнаты: %(status)s%(status)s, количество: %(count)s", + "few": "Статус непрочитанных комнат: %(status)s%(status)s, количество: %(count)s", + "many": "Статус непрочитанных комнат: %(status)s%(status)s, количество: %(count)s" + }, "save_setting_values": "Сохранить значения настроек", "see_history": "Посмотреть историю", "send_custom_account_data_event": "Отправить пользовательское событие данных учётной записи", @@ -776,8 +781,9 @@ "settings_explorer": "Посмотреть настройки", "show_hidden_events": "Показывать скрытые события в ленте сообщений", "spaces": { - "one": "<пространство>", - "other": "<%(count)s пространств>" + "one": "", + "few": "<%(count)s spaces>", + "many": "<%(count)s spaces>" }, "state_key": "Ключ состояния", "thread_root_id": "Идентификатор Root ID: %(threadRootId)s", @@ -2498,7 +2504,7 @@ "jump_to_bottom_on_send": "Перейти к нижней части временной шкалы, когда вы отправляете сообщение", "key_backup": { "backup_in_progress": "Выполняется резервная копия ключей (первый раз это может занять несколько минут).", - "backup_starting": "Запуск резервного копирования...", + "backup_starting": "Запуск резервного копирования…", "backup_success": "Успешно!", "cannot_create_backup": "Невозможно создать резервную копию ключа", "create_title": "Создать резервную копию ключа", @@ -2677,7 +2683,7 @@ "key_backup_complete": "Все ключи сохранены", "key_backup_connect": "Подключить этот сеанс к резервированию ключей", "key_backup_connect_prompt": "Подключите этот сеанс к резервированию ключей до выхода, чтобы избежать утраты доступных только в этом сеансе ключей.", - "key_backup_in_progress": "Резервное копирование %(sessionsRemaining)s ключей...", + "key_backup_in_progress": "Резервное копирование %(sessionsRemaining)s ключей…", "key_backup_inactive": "Это сеанс не сохраняет ваши ключи, но у вас есть резервная копия, из которой вы можете их восстановить.", "key_backup_inactive_warning": "Ваши ключи не резервируются с этом сеансе.", "key_backup_latest_version": "Последняя версия резервной копии на сервере:", @@ -3455,6 +3461,16 @@ "other": "заблокированы %(count)s раз(а)", "one": "заблокированы" }, + "changed_avatar": { + "one": "%(oneUser)s изменили свою фотографию в профиле", + "few": "%(oneUser)s пользователя меня свою фотографию %(count)s раз", + "many": "%(oneUser)s пользователей меня свою фотографию %(count)s раз" + }, + "changed_avatar_multiple": { + "one": "%(severalUsers)s изменили свою фотографию в профиле", + "few": "%(severalUsers)s меняли свою фотографию в профиле %(count)s раз", + "many": "%(severalUsers)s меняли свою фотографию в профиле %(count)s раз" + }, "changed_name": { "other": "%(oneUser)sизменил(а) имя %(count)s раз(а)", "one": "%(oneUser)sизменил(а) имя" diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 60c03a3a433..d15f6862e53 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -1115,20 +1115,24 @@ "export_successful": "Export úspešný!", "exported_n_events_in_time": { "one": "Exportovaná %(count)s udalosť za %(seconds)s sekúnd", + "few": "Exportovaných %(count)s udalosti za %(seconds)s sekúnd", "other": "Exportovaných %(count)s udalostí za %(seconds)s sekúnd" }, "exporting_your_data": "Exportovanie vašich údajov", "fetched_n_events": { "one": "Zatiaľ získaná %(count)s udalosť", - "other": "Zatiaľ získané %(count)s udalosti" + "few": "Zatiaľ získané %(count)s udalosti", + "other": "Zatiaľ získaných %(count)s udalostí" }, "fetched_n_events_in_time": { "one": "Načítaná %(count)s udalosť za %(seconds)ss", + "few": "Načítané %(count)s udaloszi za %(seconds)ss", "other": "Načítaných %(count)s udalostí za %(seconds)ss" }, "fetched_n_events_with_total": { "one": "Získaná %(count)s udalosť z %(total)s", - "other": "Získané %(count)s udalosti z %(total)s" + "few": "Získané %(count)s udalosti z %(total)s", + "other": "Získaných %(count)s udalostí z %(total)s" }, "fetching_events": "Získavanie udalostí…", "file_attached": "Priložený súbor", @@ -1651,6 +1655,7 @@ "no_avatar_label": "Pridajte fotografiu, aby ľudia vedeli, že ste to vy.", "only_n_steps_to_go": { "one": "Zostáva už len %(count)s krok", + "few": "Zostávajú už len %(count)s kroky", "other": "Zostáva už len %(count)s krokov" }, "personal_messaging_action": "Spustite svoju prvú konverzáciu", diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index aaadad8c54e..09aa66a0db4 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -2569,6 +2569,11 @@ }, "notifications": { "default_setting_description": "Denna inställning kommer att tillämpas som standard för alla dina rum.", + "default_setting_section": "Jag vill bli meddelad för (Standardinställning)", + "desktop_notification_message_preview": "Visa förhandsgranskning av meddelanden i skrivbordsmeddelanden", + "email_description": "Få en sammanfattning av missade aviseringar via e-post", + "email_section": "E-postsammanfattning", + "email_select": "Välj vilka e-postadresser du vill skicka sammanfattningar till. Hantera dina e-postadresser i .", "enable_audible_notifications_session": "Aktivera ljudaviseringar för den här sessionen", "enable_desktop_notifications_session": "Aktivera skrivbordsaviseringar för den här sessionen", "enable_email_notifications": "Aktivera e-postaviseringar för %(email)s", @@ -2582,9 +2587,20 @@ "error_saving_detail": "Ett fel inträffade när dina aviseringsinställningar sparades.", "error_title": "Det går inte att aktivera aviseringar", "error_updating": "Ett fel uppstod när du uppdaterade dina aviseringsinställningar. Pröva att växla alternativet igen.", + "invites": "Inbjuden till ett rum", + "labs_notice_prompt": "Uppdatering: Vi har förenklat aviseringsinställningarna för att göra alternativen enklare att hitta. Vissa anpassade inställningar som du har valt tidigare visas inte här, men de är fortfarande aktiva. Om du fortsätter kan vissa av dina inställningar ändras. Läs mer", + "mentions_keywords": "Omnämnanden och nyckelord", + "mentions_keywords_only": "Endast omnämnanden och nyckelord", "messages_containing_keywords": "Meddelanden som innehåller nyckelord", "noisy": "Högljudd", + "notices": "Meddelanden skickade av bottar", + "notify_at_room": "Meddela när någon nämner genom att använda @room", + "other_section": "Andra saker vi tror att du kan vara intresserad av:", + "people_mentions_keywords": "Personer, omnämnanden och nyckelord", + "play_sound_for_description": "Tillämpas som standard för alla rum på alla enheter.", + "play_sound_for_section": "Spela ett ljud för", "push_targets": "Aviseringsmål", + "room_activity": "Ny rumsaktivitet, uppgraderingar och statusmeddelanden inträffar", "rule_call": "Inbjudan till samtal", "rule_contains_display_name": "Meddelanden som innehåller mitt visningsnamn", "rule_contains_user_name": "Meddelanden som innehåller mitt användarnamn", @@ -2596,7 +2612,8 @@ "rule_roomnotif": "Meddelanden som innehåller @room", "rule_suppress_notices": "Meddelanden från bottar", "rule_tombstone": "När rum uppgraderas", - "show_message_desktop_notification": "Visa meddelande i skrivbordsavisering" + "show_message_desktop_notification": "Visa meddelande i skrivbordsavisering", + "voip": "Ljud- och videosamtal" }, "preferences": { "always_show_menu_bar": "Visa alltid fönstermenyn", @@ -2895,6 +2912,7 @@ "me": "Visar åtgärd", "msg": "Skickar ett meddelande till den valda användaren", "myavatar": "Byter din profilbild i alla rum", + "myroomavatar": "Byter din profilbild endast i det aktuella rummet", "myroomnick": "Byter ditt visningsnamn endast i detta rum", "nick": "Byter ditt visningsnamn", "no_active_call": "Inget aktivt samtal i det här rummet", @@ -3125,9 +3143,13 @@ "n_hours_ago": "%(num)s timmar sedan", "n_minutes_ago": "%(num)s minuter sedan", "seconds_left": "%(seconds)ss kvar", + "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)st %(minutes)sm %(seconds)ss", "short_hours": "%(value)st", - "short_hours_minutes_seconds": "%(hours)st %(minutes)sm %(seconds)ss" + "short_hours_minutes_seconds": "%(hours)st %(minutes)sm %(seconds)ss", + "short_minutes": "%(value)sm", + "short_minutes_seconds": "%(minutes)sm %(seconds)ss", + "short_seconds": "%(value)ss" }, "timeline": { "context_menu": { @@ -3437,6 +3459,7 @@ "other": "%(severalUsers)sbytte namn %(count)s gånger", "one": "%(severalUsers)sbytte namn" }, + "format": "%(nameList)s %(transitionList)s", "hidden_event": { "one": "%(oneUser)sskickade ett dolt meddelande", "other": "%(oneUser)sskickade %(count)s dolda meddelanden" diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 9b81a6a6603..7502a2faf7f 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -271,7 +271,7 @@ "reset_password_button": "忘记密码?", "reset_password_email_field_description": "使用邮件地址恢复你的账户", "reset_password_email_field_required_invalid": "输入邮件地址(此家服务器上必须)", - "reset_password_email_not_associated": "你的电子邮件地址似乎未与此家服务器上的Matrix ID关联。", + "reset_password_email_not_associated": "你的电子邮件地址似乎未与服务器上的Matrix ID关联。", "reset_password_email_not_found_title": "未找到此邮箱地址", "server_picker_custom": "其他家服务器", "server_picker_description": "你可以使用自定义服务器选项来指定不同的家服务器URL以登录其他Matrix服务器。这让你能把%(brand)s和不同家服务器上的已有Matrix账户搭配使用。", @@ -304,8 +304,8 @@ "sign_in_with_sso": "使用单点登录", "soft_logout": { "clear_data_button": "清除所有数据", - "clear_data_description": "清除此会话中的所有数据是永久的。加密消息会丢失,除非其密钥已被备份。", - "clear_data_title": "是否清除此会话中的所有数据?" + "clear_data_description": "清除此设备中的所有数据是永久的。加密消息会丢失,除非其密钥已被备份。", + "clear_data_title": "是否清除此设备中的所有数据?" }, "soft_logout_heading": "你已登出", "soft_logout_intro_password": "输入你的密码以登录并重新获取访问你账户的权限。", @@ -313,7 +313,7 @@ "soft_logout_intro_unsupported_auth": "你不能登录到你的账户。请联系你的家服务器管理员以获取更多信息。", "soft_logout_subheading": "清除个人数据", "sso": "单点登录", - "sso_failed_missing_storage": "我们已要求浏览器记住你使用的家服务器,但不幸的是你的浏览器已忘记。请前往登录页面重试。", + "sso_failed_missing_storage": "我们已请求浏览器记住你使用的服务器,但是你的浏览器貌似已经忘记了。请前往登录页面重试。", "sso_or_username_password": "%(ssoButtons)s 或 %(usernamePassword)s", "sync_footer_subtitle": "如果你加入了很多房间,可能会消耗一些时间", "uia": { @@ -327,7 +327,7 @@ "msisdn_token_incorrect": "令牌错误", "msisdn_token_prompt": "请输入其包含的代码:", "password_prompt": "在下方输入账户密码以确认你的身份。", - "recaptcha_missing_params": "在家服务器配置中缺少验证码公钥。请将此报告给你的家服务器管理员。", + "recaptcha_missing_params": "在服务器配置中缺少验证码公钥。请将此问题报告给你的服务器管理员。", "registration_token_prompt": "输入由服务器管理员所提供的注册密钥。", "sso_body": "使用单一登入证明你的身份,以确认添加此电子邮件地址。", "sso_failed": "确认你的身份时出了一点问题。取消并重试。", @@ -335,8 +335,8 @@ "sso_postauth_title": "确认以继续", "sso_preauth_body": "要继续,请使用单点登录证明你的身份。", "sso_title": "使用单点登录继续", - "terms": "请阅读并接受此家服务器的政策:", - "terms_invalid": "请阅读并接受此家服务器的所有政策" + "terms": "请阅读并接受此服务器的政策:", + "terms_invalid": "请阅读并接受此服务器的所有政策" }, "unsupported_auth": "此服务器未提供客户端支持的任何登录流程。", "unsupported_auth_email": "此家服务器不支持使用电子邮箱地址登录。", @@ -2277,7 +2277,7 @@ "confirm_security_phrase": "确认你的安全短语", "description": "通过在你的服务器上备份加密密钥来防止丢失你对加密消息和数据的访问权。", "download_or_copy": "%(downloadButton)s或%(copyButton)s", - "enter_phrase_title": "输入一个安全密码", + "enter_phrase_title": "输入安全短语", "enter_phrase_to_confirm": "再次输入你的安全短语进行确认。", "generate_security_key_description": "我们将为您生成一个安全密钥,将其存储在安全的地方,例如密码管理器或保险箱。", "generate_security_key_title": "生成一个安全密钥", @@ -2486,8 +2486,7 @@ "security_recommendations_description": "按照以下建议来提高您的帐户安全性。", "session_id": "会话 ID", "sign_out_confirm_description": { - "one": "你确定要登出%(count)s个会话吗?", - "other": "你确定要退出这 %(count)s 个会话吗?" + "other": "你确定要从这 %(count)s 个会话中退出吗?" }, "title": "会话", "unverified_session": "未验证的会话", From 0e06f38c1b6597979ade7e730bb254ecacf619cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 08:55:38 +0000 Subject: [PATCH 10/48] Update dawidd6/action-download-artifact digest to f29d1b6 (#12037) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/cypress.yaml | 2 +- .github/workflows/end-to-end-tests.yaml | 2 +- .github/workflows/netlify.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cypress.yaml b/.github/workflows/cypress.yaml index 5b96cae48df..b0100fcd8df 100644 --- a/.github/workflows/cypress.yaml +++ b/.github/workflows/cypress.yaml @@ -105,7 +105,7 @@ jobs: # There's a 'download artifact' action, but it hasn't been updated for the workflow_run action # (https://github.com/actions/download-artifact/issues/60) so instead we get this mess: - name: 📥 Download artifact - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2 + uses: dawidd6/action-download-artifact@f29d1b6a8930683e80acedfbe6baa2930cd646b4 # v2 with: run_id: ${{ github.event.workflow_run.id }} name: previewbuild diff --git a/.github/workflows/end-to-end-tests.yaml b/.github/workflows/end-to-end-tests.yaml index c895376ced4..88f2e19ab37 100644 --- a/.github/workflows/end-to-end-tests.yaml +++ b/.github/workflows/end-to-end-tests.yaml @@ -54,7 +54,7 @@ jobs: # There's a 'download artifact' action, but it hasn't been updated for the workflow_run action # (https://github.com/actions/download-artifact/issues/60) so instead we get this mess: - name: 📥 Download artifact - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2 + uses: dawidd6/action-download-artifact@f29d1b6a8930683e80acedfbe6baa2930cd646b4 # v2 with: run_id: ${{ github.event.workflow_run.id }} name: previewbuild diff --git a/.github/workflows/netlify.yaml b/.github/workflows/netlify.yaml index fef2a3e917d..ab9c85caa5e 100644 --- a/.github/workflows/netlify.yaml +++ b/.github/workflows/netlify.yaml @@ -27,7 +27,7 @@ jobs: # There's a 'download artifact' action, but it hasn't been updated for the workflow_run action # (https://github.com/actions/download-artifact/issues/60) so instead we get this mess: - name: 📥 Download artifact - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2 + uses: dawidd6/action-download-artifact@f29d1b6a8930683e80acedfbe6baa2930cd646b4 # v2 with: run_id: ${{ github.event.workflow_run.id }} name: previewbuild From e3336aef296e852e8acb2fdb010330c2f8ea86d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 10:02:12 +0000 Subject: [PATCH 11/48] Update dependency stylelint to v16 - abandoned (#12046) * Update dependency stylelint to v16 * Bump stylelint-scss for compat Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 4 +- yarn.lock | 308 ++++++++++++++++----------------------------------- 2 files changed, 97 insertions(+), 215 deletions(-) diff --git a/package.json b/package.json index 013b6d998fa..63d6e09a5ea 100644 --- a/package.json +++ b/package.json @@ -229,9 +229,9 @@ "prettier": "2.8.8", "raw-loader": "^4.0.2", "rimraf": "^5.0.0", - "stylelint": "^15.0.0", + "stylelint": "^16.0.0", "stylelint-config-standard": "^35.0.0", - "stylelint-scss": "^5.0.0", + "stylelint-scss": "^6.0.0", "ts-node": "^10.9.1", "typescript": "5.3.3" }, diff --git a/yarn.lock b/yarn.lock index 01704120ac6..47dfaa53f7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1414,17 +1414,17 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@csstools/css-parser-algorithms@^2.3.1": +"@csstools/css-parser-algorithms@^2.3.2": version "2.3.2" resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz#1e0d581dbf4518cb3e939c3b863cb7180c8cedad" integrity sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA== -"@csstools/css-tokenizer@^2.2.0": +"@csstools/css-tokenizer@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz#9dc431c9a5f61087af626e41ac2a79cce7bb253d" integrity sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg== -"@csstools/media-query-list-parser@^2.1.4": +"@csstools/media-query-list-parser@^2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz#94bc8b3c3fd7112a40b7bf0b483e91eba0654a0f" integrity sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ== @@ -2873,11 +2873,6 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/minimist@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.3.tgz#dd249cef80c6fff2ba6a0d4e5beca913e04e25f8" - integrity sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A== - "@types/modernizr@^3.5.3": version "3.5.6" resolved "https://registry.yarnpkg.com/@types/modernizr/-/modernizr-3.5.6.tgz#c50d64a73edc30284679f09ad54e7d095e69f2a0" @@ -3501,11 +3496,6 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" @@ -3895,22 +3885,12 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase-keys@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -4267,7 +4247,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^8.0.0, cosmiconfig@^8.2.0: +cosmiconfig@^8.0.0: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -4277,6 +4257,16 @@ cosmiconfig@^8.0.0, cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + counterpart@^0.18.6: version "0.18.6" resolved "https://registry.yarnpkg.com/counterpart/-/counterpart-0.18.6.tgz#cf6b60d8ef99a4b44b8bf6445fa99b4bd1b2f9dd" @@ -4566,24 +4556,11 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decamelize@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" - integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== - decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -4920,6 +4897,11 @@ entities@~2.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -5560,7 +5542,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -5571,6 +5553,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -5654,12 +5647,12 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-entry-cache@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.1.tgz#c71b3509badb040f362255a53e21f15a4e74fc0f" - integrity sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ== +file-entry-cache@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.2.tgz#2d61bb70ba89b9548e3035b7c9173fe91deafff0" + integrity sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g== dependencies: - flat-cache "^3.1.1" + flat-cache "^3.2.0" file-saver@^2.0.5: version "2.0.5" @@ -5731,10 +5724,10 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat-cache@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== +flat-cache@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: flatted "^3.2.9" keyv "^4.5.3" @@ -6080,11 +6073,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -6153,13 +6141,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - html-encoding-sniffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" @@ -6258,11 +6239,16 @@ ieee754@^1.1.12, ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + image-size@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" @@ -6283,11 +6269,6 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -6306,11 +6287,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -6447,7 +6423,7 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.11.0, is-core-module@^2.5.0: +is-core-module@^2.11.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== @@ -6546,11 +6522,6 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -7334,7 +7305,7 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -7603,16 +7574,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - maplibre-gl@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/maplibre-gl/-/maplibre-gl-2.4.0.tgz#2b53dbf526626bf4ee92ad4f33f13ef09e5af182" @@ -7749,23 +7710,10 @@ memoizee@^0.4.15: next-tick "^1.1.0" timers-ext "^0.1.7" -meow@^10.1.5: - version "10.1.5" - resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" - integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^7.0.0" - decamelize "^5.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.2" - read-pkg-up "^8.0.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^1.2.2" - yargs-parser "^20.2.9" +meow@^12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== merge-descriptors@1.0.1: version "1.0.1" @@ -7817,7 +7765,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -min-indent@^1.0.0, min-indent@^1.0.1: +min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== @@ -7836,15 +7784,6 @@ minimatch@^9.0.1, minimatch@^9.0.3: dependencies: brace-expansion "^2.0.1" -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - minimist@>=1.2.2, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -7908,6 +7847,11 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -7967,16 +7911,6 @@ normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -8404,10 +8338,10 @@ postcss-resolve-nested-selector@^0.1.1: resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== -postcss-safe-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" - integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== +postcss-safe-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz#6273d4e5149e286db5a45bc6cf6eafcad464014a" + integrity sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg== postcss-scss@^4.0.4: version "4.0.9" @@ -8427,7 +8361,7 @@ postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.3.11, postcss@^8.4.28: +postcss@^8.3.11: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -8436,6 +8370,15 @@ postcss@^8.3.11, postcss@^8.4.28: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.32: + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + posthog-js@1.93.2: version "1.93.2" resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.93.2.tgz#f3ab11983c558ad36966b552bb4ad98526cdcff6" @@ -8625,11 +8568,6 @@ queue@6.0.2: dependencies: inherits "~2.0.3" -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - quickselect@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" @@ -8775,15 +8713,6 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg-up@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" - integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== - dependencies: - find-up "^5.0.0" - read-pkg "^6.0.0" - type-fest "^1.0.1" - read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -8794,16 +8723,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read-pkg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" - integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^1.0.1" - readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" @@ -8841,14 +8760,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - redux@^4.0.0, redux@^4.0.4: version "4.2.1" resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" @@ -9177,7 +9088,7 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -9525,7 +9436,7 @@ string_decoder@~1.1.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -9554,23 +9465,11 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" - integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== - dependencies: - min-indent "^1.0.1" - strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-search@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" - integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== - stylelint-config-recommended@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz#b395c7014838d2aaca1755eebd914d0bb5274994" @@ -9583,10 +9482,10 @@ stylelint-config-standard@^35.0.0: dependencies: stylelint-config-recommended "^14.0.0" -stylelint-scss@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-5.3.1.tgz#7f0f5f06d0a2a3c515aa71d3a8de3548045e03e1" - integrity sha512-5I9ZDIm77BZrjOccma5WyW2nJEKjXDd4Ca8Kk+oBapSO4pewSlno3n+OyimcyVJJujQZkBN2D+xuMkIamSc6hA== +stylelint-scss@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-6.0.0.tgz#bf6be6798d71c898484b7e97007d5ed69a89308d" + integrity sha512-N1xV/Ef5PNRQQt9E45unzGvBUN1KZxCI8B4FgN/pMfmyRYbZGVN4y9qWlvOMdScU17c8VVCnjIHTVn38Bb6qSA== dependencies: known-css-properties "^0.29.0" postcss-media-query-parser "^0.2.3" @@ -9594,47 +9493,45 @@ stylelint-scss@^5.0.0: postcss-selector-parser "^6.0.13" postcss-value-parser "^4.2.0" -stylelint@^15.0.0: - version "15.11.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.11.0.tgz#3ff8466f5f5c47362bc7c8c9d382741c58bc3292" - integrity sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw== +stylelint@^16.0.0: + version "16.0.2" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.0.2.tgz#fe49e9ff7460d9ae98501e9116884238432ea31e" + integrity sha512-SxA/rg3VWxdoHZlW0nmVueWO1E7TAKW4W6mmA3iTxxEF9bIeQdFZu2oiBlQYyNe1pGnOamOqo2XYnI7cs5Bgow== dependencies: - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/media-query-list-parser" "^2.1.4" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/media-query-list-parser" "^2.1.5" "@csstools/selector-specificity" "^3.0.0" balanced-match "^2.0.0" colord "^2.9.3" - cosmiconfig "^8.2.0" + cosmiconfig "^9.0.0" css-functions-list "^3.2.1" css-tree "^2.3.1" debug "^4.3.4" - fast-glob "^3.3.1" + fast-glob "^3.3.2" fastest-levenshtein "^1.0.16" - file-entry-cache "^7.0.0" + file-entry-cache "^7.0.2" global-modules "^2.0.0" globby "^11.1.0" globjoin "^0.1.4" html-tags "^3.3.1" - ignore "^5.2.4" - import-lazy "^4.0.0" + ignore "^5.3.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" known-css-properties "^0.29.0" mathml-tag-names "^2.1.3" - meow "^10.1.5" + meow "^12.1.1" micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.28" + postcss "^8.4.32" postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^6.0.0" + postcss-safe-parser "^7.0.0" postcss-selector-parser "^6.0.13" postcss-value-parser "^4.2.0" resolve-from "^5.0.0" string-width "^4.2.3" - strip-ansi "^6.0.1" - style-search "^0.1.0" + strip-ansi "^7.1.0" supports-hyperlinks "^3.0.0" svg-tags "^1.0.0" table "^6.8.1" @@ -9856,11 +9753,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - triple-beam@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" @@ -9978,11 +9870,6 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -10530,11 +10417,6 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" From 8040ed92a9521a6e032262989802e0a4d9dc5c6b Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 13 Dec 2023 14:49:43 +0000 Subject: [PATCH 12/48] Migrate integration-manager/* from Cypress to Playwright (#12031) * Migrate send_event.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate read_events.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate kick.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Migrate get-openid-token.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Discard changes to playwright/pages/client.ts --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> From 4f19356492d5aafbe9714497f2f7f7b4f1c541d8 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 13 Dec 2023 14:59:08 +0000 Subject: [PATCH 13/48] Migrate timeline.spec.ts from Cypress to Playwright (#12025) * Migrate timeline.spec.ts from Cypress to Playwright Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Monospace font for timestamps Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * More expects Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * delint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- cypress/e2e/timeline/timeline.spec.ts | 1031 --------------- cypress/fixtures/element.png | Bin 0 -> 17083 bytes playwright.config.ts | 5 +- playwright/e2e/timeline/timeline.spec.ts | 1130 +++++++++++++++++ playwright/element-web-test.ts | 4 + playwright/pages/ElementAppPage.ts | 14 + playwright/pages/client.ts | 42 + ...sed-gels-and-messages-irc-layout-linux.png | Bin 0 -> 47123 bytes .../collapsed-gels-bubble-layout-linux.png | Bin 0 -> 41326 bytes .../configured-room-irc-layout-linux.png | Bin 0 -> 41365 bytes ...e-inline-start-margin-irc-layout-linux.png | Bin 0 -> 52246 bytes ...-tile-reply-chains-bubble-layout-linux.png | Bin 0 -> 7719 bytes ...ply-chains-compact-modern-layout-linux.png | Bin 0 -> 8239 bytes ...ent-tile-reply-chains-irc-layout-linux.png | Bin 0 -> 9337 bytes ...ent-tile-reply-chains-irc-modern-linux.png | Bin 0 -> 8406 bytes .../event-tiles-bubble-layout-linux.png | Bin 0 -> 40545 bytes ...vent-tiles-compact-modern-layout-linux.png | Bin 0 -> 50530 bytes .../event-tiles-irc-layout-linux.png | Bin 0 -> 55933 bytes .../event-tiles-modern-layout-linux.png | Bin 0 -> 40466 bytes ...ded-gels-and-messages-irc-layout-linux.png | Bin 0 -> 56988 bytes .../expanded-gels-bubble-layout-linux.png | Bin 0 -> 50979 bytes .../expanded-gels-emote-irc-layout-linux.png | Bin 0 -> 58514 bytes .../expanded-gels-irc-layout-linux.png | Bin 0 -> 52246 bytes .../expanded-gels-modern-layout-linux.png | Bin 0 -> 51622 bytes ...anded-gels-redaction-placeholder-linux.png | Bin 0 -> 55716 bytes ...event-line-padding-modern-layout-linux.png | Bin 0 -> 51357 bytes ...ent-line-zero-padding-irc-layout-linux.png | Bin 0 -> 49797 bytes .../highlighted-search-results-linux.png | Bin 0 -> 19786 bytes ...red-hidden-event-line-irc-layout-linux.png | Bin 0 -> 1891 bytes ...strings-with-reply-bubble-layout-linux.png | Bin 0 -> 94480 bytes ...ng-strings-with-reply-irc-layout-linux.png | Bin 0 -> 93542 bytes ...strings-with-reply-modern-layout-linux.png | Bin 0 -> 102519 bytes .../search-bar-on-timeline-linux.png | Bin 0 -> 5125 bytes ...search-results-with-TextualEvent-linux.png | Bin 0 -> 23412 bytes .../timeline.spec.ts/url-preview-linux.png | Bin 0 -> 10638 bytes 35 files changed, 1194 insertions(+), 1032 deletions(-) delete mode 100644 cypress/e2e/timeline/timeline.spec.ts create mode 100644 cypress/fixtures/element.png create mode 100644 playwright/e2e/timeline/timeline.spec.ts create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/collapsed-gels-and-messages-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/collapsed-gels-bubble-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/configured-room-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-line-inline-start-margin-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-bubble-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-compact-modern-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-irc-modern-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tiles-bubble-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tiles-compact-modern-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tiles-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/event-tiles-modern-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-and-messages-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-bubble-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-emote-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-modern-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-redaction-placeholder-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/hidden-event-line-padding-modern-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/hidden-event-line-zero-padding-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/highlighted-search-results-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/hovered-hidden-event-line-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-bubble-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-irc-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-modern-layout-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/search-bar-on-timeline-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/search-results-with-TextualEvent-linux.png create mode 100644 playwright/snapshots/timeline/timeline.spec.ts/url-preview-linux.png diff --git a/cypress/e2e/timeline/timeline.spec.ts b/cypress/e2e/timeline/timeline.spec.ts deleted file mode 100644 index e79f506e258..00000000000 --- a/cypress/e2e/timeline/timeline.spec.ts +++ /dev/null @@ -1,1031 +0,0 @@ -/* -Copyright 2022 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import type { ISendEventResponse, EventType, MsgType } from "matrix-js-sdk/src/matrix"; -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { SettingLevel } from "../../../src/settings/SettingLevel"; -import { Layout } from "../../../src/settings/enums/Layout"; -import { MatrixClient } from "../../global"; -import Chainable = Cypress.Chainable; - -// The avatar size used in the timeline -const AVATAR_SIZE = 30; -// The resize method used in the timeline -const AVATAR_RESIZE_METHOD = "crop"; - -const ROOM_NAME = "Test room"; -const OLD_AVATAR = "avatar_image1"; -const NEW_AVATAR = "avatar_image2"; -const OLD_NAME = "Alan"; -const NEW_NAME = "Alan (away)"; - -const getEventTilesWithBodies = (): Chainable => { - return cy.get(".mx_EventTile").filter((_i, e) => e.getElementsByClassName("mx_EventTile_body").length > 0); -}; - -const expectDisplayName = (e: JQuery, displayName: string): void => { - expect(e.find(".mx_DisambiguatedProfile_displayName").text()).to.equal(displayName); -}; - -const expectAvatar = (e: JQuery, avatarUrl: string): void => { - cy.all([cy.window({ log: false }), cy.getClient()]).then(([win, cli]) => { - const size = AVATAR_SIZE * win.devicePixelRatio; - expect(e.find(".mx_BaseAvatar img").attr("src")).to.equal( - // eslint-disable-next-line no-restricted-properties - cli.mxcUrlToHttp(avatarUrl, size, size, AVATAR_RESIZE_METHOD), - ); - }); -}; - -const sendEvent = (roomId: string, html = false): Chainable => { - const content = { - msgtype: "m.text" as MsgType, - body: "Message", - format: undefined, - formatted_body: undefined, - }; - if (html) { - content.format = "org.matrix.custom.html"; - content.formatted_body = "Message"; - } - return cy.sendEvent(roomId, null, "m.room.message" as EventType, content); -}; - -describe("Timeline", () => { - let homeserver: HomeserverInstance; - - let roomId: string; - - let oldAvatarUrl: string; - let newAvatarUrl: string; - - beforeEach(() => { - cy.startHomeserver("default").then((data) => { - homeserver = data; - cy.initTestUser(homeserver, OLD_NAME).then(() => - cy.createRoom({ name: ROOM_NAME }).then((_room1Id) => { - roomId = _room1Id; - }), - ); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - }); - - describe("useOnlyCurrentProfiles", () => { - beforeEach(() => { - cy.uploadContent(OLD_AVATAR).then(({ content_uri: url }) => { - oldAvatarUrl = url; - cy.setAvatarUrl(url); - }); - cy.uploadContent(NEW_AVATAR).then(({ content_uri: url }) => { - newAvatarUrl = url; - }); - }); - - it("should show historical profiles if disabled", () => { - cy.setSettingValue("useOnlyCurrentProfiles", null, SettingLevel.ACCOUNT, false); - sendEvent(roomId); - cy.setDisplayName("Alan (away)"); - cy.setAvatarUrl(newAvatarUrl); - // XXX: If we send the second event too quickly, there won't be - // enough time for the client to register the profile change - cy.wait(500); - sendEvent(roomId); - cy.viewRoomByName(ROOM_NAME); - - const events = getEventTilesWithBodies(); - - events.should("have.length", 2); - events.each((e, i) => { - if (i === 0) { - expectDisplayName(e, OLD_NAME); - expectAvatar(e, oldAvatarUrl); - } else if (i === 1) { - expectDisplayName(e, NEW_NAME); - expectAvatar(e, newAvatarUrl); - } - }); - }); - - it("should not show historical profiles if enabled", () => { - cy.setSettingValue("useOnlyCurrentProfiles", null, SettingLevel.ACCOUNT, true); - sendEvent(roomId); - cy.setDisplayName(NEW_NAME); - cy.setAvatarUrl(newAvatarUrl); - // XXX: If we send the second event too quickly, there won't be - // enough time for the client to register the profile change - cy.wait(500); - sendEvent(roomId); - cy.viewRoomByName(ROOM_NAME); - - const events = getEventTilesWithBodies(); - - events.should("have.length", 2); - events.each((e) => { - expectDisplayName(e, NEW_NAME); - expectAvatar(e, newAvatarUrl); - }); - }); - }); - - describe("configure room", () => { - // Exclude timestamp and read marker from snapshots - const percyCSS = ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - - beforeEach(() => { - cy.injectAxe(); - }); - - it("should create and configure a room on IRC layout", () => { - cy.visit("/#/room/" + roomId); - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - cy.get(".mx_RoomView_body .mx_GenericEventListSummary[data-layout='irc']").within(() => { - cy.get(".mx_GenericEventListSummary_summary") - .findByText(OLD_NAME + " created and configured the room.") - .should("exist"); - }); - - // wait for the date separator to appear to have a stable percy snapshot - cy.get(".mx_TimelineSeparator").should("have.text", "today"); - - cy.get(".mx_MainSplit").percySnapshotElement("Configured room on IRC layout"); - }); - - it("should have an expanded generic event list summary (GELS) on IRC layout", () => { - cy.visit("/#/room/" + roomId); - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - - // Wait until configuration is finished - cy.get(".mx_RoomView_body .mx_GenericEventListSummary[data-layout='irc']").within(() => { - cy.get(".mx_GenericEventListSummary_summary") - .findByText(OLD_NAME + " created and configured the room.") - .should("exist"); - }); - - cy.get(".mx_GenericEventListSummary").within(() => { - // Click "expand" link button - cy.findByRole("button", { name: "Expand" }).click(); - - // Assert that the "expand" link button worked - cy.findByRole("button", { name: "Collapse" }).should("exist"); - }); - - cy.get(".mx_MainSplit").percySnapshotElement("Expanded GELS on IRC layout", { percyCSS }); - }); - - it("should have an expanded generic event list summary (GELS) on compact modern/group layout", () => { - cy.visit("/#/room/" + roomId); - - // Set compact modern layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Group).setSettingValue( - "useCompactLayout", - null, - SettingLevel.DEVICE, - true, - ); - - // Wait until configuration is finished - cy.get(".mx_RoomView_body .mx_GenericEventListSummary[data-layout='group']") - .findByText(OLD_NAME + " created and configured the room.") - .should("exist"); - - cy.get(".mx_GenericEventListSummary").within(() => { - // Click "expand" link button - cy.findByRole("button", { name: "Expand" }).click(); - - // Assert that the "expand" link button worked - cy.findByRole("button", { name: "Collapse" }).should("exist"); - }); - - cy.get(".mx_MainSplit").percySnapshotElement("Expanded GELS on modern layout", { percyCSS }); - }); - - it("should click 'collapse' on the first hovered info event line inside GELS on bubble layout", () => { - // This test checks clickability of the "Collapse" link button, which had been covered with - // MessageActionBar's safe area - https://github.com/vector-im/element-web/issues/22864 - - cy.visit("/#/room/" + roomId); - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); - cy.get(".mx_RoomView_body .mx_GenericEventListSummary[data-layout='bubble']").within(() => { - cy.get(".mx_GenericEventListSummary_summary") - .findByText(OLD_NAME + " created and configured the room.") - .should("exist"); - }); - - cy.get(".mx_GenericEventListSummary").within(() => { - // Click "expand" link button - cy.findByRole("button", { name: "Expand" }).click(); - - // Assert that the "expand" link button worked - cy.findByRole("button", { name: "Collapse" }).should("exist"); - }); - - // Make sure spacer is not visible on bubble layout - cy.get(".mx_GenericEventListSummary[data-layout=bubble] .mx_GenericEventListSummary_spacer").should( - "not.be.visible", // See: _GenericEventListSummary.pcss - ); - - // Exclude timestamp from snapshot - const percyCSS = ".mx_MessageTimestamp { visibility: hidden !important; }"; - - // Save snapshot of expanded generic event list summary on bubble layout - cy.get(".mx_MainSplit").percySnapshotElement("Expanded GELS on bubble layout", { percyCSS }); - - cy.get(".mx_GenericEventListSummary").within(() => { - // Click "collapse" link button on the first hovered info event line - cy.get(".mx_GenericEventListSummary_unstyledList .mx_EventTile_info:first-of-type") - .realHover() - .findByRole("toolbar", { name: "Message Actions" }) - .should("be.visible"); - cy.findByRole("button", { name: "Collapse" }).click(); - - // Assert that "collapse" link button worked - cy.findByRole("button", { name: "Expand" }).should("exist"); - }); - - // Save snapshot of collapsed generic event list summary on bubble layout - cy.get(".mx_MainSplit").percySnapshotElement("Collapsed GELS on bubble layout", { percyCSS }); - }); - - it("should add inline start margin to an event line on IRC layout", () => { - cy.visit("/#/room/" + roomId); - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - - // Wait until configuration is finished - cy.get(".mx_RoomView_body .mx_GenericEventListSummary[data-layout='irc']").within(() => { - cy.get(".mx_GenericEventListSummary_summary") - .findByText(OLD_NAME + " created and configured the room.") - .should("exist"); - }); - - // Click "expand" link button - cy.get(".mx_GenericEventListSummary").findByRole("button", { name: "Expand" }).click(); - - // Check the event line has margin instead of inset property - // cf. _EventTile.pcss - // --EventTile_irc_line_info-margin-inline-start - // = calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding)) - // = 80 + 14 + 5 = 99px - - cy.get(".mx_EventTile[data-layout=irc].mx_EventTile_info:first-of-type .mx_EventTile_line") - .should("have.css", "margin-inline-start", "99px") - .should("have.css", "inset-inline-start", "0px"); - - // Exclude timestamp and read marker from snapshot - const percyCSS = ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - cy.get(".mx_MainSplit").percySnapshotElement("Event line with inline start margin on IRC layout", { - percyCSS, - }); - cy.checkA11y(); - }); - }); - - describe("message displaying", () => { - beforeEach(() => { - cy.injectAxe(); - }); - - const messageEdit = () => { - cy.contains(".mx_EventTile .mx_EventTile_line", "Message") - .realHover() - .findByRole("toolbar", { name: "Message Actions" }) - .findByRole("button", { name: "Edit" }) - .click(); - cy.findByRole("textbox", { name: "Edit message" }).type("Edit{enter}"); - - // Assert that the edited message and the link button are found - cy.contains(".mx_EventTile .mx_EventTile_line", "MessageEdit").within(() => { - // Regex patterns due to the edited date - cy.findByRole("button", { name: /Edited at .*? Click to view edits./ }); - }); - }; - - it("should align generic event list summary with messages and emote on IRC layout", () => { - // This test aims to check: - // 1. Alignment of collapsed GELS (generic event list summary) and messages - // 2. Alignment of expanded GELS and messages - // 3. Alignment of expanded GELS and placeholder of deleted message - // 4. Alignment of expanded GELS, placeholder of deleted message, and emote - - // Exclude timestamp from snapshot of mx_MainSplit - const percyCSS = ".mx_MainSplit .mx_MessageTimestamp { visibility: hidden !important; }"; - - cy.visit("/#/room/" + roomId); - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - - // Wait until configuration is finished - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - // Send messages - cy.get(".mx_RoomView_body").within(() => { - cy.findByRole("textbox", { name: "Send a message…" }).type("Hello Mr. Bot{enter}"); - cy.findByRole("textbox", { name: "Send a message…" }).type("Hello again, Mr. Bot{enter}"); - }); - - // Make sure the second message was sent - cy.get(".mx_RoomView_MessageList > .mx_EventTile_last .mx_EventTile_receiptSent").should("be.visible"); - - // 1. Alignment of collapsed GELS (generic event list summary) and messages - // Check inline start spacing of collapsed GELS - // See: _EventTile.pcss - // .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line - // = var(--name-width) + var(--icon-width) + var(--MessageTimestamp-width) + 2 * var(--right-padding) - // = 80 + 14 + 46 + 2 * 5 - // = 150px - cy.get(".mx_GenericEventListSummary[data-layout=irc] > .mx_EventTile_line").should( - "have.css", - "padding-inline-start", - "150px", - ); - // Check width and spacing values of elements in .mx_EventTile, which should be equal to 150px - // --right-padding should be applied - cy.get(".mx_EventTile > *").should("have.css", "margin-right", "5px"); - // --name-width width zero inline end margin should be applied - cy.get(".mx_EventTile .mx_DisambiguatedProfile") - .should("have.css", "width", "80px") - .should("have.css", "margin-inline-end", "0px"); - // --icon-width should be applied - cy.get(".mx_EventTile .mx_EventTile_avatar > .mx_BaseAvatar").should("have.css", "width", "14px"); - // var(--MessageTimestamp-width) should be applied - cy.get(".mx_EventTile > a").should("have.css", "min-width", "46px"); - // Record alignment of collapsed GELS and messages on messagePanel - cy.get(".mx_MainSplit").percySnapshotElement("Collapsed GELS and messages on IRC layout", { percyCSS }); - - // 2. Alignment of expanded GELS and messages - // Click "expand" link button - cy.get(".mx_GenericEventListSummary").findByRole("button", { name: "Expand" }).click(); - // Check inline start spacing of info line on expanded GELS - cy.get(".mx_EventTile[data-layout=irc].mx_EventTile_info:first-of-type .mx_EventTile_line") - // See: _EventTile.pcss - // --EventTile_irc_line_info-margin-inline-start - // = 80 + 14 + 1 * 5 - .should("have.css", "margin-inline-start", "99px"); - // Record alignment of expanded GELS and messages on messagePanel - cy.get(".mx_MainSplit").percySnapshotElement("Expanded GELS and messages on IRC layout", { percyCSS }); - - // 3. Alignment of expanded GELS and placeholder of deleted message - // Delete the second (last) message - cy.get(".mx_RoomView_MessageList > .mx_EventTile_last") - .realHover() - .findByRole("button", { name: "Options" }) - .should("be.visible") - .click(); - cy.findByRole("menuitem", { name: "Remove" }).should("be.visible").click(); - // Confirm deletion - cy.get(".mx_Dialog_buttons").within(() => { - cy.findByRole("button", { name: "Remove" }).click(); - }); - // Make sure the dialog was closed and the second (last) message was redacted - cy.get(".mx_Dialog").should("not.exist"); - cy.get(".mx_GenericEventListSummary .mx_EventTile_last .mx_RedactedBody").should("be.visible"); - cy.get(".mx_GenericEventListSummary .mx_EventTile_last .mx_EventTile_receiptSent").should("be.visible"); - // Record alignment of expanded GELS and placeholder of deleted message on messagePanel - cy.get(".mx_MainSplit").percySnapshotElement("Expanded GELS and with placeholder of deleted message", { - percyCSS, - }); - - // 4. Alignment of expanded GELS, placeholder of deleted message, and emote - // Send a emote - cy.get(".mx_RoomView_body").within(() => { - cy.findByRole("textbox", { name: "Send a message…" }).type("/me says hello to Mr. Bot{enter}"); - }); - // Check inline start margin of its avatar - // Here --right-padding is for the avatar on the message line - // See: _IRCLayout.pcss - // .mx_IRCLayout .mx_EventTile_emote .mx_EventTile_avatar - // = calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding)) - // = 80 + 14 + 1 * 5 - cy.get(".mx_EventTile_emote .mx_EventTile_avatar").should("have.css", "margin-left", "99px"); - // Make sure emote was sent - cy.get(".mx_EventTile_last.mx_EventTile_emote .mx_EventTile_receiptSent").should("be.visible"); - // Record alignment of expanded GELS, placeholder of deleted message, and emote - cy.get(".mx_MainSplit").percySnapshotElement( - "Expanded GELS and with emote and placeholder of deleted message", - { - percyCSS, - }, - ); - }); - - it("should render EventTiles on IRC, modern (group), and bubble layout", () => { - const percyCSS = - // Hide because flaky - See https://github.com/vector-im/element-web/issues/24957 - ".mx_TopUnreadMessagesBar, " + - // Exclude timestamp and read marker from snapshots - ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - - sendEvent(roomId); - sendEvent(roomId); // check continuation - sendEvent(roomId); // check the last EventTile - - cy.visit("/#/room/" + roomId); - // Send a plain text message - cy.getComposer().type(`Hello{enter}`); - // Send a big emoji - cy.getComposer().type(`🏀{enter}`); - // Send an inline emoji - cy.getComposer().type(`This message has an inline emoji 👒{enter}`); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - // IRC layout - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - - // Wait until configuration is finished - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - cy.get(".mx_MainSplit").percySnapshotElement("EventTiles on IRC layout", { percyCSS }); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Group/modern layout - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Group); - - cy.get(".mx_RoomView_body[data-layout=group]").within(() => { - // Check that the last EventTile is rendered - cy.get(".mx_EventTile.mx_EventTile_last").should("exist"); - }); - - cy.get(".mx_MainSplit").percySnapshotElement("EventTiles on modern layout", { percyCSS }); - - // Check the same thing for compact layout - cy.setSettingValue("useCompactLayout", null, SettingLevel.DEVICE, true); - - cy.get(".mx_MatrixChat_useCompactLayout").within(() => { - // Check that the last EventTile is rendered - cy.get(".mx_EventTile.mx_EventTile_last").should("exist"); - }); - - cy.get(".mx_MainSplit").percySnapshotElement("EventTiles on compact modern layout", { percyCSS }); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Message bubble layout - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); - - cy.get(".mx_MainSplit").percySnapshotElement("EventTiles on bubble layout", { percyCSS }); - }); - - it("should set inline start padding to a hidden event line", () => { - sendEvent(roomId); - cy.visit("/#/room/" + roomId); - cy.setSettingValue("showHiddenEventsInTimeline", null, SettingLevel.DEVICE, true); - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - // Edit message - messageEdit(); - - // Click timestamp to highlight hidden event line - cy.get(".mx_RoomView_body .mx_EventTile_info .mx_MessageTimestamp").click(); - - // Exclude timestamp and read marker from snapshot - //const percyCSS = ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - - // should not add inline start padding to a hidden event line on IRC layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - cy.get(".mx_EventTile[data-layout=irc].mx_EventTile_info .mx_EventTile_line").should( - "have.css", - "padding-inline-start", - "0px", - ); - - // Disabled because flaky - see https://github.com/vector-im/element-web/issues/24881 - /*cy.get(".mx_MainSplit").percySnapshotElement("Hidden event line with zero padding on IRC layout", { - percyCSS, - });*/ - - // should add inline start padding to a hidden event line on modern layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Group); - cy.get(".mx_EventTile[data-layout=group].mx_EventTile_info .mx_EventTile_line") - // calc(var(--EventTile_group_line-spacing-inline-start) + 20px) = 64 + 20 = 84px - .should("have.css", "padding-inline-start", "84px"); - - // Disabled because flaky - see https://github.com/vector-im/element-web/issues/24881 - //cy.get(".mx_MainSplit").percySnapshotElement("Hidden event line with padding on modern layout", { - // percyCSS, - //}); - }); - - it("should click view source event toggle", () => { - // This test checks: - // 1. clickability of top left of view source event toggle - // 2. clickability of view source toggle on IRC layout - - // Exclude timestamp from snapshot - const percyCSS = ".mx_MessageTimestamp { visibility: hidden !important; }"; - - sendEvent(roomId); - cy.visit("/#/room/" + roomId); - cy.setSettingValue("showHiddenEventsInTimeline", null, SettingLevel.DEVICE, true); - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - // Edit message - messageEdit(); - - // 1. clickability of top left of view source event toggle - - // Click top left of the event toggle, which should not be covered by MessageActionBar's safe area - cy.get(".mx_EventTile_last[data-layout=group] .mx_ViewSourceEvent") - .should("exist") - .realHover() - .within(() => { - cy.findByRole("button", { name: "toggle event" }).click("topLeft"); - }); - - // Make sure the expand toggle works - cy.get(".mx_EventTile_last[data-layout=group] .mx_ViewSourceEvent_expanded") - .should("be.visible") - .realHover() - .within(() => { - cy.findByRole("button", { name: "toggle event" }) - // Check size and position of toggle on expanded view source event - // See: _ViewSourceEvent.pcss - .should("have.css", "height", "12px") // --ViewSourceEvent_toggle-size - .should("have.css", "align-self", "flex-end") - - // Click again to collapse the source - .click("topLeft"); - }); - - // Make sure the collapse toggle works - cy.get(".mx_EventTile_last[data-layout=group] .mx_ViewSourceEvent_expanded").should("not.exist"); - - // 2. clickability of view source toggle on IRC layout - - // Enable IRC layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - - // Hover the view source toggle on IRC layout - cy.get(".mx_GenericEventListSummary[data-layout=irc] .mx_EventTile .mx_ViewSourceEvent") - .should("exist") - .realHover() - .percySnapshotElement("Hovered hidden event line on IRC layout", { percyCSS }); - - // Click view source event toggle - cy.get(".mx_GenericEventListSummary[data-layout=irc] .mx_EventTile .mx_ViewSourceEvent") - .should("exist") - .realHover() - .within(() => { - cy.findByRole("button", { name: "toggle event" }).click("topLeft"); - }); - - // Make sure the expand toggle worked - cy.get(".mx_EventTile[data-layout=irc] .mx_ViewSourceEvent_expanded").should("be.visible"); - }); - - it("should render file size in kibibytes on a file tile", () => { - cy.visit("/#/room/" + roomId); - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - // Upload a file from the message composer - cy.get(".mx_MessageComposer_actions input[type='file']").selectFile( - "cypress/fixtures/matrix-org-client-versions.json", - { force: true }, - ); - - cy.get(".mx_Dialog").within(() => { - // Click "Upload" button - cy.findByRole("button", { name: "Upload" }).click(); - }); - - // Wait until the file is sent - cy.get(".mx_RoomView_statusArea_expanded").should("not.exist"); - cy.get(".mx_EventTile.mx_EventTile_last .mx_EventTile_receiptSent").should("exist"); - - // Assert that the file size is displayed in kibibytes (1024 bytes), not kilobytes (1000 bytes) - // See: https://github.com/vector-im/element-web/issues/24866 - cy.get(".mx_EventTile_last").within(() => { - // actual file size in kibibytes - cy.get(".mx_MFileBody_info_filename") - .findByText(/1.12 KB/) - .should("exist"); - }); - }); - - it("should render url previews", () => { - cy.intercept("**/_matrix/media/v3/thumbnail/matrix.org/2022-08-16_yaiSVSRIsNFfxDnV?*", { - statusCode: 200, - fixture: "riot.png", - headers: { - "Content-Type": "image/png", - }, - }).as("mxc"); - cy.intercept("**/_matrix/media/v3/preview_url?url=https%3A%2F%2Fcall.element.io%2F&ts=*", { - statusCode: 200, - body: { - "og:title": "Element Call", - "og:description": null, - "og:image:width": 48, - "og:image:height": 48, - "og:image": "mxc://matrix.org/2022-08-16_yaiSVSRIsNFfxDnV", - "og:image:type": "image/png", - "matrix:image:size": 2121, - }, - headers: { - "Content-Type": "application/json", - }, - }).as("preview_url"); - - cy.sendEvent(roomId, null, "m.room.message" as EventType, { - msgtype: "m.text" as MsgType, - body: "https://call.element.io/", - }); - cy.visit("/#/room/" + roomId); - - cy.get(".mx_LinkPreviewWidget").should("exist").findByText("Element Call"); - - cy.wait("@preview_url"); - cy.wait("@mxc"); - - cy.checkA11y(); - - // Exclude timestamp and read marker from snapshot - const percyCSS = ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - cy.get(".mx_EventTile_last").percySnapshotElement("URL Preview", { - percyCSS, - widths: [800, 400], - }); - }); - - describe("on search results panel", () => { - it("should highlight search result words regardless of formatting", () => { - sendEvent(roomId); - sendEvent(roomId, true); - cy.visit("/#/room/" + roomId); - - cy.get(".mx_LegacyRoomHeader").findByRole("button", { name: "Search" }).click(); - - cy.get(".mx_SearchBar").percySnapshotElement("Search bar on the timeline", { - // Emulate narrow timeline - widths: [320, 640], - }); - - cy.get(".mx_SearchBar_input").findByRole("textbox").type("Message{enter}"); - - cy.get(".mx_EventTile:not(.mx_EventTile_contextual) .mx_EventTile_searchHighlight").should("exist"); - cy.get(".mx_RoomView_searchResultsPanel").percySnapshotElement("Highlighted search results"); - }); - - it("should render a fully opaque textual event", () => { - const stringToSearch = "Message"; // Same with string sent with sendEvent() - - sendEvent(roomId); - - cy.visit("/#/room/" + roomId); - - // Open a room setting dialog - cy.findByRole("button", { name: "Room options" }).click(); - cy.findByRole("menuitem", { name: "Settings" }).click(); - - // Set a room topic to render a TextualEvent - cy.findByRole("textbox", { name: "Room Topic" }).type(`This is a room for ${stringToSearch}.`); - cy.findByRole("button", { name: "Save" }).click(); - - cy.closeDialog(); - - // Assert that the TextualEvent is rendered - cy.findByText(`${OLD_NAME} changed the topic to "This is a room for ${stringToSearch}.".`) - .should("exist") - .should("have.class", "mx_TextualEvent"); - - // Display the room search bar - cy.get(".mx_LegacyRoomHeader").findByRole("button", { name: "Search" }).click(); - - // Search the string to display both the message and TextualEvent on search results panel - cy.get(".mx_SearchBar").within(() => { - cy.findByRole("textbox").type(`${stringToSearch}{enter}`); - }); - - // On search results panel - cy.get(".mx_RoomView_searchResultsPanel").within(() => { - // Assert that contextual event tiles are translucent - cy.get(".mx_EventTile.mx_EventTile_contextual").should("have.css", "opacity", "0.4"); - - // Assert that the TextualEvent is fully opaque (visually solid). - cy.get(".mx_EventTile .mx_TextualEvent").should("have.css", "opacity", "1"); - }); - - cy.get(".mx_RoomView_searchResultsPanel").percySnapshotElement("Search results - with TextualEvent"); - }); - }); - }); - - describe("message sending", () => { - const MESSAGE = "Hello world"; - const reply = "Reply"; - const viewRoomSendMessageAndSetupReply = () => { - // View room - cy.visit("/#/room/" + roomId); - - // Send a message - cy.getComposer().type(`${MESSAGE}{enter}`); - - // Reply to the message - cy.get(".mx_EventTile_last") - .within(() => { - cy.findByText(MESSAGE); - }) - .realHover() - .findByRole("button", { name: "Reply" }) - .click(); - }; - - // For clicking the reply button on the last line - const clickButtonReply = () => { - cy.get(".mx_RoomView_MessageList").within(() => { - cy.get(".mx_EventTile_last").realHover().findByRole("button", { name: "Reply" }).click(); - }); - }; - - it("can reply with a text message", () => { - viewRoomSendMessageAndSetupReply(); - - cy.getComposer().type(`${reply}{enter}`); - - cy.get(".mx_RoomView_body").within(() => { - cy.get(".mx_EventTile_last .mx_EventTile_line").within(() => { - cy.get(".mx_ReplyTile .mx_MTextBody").within(() => { - cy.findByText(MESSAGE).should("exist"); - }); - - cy.findByText(reply).should("have.length", 1); - }); - }); - }); - - it("can reply with a voice message", () => { - viewRoomSendMessageAndSetupReply(); - - cy.openMessageComposerOptions().within(() => { - cy.findByRole("menuitem", { name: "Voice Message" }).click(); - }); - - // Record an empty message - cy.wait(3000); - - cy.get(".mx_RoomView_body").within(() => { - cy.get(".mx_MessageComposer").findByRole("button", { name: "Send voice message" }).click(); - - cy.get(".mx_EventTile_last .mx_EventTile_line").within(() => { - cy.get(".mx_ReplyTile .mx_MTextBody").within(() => { - cy.findByText(MESSAGE).should("exist"); - }); - - cy.get(".mx_MVoiceMessageBody").should("have.length", 1); - }); - }); - }); - - it("should not be possible to send flag with regional emojis", () => { - cy.visit("/#/room/" + roomId); - - // Send a message - cy.getComposer().type(":regional_indicator_a"); - cy.contains(".mx_Autocomplete_Completion_title", ":regional_indicator_a:").click(); - cy.getComposer().type(":regional_indicator_r"); - cy.contains(".mx_Autocomplete_Completion_title", ":regional_indicator_r:").click(); - cy.getComposer().type(" :regional_indicator_z"); - cy.contains(".mx_Autocomplete_Completion_title", ":regional_indicator_z:").click(); - cy.getComposer().type(":regional_indicator_a"); - cy.contains(".mx_Autocomplete_Completion_title", ":regional_indicator_a:").click(); - cy.getComposer().type("{enter}"); - - cy.get(".mx_RoomView_body .mx_EventTile .mx_EventTile_line .mx_MTextBody .mx_EventTile_bigEmoji") - .children() - .should("have.length", 4); - }); - - it("should display a reply chain", () => { - let bot: MatrixClient; - const reply2 = "Reply again"; - - cy.visit("/#/room/" + roomId); - - // Wait until configuration is finished - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - // Create a bot "BotBob" and invite it - cy.getBot(homeserver, { - displayName: "BotBob", - autoAcceptInvites: false, - }).then((_bot) => { - bot = _bot; - cy.inviteUser(roomId, bot.getUserId()); - bot.joinRoom(roomId); - - // Make sure the bot joined the room - cy.get(".mx_GenericEventListSummary .mx_EventTile_info.mx_EventTile_last").within(() => { - cy.findByText("BotBob joined the room").should("exist"); - }); - - // Have bot send MESSAGE to roomId - cy.botSendMessage(bot, roomId, MESSAGE); - }); - - // Assert that MESSAGE is found - cy.findByText(MESSAGE); - - // Reply to the message - clickButtonReply(); - cy.getComposer().type(`${reply}{enter}`); - - // Make sure 'reply' was sent - cy.get(".mx_RoomView_body .mx_EventTile_last").within(() => { - cy.findByText(reply).should("exist"); - }); - - // Reply again to create a replyChain - clickButtonReply(); - cy.getComposer().type(`${reply2}{enter}`); - - // Assert that 'reply2' was sent - cy.get(".mx_RoomView_body .mx_EventTile_last").within(() => { - cy.findByText(reply2).should("exist"); - }); - - cy.get(".mx_EventTile_last .mx_EventTile_receiptSent").should("be.visible"); - - // Exclude timestamp and read marker from snapshot - const percyCSS = ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - - // Check the margin value of ReplyChains of EventTile at the bottom on IRC layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - cy.get(".mx_EventTile_last[data-layout='irc'] .mx_ReplyChain").should("have.css", "margin", "0px"); - - // Take a snapshot on IRC layout - // Note that because zero margin is applied to mx_ReplyChain, the left borders of two mx_ReplyChain - // components may seem to be connected to one. - cy.get(".mx_EventTile_last").percySnapshotElement("EventTile with reply chains on IRC layout", { - percyCSS, - }); - - // Check the margin value of ReplyChains of EventTile at the bottom on group/modern layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Group); - cy.get(".mx_EventTile_last[data-layout='group'] .mx_ReplyChain").should("have.css", "margin-bottom", "8px"); - - // Take a snapshot on modern layout - cy.get(".mx_EventTile_last").percySnapshotElement("EventTile with reply chains on modern layout", { - percyCSS, - }); - - // Check the margin value of ReplyChains of EventTile at the bottom on group/modern compact layout - cy.setSettingValue("useCompactLayout", null, SettingLevel.DEVICE, true); - cy.get(".mx_EventTile_last[data-layout='group'] .mx_ReplyChain").should("have.css", "margin-bottom", "4px"); - - // Take a snapshot on compact modern layout - cy.get(".mx_EventTile_last").percySnapshotElement("EventTile with reply chains on compact modern layout", { - percyCSS, - }); - - // Check the margin value of ReplyChains of EventTile at the bottom on bubble layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); - cy.get(".mx_EventTile_last[data-layout='bubble'] .mx_ReplyChain").should( - "have.css", - "margin-bottom", - "8px", - ); - - // Take a snapshot on bubble layout - cy.get(".mx_EventTile_last").percySnapshotElement("EventTile with reply chains on bubble layout", { - percyCSS, - }); - }); - - it("should send, reply, and display long strings without overflowing", () => { - // Max 256 characters for display name - const LONG_STRING = - "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut " + - "et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut " + - "aliquip"; - - // Create a bot with a long display name - let bot: MatrixClient; - cy.getBot(homeserver, { - displayName: LONG_STRING, - autoAcceptInvites: false, - }).then((_bot) => { - bot = _bot; - }); - - // Create another room with a long name, invite the bot, and open the room - cy.createRoom({ name: LONG_STRING }) - .as("testRoomId") - .then((_roomId) => { - roomId = _roomId; - cy.inviteUser(roomId, bot.getUserId()); - bot.joinRoom(roomId); - cy.visit("/#/room/" + roomId); - }); - - // Wait until configuration is finished - cy.get(".mx_GenericEventListSummary_summary").within(() => { - cy.findByText(OLD_NAME + " created and configured the room.").should("exist"); - }); - - // Set the display name to "LONG_STRING 2" in order to avoid a warning in Percy tests from being triggered - // due to the generated random mxid being displayed inside the GELS summary. - cy.setDisplayName(`${LONG_STRING} 2`); - - // Have the bot send a long message - cy.get("@testRoomId").then((roomId) => { - bot.sendMessage(roomId, { - body: LONG_STRING, - msgtype: "m.text", - }); - }); - - // Wait until the message is rendered - cy.get(".mx_EventTile_last .mx_MTextBody .mx_EventTile_body").within(() => { - cy.findByText(LONG_STRING); - }); - - // Reply to the message - clickButtonReply(); - cy.getComposer().type(`${reply}{enter}`); - - // Make sure the reply tile is rendered - cy.get(".mx_EventTile_last .mx_EventTile_line").within(() => { - cy.get(".mx_ReplyTile .mx_MTextBody").within(() => { - cy.findByText(LONG_STRING).should("exist"); - }); - - cy.findByText(reply).should("have.length", 1); - }); - - // Change the viewport size - cy.viewport(1600, 1200); - - // Exclude timestamp and read marker from snapshots - //const percyCSS = ".mx_MessageTimestamp, .mx_MessagePanel_myReadMarker { visibility: hidden !important; }"; - - // Make sure the strings do not overflow on IRC layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.IRC); - // Scroll to the bottom to have Percy take a snapshot of the whole viewport - cy.get(".mx_ScrollPanel").scrollTo("bottom", { ensureScrollable: false }); - // Assert that both avatar in the introduction and the last message are visible at the same time - cy.get(".mx_NewRoomIntro .mx_BaseAvatar").should("be.visible"); - cy.get(".mx_EventTile_last[data-layout='irc']").within(() => { - cy.get(".mx_MTextBody").should("be.visible"); - cy.get(".mx_EventTile_receiptSent").should("be.visible"); // rendered at the bottom of EventTile - }); - // Take a snapshot in IRC layout - // Disabled because flaky - see https://github.com/vector-im/element-web/issues/24881 - //cy.get(".mx_ScrollPanel").percySnapshotElement("Long strings with a reply on IRC layout", { percyCSS }); - - // Make sure the strings do not overflow on modern layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Group); - cy.get(".mx_ScrollPanel").scrollTo("bottom", { ensureScrollable: false }); // Scroll again in case - cy.get(".mx_NewRoomIntro .mx_BaseAvatar").should("be.visible"); - cy.get(".mx_EventTile_last[data-layout='group']").within(() => { - cy.get(".mx_MTextBody").should("be.visible"); - cy.get(".mx_EventTile_receiptSent").should("be.visible"); - }); - // Disabled because flaky - see https://github.com/vector-im/element-web/issues/24881 - //cy.get(".mx_ScrollPanel").percySnapshotElement("Long strings with a reply on modern layout", { percyCSS }); - - // Make sure the strings do not overflow on bubble layout - cy.setSettingValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); - cy.get(".mx_ScrollPanel").scrollTo("bottom", { ensureScrollable: false }); // Scroll again in case - cy.get(".mx_NewRoomIntro .mx_BaseAvatar").should("be.visible"); - cy.get(".mx_EventTile_last[data-layout='bubble']").within(() => { - cy.get(".mx_MTextBody").should("be.visible"); - cy.get(".mx_EventTile_receiptSent").should("be.visible"); - }); - // Disabled because flaky - see https://github.com/vector-im/element-web/issues/24881 - //cy.get(".mx_ScrollPanel").percySnapshotElement("Long strings with a reply on bubble layout", { percyCSS }); - }); - }); -}); diff --git a/cypress/fixtures/element.png b/cypress/fixtures/element.png new file mode 100644 index 0000000000000000000000000000000000000000..53ca7652b4eb6bc95c1a3a227fd93b6931f59202 GIT binary patch literal 17083 zcmXwh2Rzl^|NnVk*SPk`$jFsdMr4+Cua-SZAri`rA|oO0MI|XSQZh1=inOxuips3jgappy)&Tbr|<&&2hvs7L>GY4SQfG)JpgCS z4bJIaz7H*r;htS_uA3ye7B=*h<%R!v<`(RW-#9Y=`wo52PrsGy^?OOV)wlIqe`D$t zW{*sY`kt)4n7|-LiQM~&QaN=|nMb>CGjbC7C4HJTh0x>P_EE?CO_X$@O6EPm*_yDQ zrS!_41!q|DcY<8CJq91Y%N6}}YqfHKRJ2Wz=zoOA2xh0xg}`6e&46`rp=+?KZg_%p z=-$QoU#pu4o)EQ5*5;(Ex&~UshbSrfbM2T30ZOPv0z+W>3q7)9+e6Vo>W%BQJG;5* zQPl21jM|?r)VtV^dr4s{h0c(Jsu_6y;a7Q~$}we)kmL7)!X^%1STy~+U*4viCfJ%I zShGBJMXT#Y)^u~qQ|Z}VZYjnu9N%6aJ2dmH)Nr@zDbS}!0ZwJ@hAvLrLM2dO(dx2Y zyyxwe^hcsOrOb8O*gEJKBenaa3FnCb+Efa7!iECfN5$zHxK`5@OWfmDCECsGhn}9| zlVo(pU16y&(cmPjtue-4JPxETAi%TC9FkaVV4l5vfm&lgtbo^X>0m21 zE9PfXNL_`qk%Vo15a%JdmhWTq(rUY|bvLwiL1(nW5FNH(csyl1{K1&f8N8M_ge`ie z^@nHeq8U^8nQh>UY!~7NPUHPY8l__|^?rS*wXprH{^EAig7af=RS$vxe%SvTPDN`b zfLYOhX3fZ{c%5}Go&r)RRZ>!0d(3x)oDuG=)y`SGR`gaU7} zbummXMfpiP*+%&H4+{||T{t?xHTYI?IJX={5};F0kzhc4zU6RB2ez5E2&`BgHMxOx zeuHc9OaAZoWymi4+95SxN99AepEs_!vNJh|!QIX-T|cww*N>=%?W*XC9=WFH`@8nj|0tCO8A@<>=7yd{BEeu3-`?eDg~v4K-{PR` zo$*n8k3QgZ^c9VxOW$G-I=l3W1Ai21ul=J#E0>DPp~sru{}kxQBmqvV<+~1+v+hB) zyki1;Wx;*E;n!e6G5KAR?)sITZ92|bI-h7HTF+2>R5Sm>o=iw6P=6;Mrw(7LTPunc z|6D~-8$s-25pj24kRao;r`MVS|M~1H#GsVm%d%2d7`wGb5LYiC;&eq;$v&0$A6XsW zrE?2YIvYNG4iP8Dx(_|!=*JhV)4x*8pWDy**!+wGMFmri13#FaYF7rFiKD*^gumvA zVmERb;Fk*DGQUlyfAQ5YsE!Ax^rgx9x}O-R{RoivPH<9&8+`RH7R5jMCKb0$;kdoX zdn!T<8~J^4csrc`P%sk}$n`Dk_ht#{(f`auOyb?Ti*2+xsiSpzfN*C<7nhrwjHl!R z>y^cAop20L_xs88RP?6?*{CYcCWaZGZ9T(62pL}qw;!@z7`NuKjzkj9*lcjXGiqnB zK_tJUcX$=lkuk}E7I#BgKV`;C9^0pDuTz|?-|asNKJo6F6|XWeUyGjnLPv=(HcPk0TWDfcBHKh~Be^ zI7K1_c+<@yF2T#5`AS>!B_F~IV?_p&3=$CPCIebbM7yhan=WHU2Pjs#*<-(Ic5QwS zJfjb|;Wf6$2adT9+@cD9cAGZRvU1#Px`^t6*^$i;_X1z2RFD)h^engZTc?( z_|PnTY)^S$GsRpB?jXF!fC|=@u#;kt+sW%2bogX()D!3|UjF?c8D8IRpC01mtES=F z%iT(sfz7!9VsP^_iZPK6>nWq#?`I!+fAgenUoNP?kFUGtU_fipG=DwEwntH>y96-l zWem9$K!!jRQ`79hvKLvYM!4mPhg_WSvAC4CI%w8Oz^})HXS#!=vOgT4tU1x)?@QVA zKOV$m5+LhbtZ~VxC@5>&9oY7#J&1+hK|Ghs&cADmjN_3A&@RlQA3!^s8br@^gig?s zg&G(DNG z)5*P`b@`=m=WT={yvtes;1K!rAkOSUor}nTb(~qPF}P(*opy)7w2d`=sD>7&j_m0d zpAO?=0zzwTv@nCtqJVJh^tD4T@{w3+YCgO(YgZV7KsNVfliis}bIO?#|Vs{ zUsYdPQ&1LFSJFlfjh8ocMiZ$37@G{(bA0zi5Mpouno2{yRus=?@)9!rxTA12(J`RcXz!O zcq6iRDQ4H6iFO}rx|1et0BmG^H^D0d06#TDUB%6_hP0CY0nL{kiJOfRm%B5VO;}@g zGhXsIDw!Lx|4bABKaTU0ryBlyIQVx?=PETe+Z59l4iS`srf8|F+T2N`#P?BOD1Rnw zF&BEzVR^!{_`A+e40Hj(-qTtfB^Q;@JiLHNE$NRrKh~2s;j(QQCWX+GnbT*&8#p;1 zA?zdZjTq0%%w`j#{Mww`M7t~$ED(9(4SQl(xsOxEbFl*Gb4N}Gt9Ex>A@tw6E7UAnHS9B2c8vj-ofO;jX*b8mXPBp_+6c9* z0pz-`vN726GM=`A=1Ht?1HjLFUBB!j%kVdqp*qXB8Un40^-gRO!dD zWFP)8f7yTJ6*I`j4c#&zT{}&Ts0{yN&V@~`g>7;aGd`KBy{@!>MEQ61n?Bl$gO0=N z8Mj$(CZ8fiA@RK!&*Z@lnoB$rI_r%)y>$jSmyI*aE&gm1J?h0{oFRp%!-(aN^2DFL zP^U2-7+PulbMfG+I1ZchJ-pxQ^c?zspGTbPQZ7yox?Vy|6U^rUhBR!W+tCuQ^{fi| zIQnd~Kp7Euz#F*Sb?y?}r_;lS<$K6DlruUp-Y=P4rUo5Dj)y|R-uEUGGPf6Rhn?M} zytoD4%)Tdb@dbAFL?+h~AMiXTxV{xQb9`)Jo(0qw#)g#e#=0 zyacZN*%Pd!fdLM(OSq0MdHSnY**T`7QXi8Ne_kL$<{^mb-AAaOv|;NW2IF@4n+3nw z9IhY;X}B7FTOa{-^bCUr$;?d%ul&q!SdG)|e|?KdzD+z5My?1yFF+UW{pdDb*nk9J zr8YY=Hk~rD*Pw^>C4qZVnjLL z=jiYgywRSsyb{|o*pDcz-*Ojx79M`rc}wj9IT@|}8acm%eN5*l&r(GH;WhAH=D1q9 z+a;Z42t303vTh56T#e)XT#{rT$1ia{Zw&Folr~k!gU+Jv_0!^-C}fT@C9OxvDJcCP z5wwk;^UCT-hqqo6^*e8s;U7CE4Rmjzu%jc9+m#r2@_iMEOr!9v&3CV83Fpv~yIrsN zL!?mnkouwuc<=<^P1GAF|9zR!@s=fL`W%h^>hHTkQCMbughQU%$+K2P^*g4;5_0Pv z_@HG4*r)nU(o2`WlOe?Le!r|<#cXy$$!NCvhtzTX_8qf{XdMuJnK^X*r{V6GrxLlx zP%P6QDldeaLO#Z_5OIA2>BTh9Ia(Pz;*+{x{XM3r`iED(BwM-bZ#kn8FCG;v+WI(dRP4;ZlbC{6FgzzLI`+COI5?E$g<)Bg$Czc%1zd zX*)YN9PwVRM+l0#d@%gIU~va?y@QUG$X4|LLRUBhY;nk|mO! zY)*H>)8As>|3LPR(YilekJ5d>3%YD&fs%qCA8UjYA0xg0%Ac84?W0(m`tVjugIH$< zhl9W?ef=I2{#tGqqj1B0)8wvK8F{KLEF&&@8L^hu+z&7Njc?I($fI7=mQiQ-QfnCy z+Hd3(1%Xe(sEFx}-Cg6o@1@aOJ9L{sKYA|J+6A)Fq05ZMebimIfZ{yz@7Nt1ZQ8`T zxX}3>nT%X*;Ak!53_oeM{wur^|B`MR4`B2P#)^-uLTtShfbIxWzxMT3t34STk3(l+srjLDZWrAa2&ihoIjcNJJwfomeO+(_K1 z^K{g)KWqVE^$66KS3tHQ^}J= zVJmhgm>jg(h#o67nyh;)&ISVHz7q@TSvux=+;K(A6ASD#5wZ>by+9Z4vP~RN8ACYi zaa0K%-rAmiqk1*4^ykbyKo_QOGl}zEomsILPLxuygPy3-+IDgk6}5YSy}-YWH#CYd z10}wKyCk6F)>SIiV@m0zEEJR<7KW9`<2=+d@JS^Js89qQU@L3S`IzPqH6yq+7h->X ze_Xt0po(a8=V}1SL^-RgsL9%jHW#q`N94Ao9qRG@lbooH6b82>2b$#kyw^%$yq+7`G}g5y1eV%@3M zGU?CU|6+Yb$VusE)K5Jq4t+mT6cO7hNnD~$*OQR?hUHyIvrh=c2fMU)0M)k?BsgEu zy1H=)CtP-qS({i)HB9#VEmf4sjDM(F$>T7>iys-op-*>aeOkplHzkkEN$*YQ<4lfl z*os|!OWLu!+S&@lS%q7axtn>oAi$wXX^s_z*mpmB|(2? zwC)9cTl|)tzD|h)%L}4j zxd=IYLxCAwMQ`}LZt4i$e&E}Hn|2zb_sqVXiIbJH8=B`{s;Q8}qCEIUbK}w$6QMNQ zFpw1`HCQIUwP<=M`APmy!0K|rO z{}{?*WdSSQQ7#M59y57pZCVdu%#}lR66w-iD;^D6v?~>{Lc|M*8|CyexSfLBR)_m} zLthV6iA^V-*b1Ea6zjccHq?l_x5V4vBD~r(*&3cX^BqDT&VKv$ZT55O^kW`SEVG1k z>rU9I?a9L!arD(p>CY5QNBu+$>2S6yq7$b0jav$dUw97IATF8AF}AC`vYq3w>METD z)oS%juAbp_m?`{+#FC$_3pTP3ng7qr6z@Gwkf``=)`8J3GX7HiS_)KQguZ{`)7N*+ zn=2N&MW^xt96}Tu;ZgH1Xc+Qj@z9@)qiobbP0FALoCoLkX4NSNJ)kTyf&`-|mLJ8aGnQjtsaBB;NKE;-CKjB@~Xo)~W$q6zU82 zZrlClB}8c>Ggb&hxvgnTzDE((wlR|oHY*d=dl!k6;~yVpud06CovYfyytafq8@XUf zl>7XFB;Jd4l;%wrQe_oMiAyJT&|s&iS+#0{DU%H^q2eP_62^!Bx{bM}N7p0;^tZFM4 zQ|B=A`?@brrlTiR_Lhu7uWcG7>n!?iO`Se{|4)T*;Sg;x%><566zE4ZysLdy&TyY@ z{kfSXqQm%ww2tBdL>hWeU5|151RGm>RO1Lsh-((6kvnZ(fsOrlcm6;|{)Ap&Q(*B! zXkY;8fNIK!duT8VzG#notY!+b+8vr6X>7}H@sYIXOzgqpwx))Uc@H)fhW*~ryH#df z{5$R1&cn*V%T}R#OSy(nYu+UP+~qoT%P+*zyRzV{QpJlYT%&te#w1Q$yCFm1MAs6( zH$^RMT!*-N&K2?$vFZOPhyqh;^&FW21)@Ug&{{-hrwY{?t#qN7cycY^`Snlvj1P$G zE2sSaR8*n}8@*byfb-Lz5YTXwGE{@YuaiX=v=P&>!mj6+CGH|H{UyAF zwbrZSW&*$9UNx;Rn00gJAp`Ai$XwyST7?w{Q81-GE=)*4;paNFA47y|x$?yQt0(Ry z^6YIcb@S&G8Ut&lhZ6Uvo?q=3^<}^_;x}%R-mQFR#Icbvs9@5_g!JBA;t7|siy@qx zPx|h2(2be@XD=kf(2RbQtLvI8$purbv2}kb`~_)r*1e&c>QEfMSi||3FoBI1Fn~?n zmvK)1Q@H8GS|sk5NNEMLB8^W5JegQSPx{|^1Fae7tRWmeEObvyJWxpGp#?oME8aTU zAKMdSNp+f0uCE$HcGqSG-Y$3EVZCkkojsrD<-1i3X`Ya?Faxb% zTVxwbXA^Deh!Xw#v8mlHwN0ejXr$t3?rLZOE6;m+o(H$PTk9I-jOJv1#&MpyS)fZ0 zg3Tmwd7VsIRdDv8Kb{k+a%LAA%6-v$Eu0#n{+$$BAz9ip%tQ%=}qV4Bi93PRojiRw- z)Ejh&TDUB6re3FimdY>(N98J2k?~tgojsxjl|J3vs_6kCLX&k!fcGKq>E>gN56iH@DvdY&{WXt|jFXDKIj)tfjIgo0PaX|G{ZkHVrxBU)3M|N1?e_oIBR)r?n@SZ(-q1WUoOYfUZ_m%%e)<3z))SX-m*(wodpX6T{N7ks( zWqQHcCBAdn>gu>Y_q9O-T*Dkk>!0s~FI&~%Si>m4u+)j$UOiTc#eu79sQ|Zm3*iv% zF@dVC)!4J*pc)g!O}D?^E;HtU)RM+C-UMV2*rf!r5CmR=XZOUO4bhjaS=23U#&~wxZ@g|--HhINV}|RMiX3{o2taHQGahT;+?MKx0zC| z8G#zayw+e5MWo*Q^(03t{*tDY#RR>g7E-_*@=o!{!G-jDb>;=o>(hA|qIVw$K<7}P z3w-*K-G`&pWfW=-$A_p%0dgod;aR+!VTC2M*47w*QKhxAk2ZkWS!-j@)9Bf)9hx;} zPv&VpDlQ9-Sb;R>&bqD(^A)slOvWL!iL0D3*36n{d{XJ#vlPey6_=X)a`yCQuVvwC zS9zm;Miq#;rX{U*I%wUjS7vkcpWOU)L8qP1M+bKR6EBd~4vo~z!7Y>Ms!naSxtBhY zl3;9VryeaZ^v60pw?UXM4v!!Ajxo}tZP$s0;D(%5U3V(p*)-7ieUZnPnAr-DD7weJ zi2-r4UY;Hc86;}S^Ypsg1_&Dp>E^w4mr^cy@TtPUd_&ujB{O=Z`d?-7`T^Ldvi2cF z(mXNF(&}r033%)V4LP~Ze^7)R*h+k_)e`jH;(TG_JqHL1tbk;7kH1BM&ja!Tk4n&3pw9}IsHb%9@f}3R4eza6zc*%e;-lg-jQp4qDaGXix zy^ZHzxzR6c6v^;hiVS2>-4jAWI)N5bWv#tbj5_#tv(*+$PY|oy@7np(bn3(FFo|D@ z_)|rUi{jRGDCL#u`;FO}z;vs8ap*!@2~!Dn63MSdyGxAhR6z}`b=dk;Y~L@lDif};Wtg%({IP)9vFIx zBtWurC%99WDVur-v|ZH>?Ko|;Q~mLIY*o2`nbpG7i!A=cR38R!@nza*5dGRYQF&mL z1Sj@PBZEB0DP2Et=#WnNbgmn0C6)TX)0NbM(UWnd$JYI~(Zw4?bXf@3B|vgHJo1{T z1EZ}MsuZ-}`L6{*SQCxY(UuqrqGjx(Kg9!UW1PjP#!$87`y?Iz(E{jD`0RhTp&<*Xn>+W1vpJgGR&IqNTSTjE z=E*x`GQ`N#G)spNM^9|I4lB(jhNpFn)BokYN-@3%-xQihI5K?)fpyoZ7J zYnB|`H`<-!Pem`cDl$9p*zyC(^^(Xc%#M6uL3Tq(gF>PGDXY*mjec;dbEmKA9eI`W zW(|XzxNR{=KU^bmw>RJ9Ac-Lt5kef)D*YFg`w`T9dDMrQ!R;Q>7Izje>F_ji1yl7S zSUj4^0k6U;nsn0y`jWfENI(!#G!aV_zm=idLI ze&ZTpEhF`5o0klgH4g@LTLT@~dkKFqdTb9%n{<%+yaev-!}qFyP2Ro5>k?JnSHTD< zd32y?7UO#UB*qYE#UcrORSfUS?W>Cr4u37ay0eQT{DUM1l6sr2Q*Lf%q}Gqf65xY% z&%goArKWSQ;=xaQrZ}mz=(`J+%vQAD&h=cpAb#>0K$Wf+(%FhSoY8q-$>~v7L!7H2 zoRb{0VZmzI0R8V|HIk)BSG6}qX+t-nX@_EGcqV|%lSn(UspV^o8I%E!ov|S9@pAML z?+>fRrzozUEBWwZ5J945k**^B`mXP74*DG2?qTH{Op3>l&TxYILPV47E@cT8jVOW! zx-KFV&$_&zw>J>O4B^e4ZOiOR|1syB;VHO1C)*HfWfKd)b& zcwH>Zo6?eBFoxlrkhmss?&;^9&Gw@S^?NTx(lHn4@pfRR zB#$jF$3NpT#L2k4|4ERXbe$yb-o@#=T!Jg4$08h(MEIP3-?iH>-Ht{nAl~)+jT~%^ zDbKaJ5&Iov7_NZ2oR7l3RlINPz$V|2GsbM~OU6&5te_slpdVdr?zDKz(6u_WE&SdU zv6JmhfXtX}=jSWfe76btLXR-wu1*i``jq#Fwn1iFXR3S!=oS>*v#X!OBpksWqqv%7 zllavw!Hc>))RU%=NZCd~HjF75HJ#HJnc)Ctls@sYE^*V_o=$n-tcJ=eES-)G}S@5N`TE_Q)I z_@YTEe5D`T9LK~2&!{n;`oVs`xtM2Ze|X6DJv}~8hSw|R1G#c;b@4q-{{^-DM+(XY z{6?0fGW?ivo!iyEYVkG0*KkGJ`4$_t)fJ(5g}r8?a9>%z!ZAoLe7 zpO_!L-Dt-&o;VngvZbEGu=HtybfqHQw@&7dy`FN2$uag1YXrvIpvKUQ0%xN?kwRbR zeT)y)c38yp$%uP_+^PADx9ZSmrRGav{afmbFfR5qv~L{a+E`HU|5h$TS%EmEazuN1 z$>Tbs!W+|uuL1Ac%vh_x!TuEDnVuO1x7nblGjt(Ri*+R6kc3~ ztJ@IUAed>Nve@@;)9aOp_Drz58=4rXmR5JW5XgN%;7_{UXqfrw{L_9_DEbJi-=gU7 zY*g)^t6); zfX$BqHNv-A7W)0HF#Ey1ML*oYfnC{FL1?n{&J(u;*Wf$+w{J46k*h4p@$JW`tvQk|*wFJ^1>^j=#lB61w3BC)X|6 z5w`;U#wTb(VWh2!CK#&D8jh(?+tKR{!#t+?nH=zCKdnt5s^<6Q*)LLKr+JUc?? zNa)?F=jrUL8OpIT_$(&kp!nY05b`XgZJj2(87zMNB{*4DD{LS{kk|O0V~|?ZDm8DP z6&uM#-t1Jqxl8M>L1E3e+3z=MNn)SH*aY#KyE}*HU%J=JbC5Z(W814t7201~FmqXT z699Fa0T>hjFY_N3IE0!tR ze`haF*az1b(ltn3>*-4Exwk#XGoLeepB5O7c}I^G?EFevpL&R^N+}7LgxP|Yda^h; z&)$tIlFtdc%B*sJB-UOvz|n6o9i1-6MwP|vsYZup(t)P5`AAAsXt!~x`0+J1yg&ZR>VM|_xxw~(&6Mar|2bl6i*h6Lp;;mJ>I8Dy|&%LR^M@R z7e-50=s3|XFr}p6gxxr%-ibkVd(!K#;G9+up({c3S$6!8wmY1Mh%7mZ{qA{(?$}45 zYO^y@J$=%U3WKm68?Sl1VA_L&+(9Ni?cbd7Yj92*ISbvh#`I6a_nl2EtkAubHA9_QZF1R8x;oUn8yO@-417+0-#L~V3)6(@ zpS)VW4U*skT$yvBJG6G00kzxCr6a4szVSwlu+X+)c5oYxI6zR^dWU_ zu0XV?_~_BY+X)ztkdtgl7m8^8s&9a|2&X|0Pb`bs+U!DUs-#FYYAQ!wQG45B<7-7q z-tCpN&#c%jeykG^8W;ILMOa z;ib@Fk6sgCxV)>kIUiykj~u2MY<@q1$5SRA!?VJ5JF+Z8ENdRtv*AhYI#W%zrpFX!9v(wNT zW$F&Zop}Y{kdbzXzu@&JML}ky)Vp0Gjyrwt^mbPN2OFxDg(-kn(cpw9LqVTM*wuPo zZ+ACrx3K)~Qh7u41StsyvvDo-F|RJ{+nbz*o=~sDIRQ@jq&ja&b9Y&+{kP5$Ey8-^ zX81y%QWHa{3BX$$Z$2Kc;D+5n{a*ISM(@S&Op)k138RY3KhC_)>)YucbDSL1#e`Bg za~59E`u``HU~~m!Yi^dS!HJ>FyTpn7oqhEO8+;+5tzNHZaH@q!G%>iB0ULhpBO({p zro8RY{Z_%0Maq(ctTCyVAsXd=LwBNr2meP6c+sJ`impJvV2E5<`B3hR=eHsCkF2Zt z-Ip+7qV8@k|HxM~1o7SkmXhL^Ls!_ky7d_XX2!kJyY$nBG6jF*nv#Of(_$ zFYVC?iPkn5JUji0U6}@tI^EX$)Lj`oRlVlV-|8aMZ3|xAkH(dGmi5vmi>Kr=`aXibAc{0`H5Z5C-#jk*0SC{YGVoU?%HQ}Lvo2htykLz&1{s(6>vF4w_XB! zrsCJ)6!CJ1$}yIu@as0c#X}h^j^z}>%}U03(SP?>1jq30?8cz(9O#( zADqy+m>=TTaAa1g@UxS1m7@w9G4gYw&e_ihpckA3N)4K@HFAO>N5Dh@TkM@kwiw(gkz?bH2B|I$Nlw-t~l z{iPE@NZcHZ4qP;|kHF}P{&b&Oq3O%#ffqs7k6np)Yxc+yE1^$Xgk!C|n#KD94`2^4 z<4vfio-70t%((Jj9&smNg4R8)$7vRa_E3A?*Rm)1S3PHm_I5_xKy_&>O+oOlwj?&( zucRpS-MxzxiI6Yr!PCT5hiLj@v0DbT`8MA_#Y@@q-*VYkxYpw3$5$G8G4=}b-DSv3 z%CenZx`H-BqJ1WeP*)%U*|5PmsCdtmUCIy-#I_|kZMK!h(YePz4Wp0md~{d>SI?DrsjgI!rc~oJ*tcY}xt#v6jU-a7YkF;%!@S=?ptYJzw!} zD8$Z@xj%zUs_h=#bN*+hEu$aPiYPNSxd(LaKlU3}Antqf;~6ef>mnj|zE6Exw-M=< zF$ocW$FLE9f{ig0@SI#CS$dAk%lGyo@s8N{=jpy<$PR^lg?NoL(+N1EIA@ChHXj#$ z;IdR3P~H-0hEB@p-c08|^0@C`n4Tv8EU$B8B>1T|?R!-uOMxEyZiNjj=cQ7Zx8w|; zz6N}5=l{ZaX`kum>5g3Pvj#A{CbMD>;ipM zkNgsDgYjlKO@Zu^3XboQQ;Vm`NyYCzZC}k!VyDn@3<%kOc9)@33R)DeJNwf#{Zc7F z7fkIuU|)HmnuaB@hKtZimi%z(Ge?0_)bQR94=>R~fwnP3t^&g?;@FMM!hh>87yrYDaXx^TW%!O#z6 zvypw_kPr3--;z9D;|MBTe#`I8oHpreOBF$OPA3lLf|eP95{vsp(ZwV4<2K1Dk_jO9 zYGlA|<)dB9ab@+=kiXvNr|pd;@@JI5khm5FGf3-J9+iNiB*A6KAyIPKH%kJ|(#2RE zE=32ELSvGpPiir}mn!XRGL(bNVG*7LeCYxk!h|X2aR)#_ac?BdXfi!WybSOxUmSQ; z=GAelc~3>GdpL|IhAL1j{SCX1i%TPeqS?~*1gxQF1$t8p8Ly`CX>XBwKM01wI}SnujIxa*08f(y~Y;;hF^>?*tbyy zy3aN4b9lY03L6LvI$vPW3b6 zm97}5(jlbYCE;gid#~#stOSH_x$#b}dre4UEm`5(3`yraIAXPg?hx~79x-zrv=jL3 z@qN*md0&dk)9Eod-XhO+(Fk}cCBi7BpRVg){0o?`Xx?_l(RMHID89{4;P#Joy6^Pw z&lS7evERaj7+DTtgyrSNLVd7hlPSHC0FwI({aG15xc2{kblGuIg$Eg&Futdr{>v8l zTU`(SRDFB7W$EDzw&YE6=5ENnOC#iWHYuRrG`a0O|?B(BxBl5yxX z`ff`w$>$XyNTN#LxPr)JuFU6RMSeaUbj5o;xar1CyYS?f)HC4akkX!dfM>@Bd70Zi>GY!s2kWoPCw}t3-^Gy_dW4L{Xs6_%8i=cWrba zj^>5*#(q2)#g0BR23GM=2Yo+ah%Zx+lf$G;0Qrz5{9~!hB2LAF2Z%7Ke97Vkt|x^! zi(!^29A;OOHd<0+qq5<&!66|;JpF6nrg}h`pvT^^E?@W3vXlmOV&>2EWWmqATZDs< zSjUZ};>*=g5l7XVGm{hg1ME=Dul1FpBPV+$u@_+MW~>a3V#_jbCp#<(ARdlw{iJmj zV(M+|pxm44pzOjZMEroSVjPk<<^Pq`#o};$$%y7ZP*1NIAEq5Ct306dKvK?%Y>j`` zO~6(7m{NB(G3P9njWq7?sLUq$ine1y_g{gXlR`~F4o1Z=EtwB1QV5)e$t5D0B)ST1 zd=zDkGB}OA0<6D2@5QC@z=p;KYA+*ZPL8!$F&^dqUJdT}6Xu!=HN_yTL7~L7_a(ZI~i~N~uK@tl1(9)LUb&59f1!jL{hhP1f zF~r;bmZ1#tw&~J0mFO@%PTsHt8&hzGJ1ds>hOlvZ)AuUx(7KuDm52UsWGREEuR`X_ zUaN~64;Hx4ITbP`w^ly?W@TIKH%N;Io;MH+1O3}mXjdN4PyM;65R@Khh!^hrh}Vhz zG&>sLTy;J(8#k6p*ue~)%h+GW&A+-mbu5SHz#p&^6%;q3$4Vta;TSpRW#y*lK045` zZO_#LhBl7vRK%o=-HD2N6@^{3glnKcDyEBz&`cd2y&F zk-8R}>MrTlJy_XzVA_lJx%M23J+~-&-!3CEQy4))P6wefwrZZFa$2A(yE*LGTHi#Z zY+3KF=y6}vflAOV^CjgaQS>*t!s(esF{EZV2Wgqbpa5L8;CgZ|-&hJ96fR5%1sUJh z5CDoH2PIOrN-~Kk{6{#7NW~t3YfnFjJri3hSJ_gxap3{k94g48uWHL6pnu_ZS5s;% zSw$xCEI!M>zT6{VkLFhh;3~%gcFObQ1=!NQHGlB>Ef!$ulr-VXPjKUj<_^{?$5;Tk z*}2s{;a2Mg{rW-v@iRNLd5KGn9s!CH8%%JC9k2;nfp=+(8s703C-By`__5VWv-U{> zxsAN30jbz@cv|n()+cr+l^G>mefkjsQU1*UUvEr~m8?eL7w-pH#R@EN11x(WBhiwq zRn79(XAmKfH_0pdHwX=;FV#-&7Q=Nj{s_W07PM#2*V$(W+ZIhkclfhp7X2!3P=;yL zuww$iRX%!Jy$Lz?5z;|G69Ldm^@fv-V=q6c_Yrxy@kDt-XX@SI}B~YoL6z z3C=jlD{ZQ4z9iC{WpJNB0W`z)HsoySNN1rNUo2GFeo!~W^6`V__uOv?;8y7aFBg(F z@D|a1BRhRLP1pS2$)jm-$D@r*%r9-2pdsgWSO&;jqG)v6Ej05yB*3x=>}xk;j!1x$ zxsp&@a0{Xnf`D@N$J(uo zKQNAC;>JIO*OPEeW5Hg)=0}Nr8CFwnH&@pELyMrFd!#e?@x29eP8VGiPZ zxC+u425x6a8#3|`*l#w)3B>_xd@TUAx=j;sVKATL34l#r@X5IGC;#>qX&DC5U%iS9 z&|WrD;U_c#aQM%aaDtXz)5Hl__MId^pS|DFb*TVR)!qN~;j@2S!23lqnT0wNjH2Fq zhj2J;g8;wJc1+Mq0QO8tKsao?uNi?Ph{>@d9F)`7{8>==o7Tc`;i5B7dk`O~=8+io z>%5oZgy^CRmJ=^hPp2`jw-&&`3nKl6$7_G`tX};HfrPm$t(OOPwfDY5VTt-cIEOAA zuHmuW^YSSKSZ=Kak*&uA%JXw--1ujif&d+QZMBn|8_)U{{;c+fs2mA%TyhzJn@AAl zYMVTsbiKaju#0?*ZAR`r2TOcjX3XpGs* zJ*X_~Z74k2F3%0ly*o!ZWX~&Zhd`%()@jQ7=KF&5Rv(6HX6f*(N*lp9r`-{l3r8VB ziaruAxAvJES90-X1WJ(^1*Fa$1vR;9lU8!qL*sQYU(O=%1`7`e-R5^i)EU4i*Iv&l zZlLn)9PF8fiCVyg)5pcRfT!-{*DbijcLY{f!MWF?1&hd!h;bgO6W~KmU6|BciUXP1 zHL9TXop5MrXveO?s?=K66}Wbn#RS>9IZ$?$(+!bI;uPlwt+!^q?w!~US#=*51Rp*N zD~9cIhl$=j3So~f#|5z$`1Ro>`ZC8{N_g^=E6TdZCRiR6;QC{Umm4Sr^}azw@f!tw3O z774l%23^sZqY%DapCL{#Tt^Ak_{v-LFej~NjpI{|<&y#CU}E}dsV@^2YowauSYtE< zM|b}jO(z&HQ?&bo({x6C7Yed!vaWydEHkzM1{!7;f{~BH2c5M7VW0VnmFA3xdy|c7 z!?oeF129?}P@ypy>{7Wm9{VglJN!4Z+5Xqh7F4g(GvcuaAVP~w^UT)EC2Al2?p2HFb^Q>X^ zOtN%emNp*LM#_YxZTWdU3;52n8631nn1%)1pUg5nFkv>%S#Jo=JtWbQe?R?rEbET4 z%Y!SkejIT9Dg4g@E@l&UHMNWDe(C>7SJd~vB=7cRJ4}as?TE0jmfBkTKpAj@X_TDG zCahXrvUY_6_o?AFK9l~JRG)-DkYwJFI>j@v-iZuCAC>^vr;BGJU!&bFp}AjF1fkQ9 zKWaK{bVnN1(rou$xJv(p=cUi1&OMjnxI}vLu<(hgyS2P`EIIwy6TOLU*E`vlNWqu8euWkYP*PA4btgYu hDzub+GY*j`X7*PotqaP(U{3-7gY%~6iq1HM|3A(dOGN+x literal 0 HcmV?d00001 diff --git a/playwright.config.ts b/playwright.config.ts index 7ab3093ba63..40065b92c44 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -26,7 +26,10 @@ export default defineConfig({ ignoreHTTPSErrors: true, video: "retain-on-failure", baseURL, - permissions: ["clipboard-write", "clipboard-read"], + permissions: ["clipboard-write", "clipboard-read", "microphone"], + launchOptions: { + args: ["--use-fake-ui-for-media-stream", "--use-fake-device-for-media-stream", "--mute-audio"], + }, trace: "on-first-retry", }, webServer: { diff --git a/playwright/e2e/timeline/timeline.spec.ts b/playwright/e2e/timeline/timeline.spec.ts new file mode 100644 index 00000000000..5e1102c09b8 --- /dev/null +++ b/playwright/e2e/timeline/timeline.spec.ts @@ -0,0 +1,1130 @@ +/* +Copyright 2022 - 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import * as fs from "node:fs"; + +import type { Locator, Page } from "@playwright/test"; +import type { ISendEventResponse, EventType, MsgType } from "matrix-js-sdk/src/matrix"; +import { test, expect } from "../../element-web-test"; +import { SettingLevel } from "../../../src/settings/SettingLevel"; +import { Layout } from "../../../src/settings/enums/Layout"; +import { Client } from "../../pages/client"; +import { ElementAppPage } from "../../pages/ElementAppPage"; +import { Bot } from "../../pages/bot"; + +// The avatar size used in the timeline +const AVATAR_SIZE = 30; +// The resize method used in the timeline +const AVATAR_RESIZE_METHOD = "crop"; + +const ROOM_NAME = "Test room"; +const OLD_AVATAR = fs.readFileSync("cypress/fixtures/riot.png"); +const NEW_AVATAR = fs.readFileSync("cypress/fixtures/element.png"); +const OLD_NAME = "Alan"; +const NEW_NAME = "Alan (away)"; + +const getEventTilesWithBodies = (page: Page): Locator => { + return page.locator(".mx_EventTile").filter({ has: page.locator(".mx_EventTile_body") }); +}; + +const expectDisplayName = async (e: Locator, displayName: string): Promise => { + await expect(e.locator(".mx_DisambiguatedProfile_displayName")).toHaveText(displayName); +}; + +const expectAvatar = async (cli: Client, e: Locator, avatarUrl: string): Promise => { + const size = await e.page().evaluate((size) => size * window.devicePixelRatio, AVATAR_SIZE); + const url = await cli.evaluate( + (client, { avatarUrl, size, resizeMethod }) => { + // eslint-disable-next-line no-restricted-properties + return client.mxcUrlToHttp(avatarUrl, size, size, resizeMethod); + }, + { avatarUrl, size, resizeMethod: AVATAR_RESIZE_METHOD }, + ); + await expect(e.locator(".mx_BaseAvatar img")).toHaveAttribute("src", url); +}; + +const sendEvent = async (client: Client, roomId: string, html = false): Promise => { + const content = { + msgtype: "m.text" as MsgType, + body: "Message", + format: undefined, + formatted_body: undefined, + }; + if (html) { + content.format = "org.matrix.custom.html"; + content.formatted_body = "Message"; + } + return client.sendEvent(roomId, null, "m.room.message" as EventType, content); +}; + +test.describe("Timeline", () => { + test.use({ + displayName: OLD_NAME, + room: async ({ app, user }, use) => { + const roomId = await app.client.createRoom({ name: ROOM_NAME }); + await use({ roomId }); + }, + }); + + let oldAvatarUrl: string; + let newAvatarUrl: string; + + test.describe("useOnlyCurrentProfiles", () => { + test.beforeEach(async ({ app, user }) => { + ({ content_uri: oldAvatarUrl } = await app.client.uploadContent(OLD_AVATAR, { type: "image/png" })); + await app.client.setAvatarUrl(oldAvatarUrl); + ({ content_uri: newAvatarUrl } = await app.client.uploadContent(NEW_AVATAR, { type: "image/png" })); + }); + + test("should show historical profiles if disabled", async ({ page, app, room }) => { + await app.settings.setValue("useOnlyCurrentProfiles", null, SettingLevel.ACCOUNT, false); + await sendEvent(app.client, room.roomId); + await app.client.setDisplayName("Alan (away)"); + await app.client.setAvatarUrl(newAvatarUrl); + // XXX: If we send the second event too quickly, there won't be + // enough time for the client to register the profile change + await page.waitForTimeout(500); + await sendEvent(app.client, room.roomId); + await app.viewRoomByName(ROOM_NAME); + + const events = getEventTilesWithBodies(page); + await expect(events).toHaveCount(2); + await expectDisplayName(events.nth(0), OLD_NAME); + await expectAvatar(app.client, events.nth(0), oldAvatarUrl); + await expectDisplayName(events.nth(1), NEW_NAME); + await expectAvatar(app.client, events.nth(1), newAvatarUrl); + }); + + test("should not show historical profiles if enabled", async ({ page, app, room }) => { + await app.settings.setValue("useOnlyCurrentProfiles", null, SettingLevel.ACCOUNT, true); + await sendEvent(app.client, room.roomId); + await app.client.setDisplayName(NEW_NAME); + await app.client.setAvatarUrl(newAvatarUrl); + // XXX: If we send the second event too quickly, there won't be + // enough time for the client to register the profile change + await page.waitForTimeout(500); + await sendEvent(app.client, room.roomId); + await app.viewRoomByName(ROOM_NAME); + + const events = getEventTilesWithBodies(page); + await expect(events).toHaveCount(2); + for (const e of await events.all()) { + await expectDisplayName(e, NEW_NAME); + await expectAvatar(app.client, e, newAvatarUrl); + } + }); + }); + + test.describe("configure room", () => { + test("should create and configure a room on IRC layout", async ({ page, app, room }) => { + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + await expect( + page.locator( + ".mx_RoomView_body .mx_GenericEventListSummary[data-layout='irc'] .mx_GenericEventListSummary_summary", + { hasText: `${OLD_NAME} created and configured the room.` }, + ), + ).toBeVisible(); + + // wait for the date separator to appear to have a stable percy snapshot + await expect(page.locator(".mx_TimelineSeparator")).toHaveText("today"); + + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("configured-room-irc-layout.png"); + }); + + test("should have an expanded generic event list summary (GELS) on IRC layout", async ({ page, app, room }) => { + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + + // Wait until configuration is finished + await expect( + page.locator( + ".mx_RoomView_body .mx_GenericEventListSummary[data-layout='irc'] .mx_GenericEventListSummary_summary", + { hasText: `${OLD_NAME} created and configured the room.` }, + ), + ).toBeVisible(); + + const gels = page.locator(".mx_GenericEventListSummary"); + // Click "expand" link button + await gels.getByRole("button", { name: "Expand" }).click(); + // Assert that the "expand" link button worked + await expect(gels.getByRole("button", { name: "Collapse" })).toBeVisible(); + + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("expanded-gels-irc-layout.png", { + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }); + }); + + test("should have an expanded generic event list summary (GELS) on compact modern/group layout", async ({ + page, + app, + room, + }) => { + await page.goto(`/#/room/${room.roomId}`); + + // Set compact modern layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Group); + await app.settings.setValue("useCompactLayout", null, SettingLevel.DEVICE, true); + + // Wait until configuration is finished + await expect( + page.locator(".mx_RoomView_body .mx_GenericEventListSummary[data-layout='group']", { + hasText: `${OLD_NAME} created and configured the room.`, + }), + ).toBeVisible(); + + const gels = page.locator(".mx_GenericEventListSummary"); + // Click "expand" link button + await gels.getByRole("button", { name: "Expand" }).click(); + // Assert that the "expand" link button worked + await expect(gels.getByRole("button", { name: "Collapse" })).toBeVisible(); + + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("expanded-gels-modern-layout.png", { + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }); + }); + + test("should click 'collapse' on the first hovered info event line inside GELS on bubble layout", async ({ + page, + app, + room, + }) => { + // This test checks clickability of the "Collapse" link button, which had been covered with + // MessageActionBar's safe area - https://github.com/vector-im/element-web/issues/22864 + + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); + await expect( + page.locator( + ".mx_RoomView_body .mx_GenericEventListSummary[data-layout='bubble'] .mx_GenericEventListSummary_summary", + { hasText: `${OLD_NAME} created and configured the room.` }, + ), + ).toBeVisible(); + + const gels = page.locator(".mx_GenericEventListSummary"); + // Click "expand" link button + await gels.getByRole("button", { name: "Expand" }).click(); + // Assert that the "expand" link button worked + await expect(gels.getByRole("button", { name: "Collapse" })).toBeVisible(); + + // Make sure spacer is not visible on bubble layout + await expect( + page.locator(".mx_GenericEventListSummary[data-layout=bubble] .mx_GenericEventListSummary_spacer"), + ).not.toBeVisible(); // See: _GenericEventListSummary.pcss + + // Save snapshot of expanded generic event list summary on bubble layout + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("expanded-gels-bubble-layout.png", { + // Exclude timestamp from snapshot + mask: [page.locator(".mx_MessageTimestamp")], + }); + + // Click "collapse" link button on the first hovered info event line + const firstTile = gels.locator(".mx_GenericEventListSummary_unstyledList .mx_EventTile_info:first-of-type"); + await firstTile.hover(); + await expect(firstTile.getByRole("toolbar", { name: "Message Actions" })).toBeVisible(); + await gels.getByRole("button", { name: "Collapse" }).click(); + + // Assert that "collapse" link button worked + await expect(gels.getByRole("button", { name: "Expand" })).toBeVisible(); + + // Save snapshot of collapsed generic event list summary on bubble layout + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("collapsed-gels-bubble-layout.png", { + mask: [page.locator(".mx_MessageTimestamp")], + }); + }); + + test("should add inline start margin to an event line on IRC layout", async ({ + page, + app, + room, + axe, + checkA11y, + }) => { + axe.disableRules("color-contrast"); + + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + + // Wait until configuration is finished + await expect( + page.locator( + ".mx_RoomView_body .mx_GenericEventListSummary[data-layout='irc'] .mx_GenericEventListSummary_summary", + { hasText: `${OLD_NAME} created and configured the room.` }, + ), + ).toBeVisible(); + + // Click "expand" link button + await page.locator(".mx_GenericEventListSummary").getByRole("button", { name: "Expand" }).click(); + + // Check the event line has margin instead of inset property + // cf. _EventTile.pcss + // --EventTile_irc_line_info-margin-inline-start + // = calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding)) + // = 80 + 14 + 5 = 99px + + const firstEventLineIrc = page.locator( + ".mx_EventTile_info[data-layout=irc]:first-of-type .mx_EventTile_line", + ); + await expect(firstEventLineIrc).toHaveCSS("margin-inline-start", "99px"); + await expect(firstEventLineIrc).toHaveCSS("inset-inline-start", "0px"); + + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "event-line-inline-start-margin-irc-layout.png", + { + // Exclude timestamp and read marker from snapshot + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }, + ); + await checkA11y(); + }); + }); + + test.describe("message displaying", () => { + const messageEdit = async (page: Page) => { + const line = page.locator(".mx_EventTile .mx_EventTile_line", { hasText: "Message" }); + await line.hover(); + await line.getByRole("toolbar", { name: "Message Actions" }).getByRole("button", { name: "Edit" }).click(); + await page.getByRole("textbox", { name: "Edit message" }).pressSequentially("Edit"); + await page.getByRole("textbox", { name: "Edit message" }).press("Enter"); + + // Assert that the edited message and the link button are found + // Regex patterns due to the edited date + await expect( + page.locator(".mx_EventTile .mx_EventTile_line", { hasText: "MessageEdit" }).getByRole("button", { + name: /Edited at .*? Click to view edits./, + }), + ).toBeVisible(); + }; + + test("should align generic event list summary with messages and emote on IRC layout", async ({ + page, + app, + room, + }) => { + // This test aims to check: + // 1. Alignment of collapsed GELS (generic event list summary) and messages + // 2. Alignment of expanded GELS and messages + // 3. Alignment of expanded GELS and placeholder of deleted message + // 4. Alignment of expanded GELS, placeholder of deleted message, and emote + + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + + // Wait until configuration is finished + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(`${OLD_NAME} created and configured the room.`), + ).toBeVisible(); + + // Send messages + const composer = app.getComposerField(); + await composer.fill("Hello Mr. Bot"); + await composer.press("Enter"); + await composer.fill("Hello again, Mr. Bot"); + await composer.press("Enter"); + + // Make sure the second message was sent + await expect( + page.locator(".mx_RoomView_MessageList > .mx_EventTile_last .mx_EventTile_receiptSent"), + ).toBeVisible(); + + // 1. Alignment of collapsed GELS (generic event list summary) and messages + // Check inline start spacing of collapsed GELS + // See: _EventTile.pcss + // .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line + // = var(--name-width) + var(--icon-width) + var(--MessageTimestamp-width) + 2 * var(--right-padding) + // = 80 + 14 + 46 + 2 * 5 + // = 150px + await expect(page.locator(".mx_GenericEventListSummary[data-layout=irc] > .mx_EventTile_line")).toHaveCSS( + "padding-inline-start", + "150px", + ); + // Check width and spacing values of elements in .mx_EventTile, which should be equal to 150px + // --right-padding should be applied + for (const locator of await page.locator(".mx_EventTile > a").all()) { + if (await locator.isVisible()) { + await expect(locator).toHaveCSS("margin-right", "5px"); + } + } + // --name-width width zero inline end margin should be applied + for (const locator of await page.locator(".mx_EventTile .mx_DisambiguatedProfile").all()) { + await expect(locator).toHaveCSS("width", "80px"); + await expect(locator).toHaveCSS("margin-inline-end", "0px"); + } + // --icon-width should be applied + for (const locator of await page.locator(".mx_EventTile .mx_EventTile_avatar > .mx_BaseAvatar").all()) { + await expect(locator).toHaveCSS("width", "14px"); + } + // var(--MessageTimestamp-width) should be applied + for (const locator of await page.locator(".mx_EventTile > a").all()) { + await expect(locator).toHaveCSS("min-width", "46px"); + } + // Record alignment of collapsed GELS and messages on messagePanel + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "collapsed-gels-and-messages-irc-layout.png", + { + // Exclude timestamp from snapshot of mx_MainSplit + mask: [page.locator(".mx_MessageTimestamp")], + }, + ); + + // 2. Alignment of expanded GELS and messages + // Click "expand" link button + await page.locator(".mx_GenericEventListSummary").getByRole("button", { name: "Expand" }).click(); + // Check inline start spacing of info line on expanded GELS + // See: _EventTile.pcss + // --EventTile_irc_line_info-margin-inline-start + // = 80 + 14 + 1 * 5 + await expect( + page.locator(".mx_EventTile[data-layout=irc].mx_EventTile_info:first-of-type .mx_EventTile_line"), + ).toHaveCSS("margin-inline-start", "99px"); + // Record alignment of expanded GELS and messages on messagePanel + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("expanded-gels-and-messages-irc-layout.png", { + // Exclude timestamp from snapshot of mx_MainSplit + mask: [page.locator(".mx_MessageTimestamp")], + }); + + // 3. Alignment of expanded GELS and placeholder of deleted message + // Delete the second (last) message + const lastTile = page.locator(".mx_RoomView_MessageList > .mx_EventTile_last"); + await lastTile.hover(); + await lastTile.getByRole("button", { name: "Options" }).click(); + await page.getByRole("menuitem", { name: "Remove" }).click(); + // Confirm deletion + await page.locator(".mx_Dialog_buttons").getByRole("button", { name: "Remove" }).click(); + // Make sure the dialog was closed and the second (last) message was redacted + await expect(page.locator(".mx_Dialog")).not.toBeVisible(); + await expect(page.locator(".mx_GenericEventListSummary .mx_EventTile_last .mx_RedactedBody")).toBeVisible(); + await expect( + page.locator(".mx_GenericEventListSummary .mx_EventTile_last .mx_EventTile_receiptSent"), + ).toBeVisible(); + // Record alignment of expanded GELS and placeholder of deleted message on messagePanel + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("expanded-gels-redaction-placeholder.png", { + // Exclude timestamp from snapshot of mx_MainSplit + mask: [page.locator(".mx_MessageTimestamp")], + }); + + // 4. Alignment of expanded GELS, placeholder of deleted message, and emote + // Send a emote + await page + .locator(".mx_RoomView_body") + .getByRole("textbox", { name: "Send a message…" }) + .fill("/me says hello to Mr. Bot"); + await page.locator(".mx_RoomView_body").getByRole("textbox", { name: "Send a message…" }).press("Enter"); + // Check inline start margin of its avatar + // Here --right-padding is for the avatar on the message line + // See: _IRCLayout.pcss + // .mx_IRCLayout .mx_EventTile_emote .mx_EventTile_avatar + // = calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding)) + // = 80 + 14 + 1 * 5 + await expect(page.locator(".mx_EventTile_emote .mx_EventTile_avatar")).toHaveCSS("margin-left", "99px"); + // Make sure emote was sent + await expect(page.locator(".mx_EventTile_last.mx_EventTile_emote .mx_EventTile_receiptSent")).toBeVisible(); + // Record alignment of expanded GELS, placeholder of deleted message, and emote + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot("expanded-gels-emote-irc-layout.png", { + // Exclude timestamp from snapshot of mx_MainSplit + mask: [page.locator(".mx_MessageTimestamp")], + }); + }); + + test("should render EventTiles on IRC, modern (group), and bubble layout", async ({ page, app, room }) => { + const screenshotOptions = { + // Hide because flaky - See https://github.com/vector-im/element-web/issues/24957 + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }; + + await sendEvent(app.client, room.roomId); + await sendEvent(app.client, room.roomId); // check continuation + await sendEvent(app.client, room.roomId); // check the last EventTile + + await page.goto(`/#/room/${room.roomId}`); + const composer = app.getComposerField(); + // Send a plain text message + await composer.fill("Hello"); + await composer.press("Enter"); + // Send a big emoji + await composer.fill("🏀"); + await composer.press("Enter"); + // Send an inline emoji + await composer.fill("This message has an inline emoji 👒"); + await composer.press("Enter"); + + await expect(page.locator(".mx_RoomView").getByText("This message has an inline emoji 👒")).toBeVisible(); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // IRC layout + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + + // Wait until configuration is finished + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(`${OLD_NAME} created and configured the room.`), + ).toBeVisible(); + + await app.scrollToBottom(page); + await expect( + page.locator(".mx_RoomView").getByText("This message has an inline emoji 👒"), + ).toBeInViewport(); + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "event-tiles-irc-layout.png", + screenshotOptions, + ); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Group/modern layout + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Group); + + // Check that the last EventTile is rendered + await app.scrollToBottom(page); + await expect( + page.locator(".mx_RoomView").getByText("This message has an inline emoji 👒"), + ).toBeInViewport(); + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "event-tiles-modern-layout.png", + screenshotOptions, + ); + + // Check the same thing for compact layout + await app.settings.setValue("useCompactLayout", null, SettingLevel.DEVICE, true); + + // Check that the last EventTile is rendered + await app.scrollToBottom(page); + await expect( + page.locator(".mx_RoomView").getByText("This message has an inline emoji 👒"), + ).toBeInViewport(); + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "event-tiles-compact-modern-layout.png", + screenshotOptions, + ); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Message bubble layout + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); + + await app.scrollToBottom(page); + await expect( + page.locator(".mx_RoomView").getByText("This message has an inline emoji 👒"), + ).toBeInViewport(); + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "event-tiles-bubble-layout.png", + screenshotOptions, + ); + }); + + test("should set inline start padding to a hidden event line", async ({ page, app, room }) => { + await sendEvent(app.client, room.roomId); + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("showHiddenEventsInTimeline", null, SettingLevel.DEVICE, true); + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(`${OLD_NAME} created and configured the room.`), + ).toBeVisible(); + + // Edit message + await messageEdit(page); + + // Click timestamp to highlight hidden event line + await page.locator(".mx_RoomView_body .mx_EventTile_info .mx_MessageTimestamp").click(); + + // should not add inline start padding to a hidden event line on IRC layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + await expect( + page.locator(".mx_EventTile[data-layout=irc].mx_EventTile_info .mx_EventTile_line").first(), + ).toHaveCSS("padding-inline-start", "0px"); + + // Exclude timestamp and read marker from snapshot + const screenshotOptions = { + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }; + + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "hidden-event-line-zero-padding-irc-layout.png", + screenshotOptions, + ); + + // should add inline start padding to a hidden event line on modern layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Group); + // calc(var(--EventTile_group_line-spacing-inline-start) + 20px) = 64 + 20 = 84px + await expect( + page.locator(".mx_EventTile[data-layout=group].mx_EventTile_info .mx_EventTile_line").first(), + ).toHaveCSS("padding-inline-start", "84px"); + + await expect(page.locator(".mx_MainSplit")).toMatchScreenshot( + "hidden-event-line-padding-modern-layout.png", + screenshotOptions, + ); + }); + + test("should click view source event toggle", async ({ page, app, room }) => { + // This test checks: + // 1. clickability of top left of view source event toggle + // 2. clickability of view source toggle on IRC layout + + // Exclude timestamp from snapshot + const screenshotOptions = { + mask: [page.locator(".mx_MessageTimestamp")], + }; + + await sendEvent(app.client, room.roomId); + await page.goto(`/#/room/${room.roomId}`); + await app.settings.setValue("showHiddenEventsInTimeline", null, SettingLevel.DEVICE, true); + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(OLD_NAME + " created and configured the room."), + ).toBeVisible(); + + // Edit message + await messageEdit(page); + + // 1. clickability of top left of view source event toggle + + // Click top left of the event toggle, which should not be covered by MessageActionBar's safe area + const viewSourceEventGroup = page.locator(".mx_EventTile_last[data-layout=group] .mx_ViewSourceEvent"); + await viewSourceEventGroup.hover(); + await viewSourceEventGroup + .getByRole("button", { name: "toggle event" }) + .click({ position: { x: 0, y: 0 } }); + + // Make sure the expand toggle works + const viewSourceEventExpanded = page.locator( + ".mx_EventTile_last[data-layout=group] .mx_ViewSourceEvent_expanded", + ); + await viewSourceEventExpanded.hover(); + const toggleEventButton = viewSourceEventExpanded.getByRole("button", { name: "toggle event" }); + // Check size and position of toggle on expanded view source event + // See: _ViewSourceEvent.pcss + await expect(toggleEventButton).toHaveCSS("height", "12px"); // --ViewSourceEvent_toggle-size + await expect(toggleEventButton).toHaveCSS("align-self", "flex-end"); + // Click again to collapse the source + await toggleEventButton.click({ position: { x: 0, y: 0 } }); + + // Make sure the collapse toggle works + await expect( + page.locator(".mx_EventTile_last[data-layout=group] .mx_ViewSourceEvent_expanded"), + ).not.toBeVisible(); + + // 2. clickability of view source toggle on IRC layout + + // Enable IRC layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + + // Hover the view source toggle on IRC layout + const viewSourceEventIrc = page.locator( + ".mx_GenericEventListSummary[data-layout=irc] .mx_EventTile .mx_ViewSourceEvent", + ); + await viewSourceEventIrc.hover(); + await expect(viewSourceEventIrc).toMatchScreenshot( + "hovered-hidden-event-line-irc-layout.png", + screenshotOptions, + ); + + // Click view source event toggle + await viewSourceEventIrc.getByRole("button", { name: "toggle event" }).click({ position: { x: 0, y: 0 } }); + + // Make sure the expand toggle worked + await expect(page.locator(".mx_EventTile[data-layout=irc] .mx_ViewSourceEvent_expanded")).toBeVisible(); + }); + + test("should render file size in kibibytes on a file tile", async ({ page, room }) => { + await page.goto(`/#/room/${room.roomId}`); + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(OLD_NAME + " created and configured the room."), + ).toBeVisible(); + + // Upload a file from the message composer + await page + .locator(".mx_MessageComposer_actions input[type='file']") + .setInputFiles("cypress/fixtures/matrix-org-client-versions.json"); + + // Click "Upload" button + await page.locator(".mx_Dialog").getByRole("button", { name: "Upload" }).click(); + + // Wait until the file is sent + await expect(page.locator(".mx_RoomView_statusArea_expanded")).not.toBeVisible(); + await expect(page.locator(".mx_EventTile.mx_EventTile_last .mx_EventTile_receiptSent")).toBeVisible(); + + // Assert that the file size is displayed in kibibytes (1024 bytes), not kilobytes (1000 bytes) + // See: https://github.com/vector-im/element-web/issues/24866 + await expect( + page.locator(".mx_EventTile_last .mx_MFileBody_info_filename").getByText(/1.12 KB/), + ).toBeVisible(); + }); + + test("should render url previews", async ({ page, app, room, axe, checkA11y }) => { + axe.disableRules("color-contrast"); + + await page.route( + "**/_matrix/media/v3/thumbnail/matrix.org/2022-08-16_yaiSVSRIsNFfxDnV?*", + async (route) => { + await route.fulfill({ + path: "cypress/fixtures/riot.png", + }); + }, + ); + await page.route( + "**/_matrix/media/v3/preview_url?url=https%3A%2F%2Fcall.element.io%2F&ts=*", + async (route) => { + await route.fulfill({ + json: { + "og:title": "Element Call", + "og:description": null, + "og:image:width": 48, + "og:image:height": 48, + "og:image": "mxc://matrix.org/2022-08-16_yaiSVSRIsNFfxDnV", + "og:image:type": "image/png", + "matrix:image:size": 2121, + }, + }); + }, + ); + + const requestPromises: Promise[] = [ + page.waitForResponse("**/_matrix/media/v3/preview_url?url=https%3A%2F%2Fcall.element.io%2F&ts=*"), + page.waitForResponse("**/_matrix/media/v3/thumbnail/matrix.org/2022-08-16_yaiSVSRIsNFfxDnV?*"), + ]; + + await app.client.sendMessage(room.roomId, "https://call.element.io/"); + await page.goto(`/#/room/${room.roomId}`); + + await expect(page.locator(".mx_LinkPreviewWidget").getByText("Element Call")).toBeVisible(); + await Promise.all(requestPromises); + + await checkA11y(); + + await app.scrollToBottom(page); + await expect(page.locator(".mx_EventTile_last")).toMatchScreenshot("url-preview.png", { + // Exclude timestamp and read marker from snapshot + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }); + }); + + test.describe("on search results panel", () => { + test("should highlight search result words regardless of formatting", async ({ page, app, room }) => { + await sendEvent(app.client, room.roomId); + await sendEvent(app.client, room.roomId, true); + await page.goto(`/#/room/${room.roomId}`); + + await page.locator(".mx_LegacyRoomHeader").getByRole("button", { name: "Search" }).click(); + + await expect(page.locator(".mx_SearchBar")).toMatchScreenshot("search-bar-on-timeline.png"); + + await page.locator(".mx_SearchBar_input").getByRole("textbox").fill("Message"); + await page.locator(".mx_SearchBar_input").getByRole("textbox").press("Enter"); + + for (const locator of await page + .locator(".mx_EventTile:not(.mx_EventTile_contextual) .mx_EventTile_searchHighlight") + .all()) { + await expect(locator).toBeVisible(); + } + await expect(page.locator(".mx_RoomView_searchResultsPanel")).toMatchScreenshot( + "highlighted-search-results.png", + ); + }); + + test("should render a fully opaque textual event", async ({ page, app, room }) => { + const stringToSearch = "Message"; // Same with string sent with sendEvent() + + await sendEvent(app.client, room.roomId); + + await page.goto(`/#/room/${room.roomId}`); + + // Open a room setting dialog + await page.getByRole("button", { name: "Room options" }).click(); + await page.getByRole("menuitem", { name: "Settings" }).click(); + + // Set a room topic to render a TextualEvent + await page.getByRole("textbox", { name: "Room Topic" }).type(`This is a room for ${stringToSearch}.`); + await page.getByRole("button", { name: "Save" }).click(); + + await app.closeDialog(); + + // Assert that the TextualEvent is rendered + await expect( + page.getByText(`${OLD_NAME} changed the topic to "This is a room for ${stringToSearch}.".`), + ).toHaveClass(/mx_TextualEvent/); + + // Display the room search bar + await page.locator(".mx_LegacyRoomHeader").getByRole("button", { name: "Search" }).click(); + + // Search the string to display both the message and TextualEvent on search results panel + await page.locator(".mx_SearchBar").getByRole("textbox").fill(stringToSearch); + await page.locator(".mx_SearchBar").getByRole("textbox").press("Enter"); + + // On search results panel + const resultsPanel = page.locator(".mx_RoomView_searchResultsPanel"); + // Assert that contextual event tiles are translucent + for (const locator of await resultsPanel.locator(".mx_EventTile.mx_EventTile_contextual").all()) { + await expect(locator).toHaveCSS("opacity", "0.4"); + } + // Assert that the TextualEvent is fully opaque (visually solid). + for (const locator of await resultsPanel.locator(".mx_EventTile .mx_TextualEvent").all()) { + await expect(locator).toHaveCSS("opacity", "1"); + } + + await expect(page.locator(".mx_RoomView_searchResultsPanel")).toMatchScreenshot( + "search-results-with-TextualEvent.png", + ); + }); + }); + }); + + test.describe("message sending", () => { + const MESSAGE = "Hello world"; + const reply = "Reply"; + const viewRoomSendMessageAndSetupReply = async (page: Page, app: ElementAppPage, roomId: string) => { + // View room + await page.goto(`/#/room/${roomId}`); + + // Send a message + const composer = app.getComposerField(); + await composer.fill(MESSAGE); + await composer.press("Enter"); + + // Reply to the message + const lastTile = page.locator(".mx_EventTile_last"); + await expect(lastTile.getByText(MESSAGE)).toBeVisible(); + await lastTile.hover(); + await lastTile.getByRole("button", { name: "Reply", exact: true }).click(); + }; + + // For clicking the reply button on the last line + const clickButtonReply = async (page: Page): Promise => { + const lastTile = page.locator(".mx_RoomView_MessageList .mx_EventTile_last"); + await lastTile.hover(); + await lastTile.getByRole("button", { name: "Reply", exact: true }).click(); + }; + + test("can reply with a text message", async ({ page, app, room }) => { + await viewRoomSendMessageAndSetupReply(page, app, room.roomId); + + await app.getComposerField().fill(reply); + await app.getComposerField().press("Enter"); + + const eventTileLine = page.locator(".mx_RoomView_body .mx_EventTile_last .mx_EventTile_line"); + await expect(eventTileLine.locator(".mx_ReplyTile .mx_MTextBody").getByText(MESSAGE)).toBeVisible(); + await expect(eventTileLine.getByText(reply)).toHaveCount(1); + }); + + test("can reply with a voice message", async ({ page, app, room, context }) => { + await context.grantPermissions(["microphone"]); + await viewRoomSendMessageAndSetupReply(page, app, room.roomId); + + const composerOptions = await app.openMessageComposerOptions(); + await composerOptions.getByRole("menuitem", { name: "Voice Message" }).click(); + + // Record an empty message + await page.waitForTimeout(3000); + + const roomViewBody = page.locator(".mx_RoomView_body"); + await roomViewBody + .locator(".mx_MessageComposer") + .getByRole("button", { name: "Send voice message" }) + .click(); + + const lastEventTileLine = roomViewBody.locator(".mx_EventTile_last .mx_EventTile_line"); + await expect(lastEventTileLine.locator(".mx_ReplyTile .mx_MTextBody").getByText(MESSAGE)).toBeVisible(); + + await expect(lastEventTileLine.locator(".mx_MVoiceMessageBody")).toHaveCount(1); + }); + + test("should not be possible to send flag with regional emojis", async ({ page, app, room }) => { + await page.goto(`/#/room/${room.roomId}`); + + // Send a message + await app.getComposerField().pressSequentially(":regional_indicator_a"); + await page.locator(".mx_Autocomplete_Completion_title", { hasText: ":regional_indicator_a:" }).click(); + await app.getComposerField().pressSequentially(":regional_indicator_r"); + await page.locator(".mx_Autocomplete_Completion_title", { hasText: ":regional_indicator_r:" }).click(); + await app.getComposerField().pressSequentially(" :regional_indicator_z"); + await page.locator(".mx_Autocomplete_Completion_title", { hasText: ":regional_indicator_z:" }).click(); + await app.getComposerField().pressSequentially(":regional_indicator_a"); + await page.locator(".mx_Autocomplete_Completion_title", { hasText: ":regional_indicator_a:" }).click(); + await app.getComposerField().press("Enter"); + + await expect( + page.locator( + ".mx_RoomView_body .mx_EventTile .mx_EventTile_line .mx_MTextBody .mx_EventTile_bigEmoji > *", + ), + ).toHaveCount(4); + }); + + test("should display a reply chain", async ({ page, app, room, homeserver }) => { + const reply2 = "Reply again"; + + await page.goto(`/#/room/${room.roomId}`); + + // Wait until configuration is finished + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(OLD_NAME + " created and configured the room."), + ).toBeVisible(); + + // Create a bot "BotBob" and invite it + const bot = new Bot(page, homeserver, { + displayName: "BotBob", + autoAcceptInvites: false, + }); + await bot.prepareClient(); + await app.client.inviteUser(room.roomId, bot.credentials.userId); + await bot.joinRoom(room.roomId); + + // Make sure the bot joined the room + await expect( + page + .locator(".mx_GenericEventListSummary .mx_EventTile_info.mx_EventTile_last") + .getByText("BotBob joined the room"), + ).toBeVisible(); + + // Have bot send MESSAGE to roomId + await bot.sendMessage(room.roomId, MESSAGE); + + // Assert that MESSAGE is found + await expect(page.getByText(MESSAGE)).toBeVisible(); + + // Reply to the message + await clickButtonReply(page); + await app.getComposerField().fill(reply); + await app.getComposerField().press("Enter"); + + // Make sure 'reply' was sent + await expect(page.locator(".mx_RoomView_body .mx_EventTile_last").getByText(reply)).toBeVisible(); + + // Reply again to create a replyChain + await clickButtonReply(page); + await app.getComposerField().fill(reply2); + await app.getComposerField().press("Enter"); + + // Assert that 'reply2' was sent + await expect(page.locator(".mx_RoomView_body .mx_EventTile_last").getByText(reply2)).toBeVisible(); + + await expect(page.locator(".mx_EventTile_last .mx_EventTile_receiptSent")).toBeVisible(); + + // Exclude timestamp and read marker from snapshot + const screenshotOptions = { + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }; + + // Check the margin value of ReplyChains of EventTile at the bottom on IRC layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + for (const locator of await page.locator(".mx_EventTile_last[data-layout='irc'] .mx_ReplyChain").all()) { + await expect(locator).toHaveCSS("margin", "0px"); + } + + // Take a snapshot on IRC layout + // Note that because zero margin is applied to mx_ReplyChain, the left borders of two mx_ReplyChain + // components may seem to be connected to one. + await expect(page.locator(".mx_EventTile_last")).toMatchScreenshot( + "event-tile-reply-chains-irc-layout.png", + screenshotOptions, + ); + + // Check the margin value of ReplyChains of EventTile at the bottom on group/modern layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Group); + for (const locator of await page.locator(".mx_EventTile_last[data-layout='group'] .mx_ReplyChain").all()) { + await expect(locator).toHaveCSS("margin-bottom", "8px"); + } + + // Take a snapshot on modern layout + await expect(page.locator(".mx_EventTile_last")).toMatchScreenshot( + "event-tile-reply-chains-irc-modern.png", + screenshotOptions, + ); + + // Check the margin value of ReplyChains of EventTile at the bottom on group/modern compact layout + await app.settings.setValue("useCompactLayout", null, SettingLevel.DEVICE, true); + for (const locator of await page.locator(".mx_EventTile_last[data-layout='group'] .mx_ReplyChain").all()) { + await expect(locator).toHaveCSS("margin-bottom", "4px"); + } + + // Take a snapshot on compact modern layout + await expect(page.locator(".mx_EventTile_last")).toMatchScreenshot( + "event-tile-reply-chains-compact-modern-layout.png", + screenshotOptions, + ); + + // Check the margin value of ReplyChains of EventTile at the bottom on bubble layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); + for (const locator of await page.locator(".mx_EventTile_last[data-layout='bubble'] .mx_ReplyChain").all()) { + await expect(locator).toHaveCSS("margin-bottom", "8px"); + } + + // Take a snapshot on bubble layout + await expect(page.locator(".mx_EventTile_last")).toMatchScreenshot( + "event-tile-reply-chains-bubble-layout.png", + screenshotOptions, + ); + }); + + test("should send, reply, and display long strings without overflowing", async ({ + page, + app, + room, + homeserver, + }) => { + // Max 256 characters for display name + const LONG_STRING = + "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut " + + "et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut " + + "aliquip"; + + // Create a bot with a long display name + const bot = new Bot(page, homeserver, { + displayName: LONG_STRING, + autoAcceptInvites: false, + }); + await bot.prepareClient(); + + // Create another room with a long name, invite the bot, and open the room + const testRoomId = await app.client.createRoom({ name: LONG_STRING }); + await app.client.inviteUser(testRoomId, bot.credentials.userId); + await bot.joinRoom(testRoomId); + await page.goto(`/#/room/${testRoomId}`); + + // Wait until configuration is finished + await expect( + page + .locator(".mx_GenericEventListSummary_summary") + .getByText(OLD_NAME + " created and configured the room."), + ).toBeVisible(); + + // Set the display name to "LONG_STRING 2" in order to avoid a warning in Percy tests from being triggered + // due to the generated random mxid being displayed inside the GELS summary. + await app.client.setDisplayName(`${LONG_STRING} 2`); + + // Have the bot send a long message + await bot.sendMessage(testRoomId, { + body: LONG_STRING, + msgtype: "m.text", + }); + + // Wait until the message is rendered + await expect( + page.locator(".mx_EventTile_last .mx_MTextBody .mx_EventTile_body").getByText(LONG_STRING), + ).toBeVisible(); + + // Reply to the message + await clickButtonReply(page); + await app.getComposerField().fill(reply); + await app.getComposerField().press("Enter"); + + // Make sure the reply tile is rendered + const eventTileLine = page.locator(".mx_EventTile_last .mx_EventTile_line"); + await expect(eventTileLine.locator(".mx_ReplyTile .mx_MTextBody").getByText(LONG_STRING)).toBeVisible(); + + await expect(eventTileLine.getByText(reply)).toHaveCount(1); + + // Change the viewport size + await page.setViewportSize({ width: 1600, height: 1200 }); + + // Exclude timestamp and read marker from snapshot + const screenshotOptions = { + mask: [page.locator(".mx_MessageTimestamp")], + css: ` + .mx_TopUnreadMessagesBar, .mx_MessagePanel_myReadMarker { + display: none !important; + } + `, + }; + + // Make sure the strings do not overflow on IRC layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + // Scroll to the bottom to have Percy take a snapshot of the whole viewport + await app.scrollToBottom(page); + // Assert that both avatar in the introduction and the last message are visible at the same time + await expect(page.locator(".mx_NewRoomIntro .mx_BaseAvatar")).toBeVisible(); + const lastEventTileIrc = page.locator(".mx_EventTile_last[data-layout='irc']"); + await expect(lastEventTileIrc.locator(".mx_MTextBody").first()).toBeVisible(); + await expect(lastEventTileIrc.locator(".mx_EventTile_receiptSent")).toBeVisible(); // rendered at the bottom of EventTile + // Take a snapshot in IRC layout + await expect(page.locator(".mx_ScrollPanel")).toMatchScreenshot( + "long-strings-with-reply-irc-layout.png", + screenshotOptions, + ); + + // Make sure the strings do not overflow on modern layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Group); + await app.scrollToBottom(page); // Scroll again in case + await expect(page.locator(".mx_NewRoomIntro .mx_BaseAvatar")).toBeVisible(); + const lastEventTileGroup = page.locator(".mx_EventTile_last[data-layout='group']"); + await expect(lastEventTileGroup.locator(".mx_MTextBody").first()).toBeVisible(); + await expect(lastEventTileGroup.locator(".mx_EventTile_receiptSent")).toBeVisible(); + await expect(page.locator(".mx_ScrollPanel")).toMatchScreenshot( + "long-strings-with-reply-modern-layout.png", + screenshotOptions, + ); + + // Make sure the strings do not overflow on bubble layout + await app.settings.setValue("layout", null, SettingLevel.DEVICE, Layout.Bubble); + await app.scrollToBottom(page); // Scroll again in case + await expect(page.locator(".mx_NewRoomIntro .mx_BaseAvatar")).toBeVisible(); + const lastEventTileBubble = page.locator(".mx_EventTile_last[data-layout='bubble']"); + await expect(lastEventTileBubble.locator(".mx_MTextBody").first()).toBeVisible(); + await expect(lastEventTileBubble.locator(".mx_EventTile_receiptSent")).toBeVisible(); + await expect(page.locator(".mx_ScrollPanel")).toMatchScreenshot( + "long-strings-with-reply-bubble-layout.png", + screenshotOptions, + ); + }); + }); +}); diff --git a/playwright/element-web-test.ts b/playwright/element-web-test.ts index ecea2963325..cb8638ebbf8 100644 --- a/playwright/element-web-test.ts +++ b/playwright/element-web-test.ts @@ -250,6 +250,10 @@ export const expect = baseExpect.extend({ .mx_ReplyChain { border-left-color: var(--cpd-color-blue-1200) !important; } + /* Use monospace font for timestamp for consistent mask width */ + .mx_MessageTimestamp { + font-family: Inconsolata !important; + } ${options?.css ?? ""} `, })) as ElementHandle; diff --git a/playwright/pages/ElementAppPage.ts b/playwright/pages/ElementAppPage.ts index 4e065a4b176..8bc0f5ae0e1 100644 --- a/playwright/pages/ElementAppPage.ts +++ b/playwright/pages/ElementAppPage.ts @@ -105,6 +105,14 @@ export class ElementAppPage { return this.page.locator(`${panelClass} .mx_MessageComposer`); } + /** + * Get the composer input field + * @param isRightPanel whether to select the right panel composer, otherwise the main timeline composer + */ + public getComposerField(isRightPanel?: boolean): Locator { + return this.getComposer(isRightPanel).locator("[contenteditable]"); + } + /** * Open the message composer kebab menu * @param isRightPanel whether to select the right panel composer, otherwise the main timeline composer @@ -155,4 +163,10 @@ export class ElementAppPage { await spotlight.open(); return spotlight; } + + public async scrollToBottom(page: Page): Promise { + await page + .locator(".mx_ScrollPanel") + .evaluate((scrollPanel) => scrollPanel.scrollTo(0, scrollPanel.scrollHeight)); + } } diff --git a/playwright/pages/client.ts b/playwright/pages/client.ts index 6c56cb90d3b..a197f093337 100644 --- a/playwright/pages/client.ts +++ b/playwright/pages/client.ts @@ -28,6 +28,8 @@ import type { IRoomDirectoryOptions, KnockRoomOpts, Visibility, + UploadOpts, + Upload, } from "matrix-js-sdk/src/matrix"; import { Credentials } from "../plugins/homeserver"; @@ -293,6 +295,46 @@ export class Client { }, options); } + /** + * @param {string} name + * @param {module:client.callback} callback Optional. + * @return {Promise} Resolves: {} an empty object. + * @return {module:http-api.MatrixError} Rejects: with an error response. + */ + public async setDisplayName(name: string): Promise<{}> { + const client = await this.prepareClient(); + return client.evaluate(async (cli: MatrixClient, name) => cli.setDisplayName(name), name); + } + + /** + * @param {string} url + * @param {module:client.callback} callback Optional. + * @return {Promise} Resolves: {} an empty object. + * @return {module:http-api.MatrixError} Rejects: with an error response. + */ + public async setAvatarUrl(url: string): Promise<{}> { + const client = await this.prepareClient(); + return client.evaluate(async (cli: MatrixClient, url) => cli.setAvatarUrl(url), url); + } + + /** + * Upload a file to the media repository on the homeserver. + * + * @param {object} file The object to upload. On a browser, something that + * can be sent to XMLHttpRequest.send (typically a File). Under node.js, + * a Buffer, String or ReadStream. + */ + public async uploadContent(file: Buffer, opts?: UploadOpts): Promise> { + const client = await this.prepareClient(); + return client.evaluate( + async (cli: MatrixClient, { file, opts }) => cli.uploadContent(new Uint8Array(file), opts), + { + file: [...file], + opts, + }, + ); + } + /** * Boostraps cross-signing. */ diff --git a/playwright/snapshots/timeline/timeline.spec.ts/collapsed-gels-and-messages-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/collapsed-gels-and-messages-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..db736e2fe513e9c49474718edc928f576373c42d GIT binary patch literal 47123 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/collapsed-gels-bubble-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/collapsed-gels-bubble-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f2492a1a2fd0b7646838edfbfad88375b4f613 GIT binary patch literal 41326 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/configured-room-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/configured-room-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a954d9a007da446c29c76a8a40e6c447b4b2996f GIT binary patch literal 41365 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 b`9HQdocn|_zvnvzMzGD=3U0|V_k8>}Qgt>% literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-line-inline-start-margin-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-line-inline-start-margin-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe188636c1bd98c49ec1a6842f0c0810923010d GIT binary patch literal 52246 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

    i0x4%upWS;-L^KksWp*iHaJU9Ct}KTG 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-compact-modern-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-compact-modern-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf9c2927a8f64af8c7e578907e5da71706b8554 GIT binary patch literal 8239 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ec69155240f8785bfbbd6c09178863b218c32e GIT binary patch literal 9337 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-irc-modern-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-tile-reply-chains-irc-modern-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ed65bbc63d6cb7efe23743009caa5a99acd42b73 GIT binary patch literal 8406 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-tiles-bubble-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-tiles-bubble-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..3d684c73cb28618aebb5aa980f2fe5713c30deba GIT binary patch literal 40545 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Ɵ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 Ts((C~!$WX6)rUBl$It%@LpO|{ literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-tiles-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-tiles-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e26c3e69095faf3ecd9f18c9be421561584c03 GIT binary patch literal 55933 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/event-tiles-modern-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/event-tiles-modern-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a8587e76046ee9219608cb7e501ca68cb3df108a GIT binary patch literal 40466 zcmdqJcT|&G*e{5BYV`CB_v1*C6uTL z2uLRhJxV8$PUwNzIp6o)d*`k-|IFNVXU(i7EAZxh_ulV*>hJeF+xLe0S}e@$%uGy7 zEZPqr7&9@QfH5&0?>ln}Tyf!LUjiS;yp6T)Ghuo-7nzv;X3~Ce&-6vc?+L#bruLI< zYk>nN3htiC{o^?QtG+-jCH3*U)0!AVr2v`x`s}JIM^#VM2|JDm&dCNa^ z_tK@~HwwD-ef0d)T-iREiaMX4e%*`%+_U`WytwsH zhe{7FskZ@FH)sd!S>iUI__da zb4p=*$AQ2zrzu#w;B|tJy`7y!vVUCzwPS6&17$sOsr1QUa^`5$N*w0u)Ia+5mG(oG zmg)#NX`l}$>o(!+9hlHj5U5mZ(qPtlGx}meZ;8bW{;7Rd7+U&yaE#{ULo4O~R z=j|P44sWCeEz*KW!C#NMIlCkWrLb#bnMhKhZv}<9?4tGKbg6#9NGuE3+TmrZb((cb zHrPopAyPM-_|84F_t=>GW-@tiV%hl__P5Req}%3`_00tB*qG}^3#u)Ad7E8Cm{}Kv zaMrBLfdzunl+hk2Es+|npMM$iF1xehkir5rMe7KhG(%f2xRKv`rN@4?XnGQfG{Y27 z2s*y1f3m>L#cc+gliJsVg2@qTHZB9j82-hdqnA4$c76Be(jKi{|9I&crc*G-`h!d0 zu7rdIcj!UKypFDJm6bzcAC3h<-$NYd0)lf}Z}@V5Gj-#g2fjq^{dX7opreG-*4J5_ z&9{7|(o$zD96X;;$qgHwm)F3U8Ro!Go`eq)Ge@gi_s+zPxDuyWIX1twcTBKk(-F`S!C6|fr?%tO6S%PI9*`90Wlxkm>r0bQDvg&GSl)Yd4j~_qO=;40=bNu@r0X2skx05V& z>$)jmW8nE)<+-V@xreEP!>{Gh%!$L6_OjRNZ$AB{`*Y8JOnhnF+c16z=g&7WSQDmL z>rp5*|I}yQv>KvTv6jNheX$UC0~=wjn_RJd!OZaS@`{N~o__XV^++oo-?Fsf*|3Lr z11X9s_Mtlcj3IlgCEb=itc=NyGPZD9n{P3D7m`4(UyXYbyaLPGz9=0yR(tf4n_bF= z#vu!Fns~>q7?ddMzSoNE4*PgbW&1!EKH7+dpA0XBh4<`{PxC-CQ#dX7EJ)?HwaPuz zEA5}zzraV3P0eZR(O)TY{aQSs4*qWKF)(%n`3(|UUctDyaJt=@e0V}(?^7Y{ar9$E zT`?+I9EREAYPcm|ouwHSbl0&rYp_59Z;T>xU9qaoZHo$iFfU>K-7jYAw^{}@{BIzS zr##5hOiX^KZFxKhWj12%>$&t5`ryQu=WCs`R%Yw?DJF+PcZ2gX+)PT=p)IOLgb< z;|tDS&gz>C-X~z(IIvFrkD#?~r1tEfn~sixO{)hF7KuX9HCdh4LU${hvt?n=+LcSp z#Gnu3eV0bj7xTH}($mv5qd75AKOS|bN|~#NM-RnooHNCTG~LH06zHZrrL75OyWBkr z8LeAnbK7@oICbIr4O?3t77kepD#>GLkA;IqaXA|DBL^k9ph@xNE*;3|b)e7{+bqWZ zw%O2U4~MEp)I=63G6a^=Ldh&{-vDzarn}CB8pvghEL9h5nN<=~IAQuBn|Pa*O8Lx+ zp!R6!t@$tEpdJO8 z1a2*h`6y|xZ*H0rka8_{tq~!~_8}p1JmyHB4fCH>`jJ0$H`-{kQ@_iyQ_2S&ZF@h7 z@{HFuu*;P|7uHTNy=*Yg4pb7_`{57M#tCaHvId*!n!63XoP=?~tloQhRh~};3V{s3 z3d2WlKZ4dkkM1@4Pp6X=B)(a9VkH76ywvb6xZj8+GnM_r0c+e;nRbH7EZ z{s?*fw~~57q+g*|gj#~rL$Yd8M9BQtyq)z(1MdUKm)6#i^_^LKV@^nLpvw}DMe)UI zPSK-X&6TF3S2iy~@@xXu>hF8>67e&`4KPo;Fcf%&gburbpUo45k`S(z+H)XFV>7tm z7tJ{iHE|TLw&ualf4-=opj2ub+Y=*R{_RDINb&GaSMvOr?=pl2hYU5DKpwAY&QcwjUu1b-) zxu}4a&Uay$&fJrN7J*Kq)$eOuM}#FjB)Ur9vPswsH13`=6_hrO_nFm+PZo!YJ32b* z1#Qi71mC!+DF(%oqIevw!Z2m430YaqMJd|31Ki}{;%R{w|N_^3&C`|+ATM5wB~z-e#&_?D`L+& zhOFF0wJQJWH6sH{I&r}2r|?BQ7=j%P8t&}tgA}V9Hsc2&oGduDgXy-d)pgxom;EiS zwA;VV0^jpMRaMoh(XO;7Lje`qe3-^x>N+C1_jJHcLqo%*zyW9HVWO5;L^bLK42o)mu!WX{Rw{tXaMMfb7E1a7jr?>A)TXFF(J*bG>TN z1z*jxXfC@QS>UY}*^E)|_O=!Z>``)-$xD-g58uDnri|q$Je|HQ9r(qo>tgah-=!#I zR3!WlGtb8aIU2R!QiSLxPVCR_8@*>ns?i=ui-scRtfNM&oyyo>L4201Dtm0B2)X&c zDC5mo;k_hM-RXBul-P5L8B5z=4qg31f9PfY{F_UW-CbR`)O+7-6ubR6ORWwz0HTE0 zG>6ZHJD3&sHd-dED_KlBbXgSZJZPnxEI#OGQrywruEle(0#i}^^+Y?qs;X-4M_TTU zH>ctIF`0}_%2e{xk5yH);R#vIf`sw}uVyJ$dla8IeZhGzD)pp|ND_=n6qE7mc_iaD zVBsB-R_wpQhSWJ)r zMBwqMPA}e`5XKVooKHkId3;ii^pvUyK)}1&mF5Lxv|_S{wyUmEy0--v-)NIv<{Aq} z{Z>B~^;qY0oqfM9vV!{5r?$-U(|pn#p?-LfD^kAuUEC#fVLTU-waxncThPZJTR5cn zh3uFEqj0&I(CmY+@PP(QR)%UPCK%+_KYI|X59_XqLtO@0Zalh~&=$*G1cxyDF^`;1 zXeNQktbwTj3KOtc>S@-6;fE1^pX{=iOx;}gcrk2QikA}Qa8Nxww*`=b(Z)?0*1Pu} z44=gd>;XhIAXB^?Ioosw;W59sn46M)-FAj{E-m)dlU$_57juVHtjo#`0kUsF7x#wI zm3Q2W@dY0|w&Nqyt60R`rWqh-a_L#^AxMOu&%0PinC5H!8P|{wedX5eP?gu4A+jl( zCWCZTM}0-FEJ5^Rqq!^#J_~4L-yA1kpSh%u*)}DY+14x%(4fUvwO0Y zHt6}=ddRpNYJtE_ohqyg8r%9kU}N8vEM$6weSO^COHxR7xzc!Wz}2SQdPI^k)Lf{D z^{^~i8WAoDfTU(TiilEmQKzPZEe=3XOJv2^*#h^$0z`dzz#v9VidX{5C9uApb;Ut2 zCM!1Y_QB>?QQgV00{az@%3S-&y{2)?6NdrY<2SE>{itua#!+q?I)>(JHxTBVj-}!l zX_31&EP-Sv&Wg?v`Viky-mI&aA|xVm4wqN15uxijYqU zR_BfTwD#xy!`J>3AzxT6k-r}5_X+>#Zyxqdwr z4#W|{8pH)leljp9&VlS)Z%qQBTG301ii$T zhkg{%W>@`G+_}FekIPUiymSF(`L$MaaX9&5=4h~4#fOxn=f5KOJBlk)4qVI(yXOd3 zh!sWm$Gqtb!r-NvM0nW0gh3sL{ML*nxWsg8_Wuov;D4qkQcAo%V=xRdfJsLzVZ>Ed z33uk-)uF99VN7u!6MrvUVtmKSQ!W`Jer)8q9vf$motF=T>?k}X` zy)6@Z`uf&Gh~gVQzhZta&j~vU`f7oV%L5TOzJWule)++HKHKswA-Mq`KAG-*dobHU zXb6H5G@(T(IDkv#*bQ8kT9mjwD*N*ev z0gwMb6?8#9}63JEk~k!raW)h8Y^)udDlpUL8y>Q7d&HN=J3AR zztNC$7n7~3C)--r~=Kd1Y^T&-b57nHkwjjla+_U4HmBHYi zpY9J9gl`z__fV;4H?DB_kK`guk+6HQ23)0ZT0IeDUre{ozQtTx?b>dT-k6<@5pVh0 zI$=4j%2AfA&MuE*IFp>A>GlsSS1UH69FE93S}9Ki=$h}E1L3*)2UnLC0Q<-E(m1xy zKBsFQvk-aOQAkQ)DDw#u9n#-Iufkr#1)#>e}pXOq=TNK@rXxI|@G zv@WqA+(Be1pkrL)BDkrJ1KdG0GV{E$+0qpUw$maEpd;@a3Z6N%(2Y?(h7B>!E+`#$@ZCp|Eb0QkH7u1}VG(SM5VY%6M|Fl3Xc^Hy9bau}i6 z5UM(}Aj#~u-5c(+{5>;Nkso}!>Nq{Ma9k%ntX27`^zHz)74z%tkz8c;WMe3%|68^u z@WtRRro+!4#FZGt-74BBMm+!fc@O#0bH6J7H4~;=kTWpfYQJ40trSDo!Y6-%`#)#C z9Xz+>w6gxJb$Pl$kZlgvXn7O>CrbP%s%fq8+r2{z!Q@ZuGt70_46IK(svh~B+)zw2EsJlwI2aG38r_#jVi28dZBsbwZ`t5K1 z{mp=nOes7yq5dCc^4y%)=lZt{XJX2Q?*2nUJ69!LvYDHGwN{*>j48~pmXBoE92;y$dh7KT5pSzr@(}@9)+BJ|#Roo!gG*5i;+MZ}90M zv}nYJNM$gfG1K^sGq6+V;Kmvkg5`6*)oia8+(1qUfBIGfQc|YBLo;kF?&~khqqQ&e z5V2h(mNCr)RRnG3LjJm&x55o0y!)6lRiPbGmW1EVgtq_(~-ogVX$4tI?HV zS$85%_1LVd`&hN-36^D&iOp;$e4{3F&wmjK*v8b=etw*5JMZrSWO!Z@6B*i zhS(ETGi+Y4G4_6ISq->J#)~u@*TU)CF(>6Y!VL^AG!XwC487wyV=O8r21AkDj2$jc zPMLM5mw3Iz-}nz1UH-4a%HTPM%s$_J`)_`A`>$L^#9{jL!2)9xrV|%&jF0~xd>t2= zf9{svahE^XoSOhWzhuLB&zDLka;f58dz;s>)V`7Rj8BX$z6L_2)=DGYA;$h_n?g-) z4-MYcNZO`}{X#PKLO#C3RW_Xq_P{xrp4j3Bl`RdR-3=!^9r}O)L>wSKMhYdsZ8_Dy z9+J3tXWLl1>CRbmVmp=>FBba%TK(iHGn3fB2A6}DXQqWZNt{&crT~zoe9R@d5Ep0O zCxDb6Vq;?i@5^ak=8(Dn<}^!Ohh6-7-K6M#`= zr>bTjl6KFrNgsY_NBsQ!#d?1gaEol&p?MhCp}Y<&D=XS)TdhROv1hJ+DZD+pA5T7T zj8XJ5`PfHWcpFZm$(e}t+WrUiq@badO{`msrR=P&TJN7ZQ&Oc5W;UBreq=8pN<8yFafS;?DAG;W%6Df-Bhn$1O_WjaX*8(d0YWrmz@#ow@A!7-Q( zyM>4JX2){=QvFOr+Tw(6R#w*N0rjfeNF^kGW_GqPsf$hIR>?bl=O4pb)gdjK+VSPF zv6@kw05_v3cHe~Pn}gO9bsvPa_qNhID1@r;B7-BNl*^YkC--@*YBK5U)#2RiZX5Fa zLh^Mrd)rhITU%QK`ZBV{4T?JYoU0hL^ACS1oPfl644nZA;ry#N(&zWE=b~AkWvy>v zP;gLUTAI}Y!VA?tIA|gUl{KH&-(L9kK4H&!IS6p1I`N&!VyMK#E76>H9_8lV*rRW& zSm9j5>?hi}gCCS1O|R_6fZ7bxt@HX4KA*zQu~{BB-*$)5mgEv-{S z3_E!e-B|55Xrgq2(@N9{Y zNprugZHV^9oP_A6V*TP+af<5h&WWy#xVXnnw5?D9Z4w4H7)tiny%5t(Uf)BN(@lWJ ze|W~t@I8F1)8Eh6{G8WFZtqpyC=hsV?|)EnHo3hk`N;Ea8yTNByOssb71NF7p1}GK zD$=FrwW5Wde(LP?z6{oD9bfIVX52O1elx1}t)TY$>T2IN$E?o&np@Nvhu0 zhy=>+%R_oumLGMrb$w@jw#$EuVgAD>v~ZlicPi8{_Uy_&cFk@QHjM=wa>ldE%SC5n zmCHgK4<)n*l#YUJ$)Rd6G_=-ux{ZZUso^c-LNwLaZ?mJ6nQ&H}yKwZ36A+Kz*81s)`yR;)7# zGok3S@Tq2HxO8>(aztz_2|pR6YhHeHG3)}BUG2Ym0p}0@}t;r;<3! z1^M~soNN;jV6K;H9QRY+g#B?Edf&X|9gR@zSAHLzot#`0@B{&oD8tx~0A_BH7CPA| z_3KBfw+_Eg*t@qD$A@|{8wl0f&rqb=m0@Rp>wHZFFb`H|hBE)`eK&ZH%k}5y!{m0J zke&A!Sc3y?@5`I;p*)BZZAr}{G;kK8J-{gb{K~>0FB2c4M}59~CYJavStYlVOpHZi zVb&Sw(M+|_N%!e%w|~Z_Lmut!L0cV_+$04AG_r$LJJy5x(0ADE|8qJ%*m>Ef-)_@a zTmIxy2zaCw!);P5z71c^d4)7CtmNg@cb+^5)6v&Ad-Ox23${%O3lpMgA^{hYl#x-U zN4&yE zK_8osLU1wMN<|y$Vy zTYJPAee`^wsp0&)?yRD}Bri$zfG$EA^Jq5SaL|jy>ffVfs0M2;Df-kXt6dHrfKQ;u zLI%GZ$$1poqOBlqw`%?eA+J@J^`fT^FlfkZXA-Mf zEv7BT-!M}VQEgSM5ji*7=$z?rAP+^Ep@}2j^NDeBw?G9=20m=~=F}D`?#7#$->$(r zzXlCdasy~zHP(81iAlS6&#J~Q7mTDEc~t@eA{y}P z4AW=|qz%C}`aJLB_zZ_mj8ObGo~TJ^uAoyCg*VKg)~ z-%SQ>Up@&bFIu}0T^Z2rDoZ7=gb0ToF$b)F2ib!q58Yc3!s4dCHuot ziT*=3tn1Bu{=y1m`^G|S=HGUZgDB+f#ed%Xdt-dwD4zq z9{(bqM?aolg+Aai;8rZoI#dgqEs%)x>P6C$&cnvM9139wYto=RFO7E#%T_KN*|;il z==B;-D9iQC5AQ0!zsu?E%gbwgE~U)aZqvEGuCBx;^RH-bnFjzZ%?;axY$THd9lHYe zm$hsut&TUH=EgN}S2&7uD6ax`zI;%;c(K$TMHIPl$LJp61npQMXFc)~wv%2B)K0!+!XM zfp^_d#ErT5!io3)JQTBO*8I@#XeXNv5h=lep>pF!WzdXf2%;}Hmmi+!F^Vi1bcCRF zUbd-8>wumo;wTFq;8s|7y6n)K{CD3+Qq=(6tP``r;nBGEEwkHd~p1na3=YG4UebXG#p`}v$V80^ zJphqVwb6}-&)0}{bz(WNKC=NV979^_r#Fo>@aubP#bHR!pArTaF3@pq#TZ+Iey|QC zbpHJM>T?p~e&6Y<6KX*@r)bn%05_#W`(Q?^F+H zUoWm_?qi*42`(KZ1bOupWw;sZyEIas-)?|(L(Q3aCwuW}crq{1|W#@dXStt8-TXMbg*EBnI*rnEhzAfS@k@4T4QrcGQrE(l*0i z=$6ofI;EFJLLchi6eM6QVe`+#;YVNi*4KrL(`1edX!kqz2+d6urcbjln;J&n#k%+N z_Xd15$cV44O+o%)YP>Hi23mp=8IDxEwN2zR*%q{&A%rQ_HA_3NCy3W#j;Dr4#a)yH z`SNC#mI^^Z50?>F(zJg;2v~VY$Sgug)~2{O!=&EJ9@5|teS98N0|I|NOgV-dA2fs3 ztPGsa)-xJ2>lO{Yr*B|D0tPG{F!Ps;vxPytk3j=5;{AKVKoWK6Q^>@9H$fE@n24Fj zP|1@MLq+yd+VP>S%)-#3D1xo0RxBs)Q3R_yIw6-8B}dsU<~Bm75d^eDSUW{zWb}ZM zoAxee@@w}h%bKO8rh-m}IDW*^kWF^bZszPz&ba=ws=}4(Y9I8-C(CC%*D!6hbHK-B zKb@Y!dMy=Mx2KYYyn)J^VUbA!+Vns_QthBam#ZuktF4188XA&DxQ=yt6)e{aws&(2R4pdKDR;~!vM2SR-9dYlx2(+X@tkoo7g;7y| z(kPRbEvIN7_{CuL`jIK+{R2rZv?-}rop|1S1KoIFGo|hTL+-pkv!wLm8)dVtn1{=x z#N;}())g7P%mMdrb{c`(+c_XT-`rNA4_jytI40mpU-;UqU+l8$iq+I~4WLZ|X^SHe zs;ql|#!218xEC58_`}Krk-fz?y+sQaFW!O}NNDmteT>P_7?5?hQy;O9mlvyMDnryy zZPtk5UkK?73CUeycMYaIdiY!qJytEyo{ytS5vbK>jcSSS|VJ5etFW7*)hvr=-~^Er(wA<*6G#5~b{R2QY_IAT+J`B;o%0FRkBBHCDd1|y^ zyTRux?Z^hqEygtq3fC4gUlA zq)9P36dI9t?;{OwQk>_0s$ou#!?JCp(*GHkve%Dwt0$xOrPjN1{Y}iQhdUX&=8g3d z_Q6}mCW8^mAUTeB-De*sY44tODv|EGHfm3ts|%~~wm zNec1tsjmb}S}rDFhaya9{LhYoc@OvQi`}l7?~Y5k0uZ-(mXm_k{G;t6!AC zd{hkQInw)oZi!jdST*7N%OybA(cFSScZyUM7!V-S#&8OKVvQ z^c!}NNP@jfF~N`P*xwTR57o6mw?~xhK_!GEWCXe8X5}=#a8YBls6%M`!|YYj$f`d9 z=X9|)O5)zJL)O_}zc80CelY7YcjyIX!cPIZL!6X7v) z7Rjx^96>O;!jqk&a~P6*1ezuXqy|78-v(H z89~0IQA+GL+TshSB$H~pR;$d|`jU(4dyC!Xwv`zXb%DLFtoQW{Bo5GPRq&A}M?827 z@XwdtY>PwaSw9&&#`Iip`l0z*FHcXS^5sk!$1ld9R~ThQ=u`|6J(%-YeN?xb-*Fhi zIy1dgsIZaZ^!@WBARr2W)0-KwT?uS(TK;P9h45r}KLqgGMZH!zYtJ+-#VNf#1lpWp z)ts2Iro+3}phd^ky3yf>WyvSSF98e9xk$q=<{%McBzdD)cT8l;6j(kxDkLb#-Nv@k zr8h*T#9T{t(nglHG&Pl%HKFL-^SaQ>&)b9`d`vM&+8V#2^l`p%wg&z6AH`rZp5Q|) z_ca9zTFZR|=zWp(7-Ix)*TbjKK1NOjH6`n1=S$ivBgmg#wNl#6G&0Nc%FGkDi9owP zA!g0O#j@Wt4oiyjZKpQ=NgdfL|xYcfGGovoM5^NbO^HbH7a*!CR;ljI2UB1AEOQwg%P`drpKKvLM*2;en-ul@z~Y-#8agK?^wcDv=$)>!>!_b7qn6Vp{t53CLJAZDS?s%B z04kd$B04g~yxt2whD-(d*$r(*_{s|O`d1RHF0v(>k7XG7O2|hU@_<&@dNaFRz}w_9 z3zVfd+hXXEzuvOD`^l|LY_Pd`3e-EUAa3*?`_a#bP1_wa*3@n{Xqb^;L2_FRHwNMo z+F#}$IXgFpJVm28{h+rn6AbRH!0wf^5dd=u5s!spIC4uiAc?eyy~)waY}O*oIOWr< zx8X<6`iA;h#q)eysf~Y-mxC+uvHO>U@&U zb1EWX_?3j%*xKc#fje5?{q24Pr%8oY@aFd}n9evC7L0$V#j5xd)>G!WNxiz}Q1@{o zIcbYG``gvHxj~|@24o;xg6Z=_hn+Y@0m?wIFOPfb{jWV0alL?0Aji6zJ)fAB`ov_P zte>5@NLbU+HV`pOSNgJB@CRXkVdXsf2GFcny&w%|=f(3&)A~jk6^TXu-;FOl(`k$^ zAd&YzuOeI_>|`xKHi?30Cm*ob=$jcmG)wKUVh!o*pPlLa&Sc)&Wxjv2*|Gq!`}7~R z6VNRa9uJA8!_JLXtNGrDUeGx}1do1fc0{E?N^|eg(iX#2pj@yR^*V(HdE6hLe_2~+ z=-L5_=DFi^dPOEE^3&^9qo9Mit;xfl z_0e!VW`GTkCe;^oA)yr!haF45*0!Ui6%sGKSWDZpqq1uVd@J=m8QK(Nz@svr_bdi?xc`e^dtgwa>85rX zz};fyXiK~$hpdOm{V7%mW~TgD@G_+8Cd+!T+E;_Df#3d-tf30`uyA5uU4P50d2Zt@ zEjqo{8Q|pqGc1(VQUhpw&u+jk;ILFnn%16ug@dhJ=a7|9ZZ3y~PZn4#xs~3)SFqL8 ze2t;|E-o&nZFc(m6bibpQ2hmy^!GM9StA@ppcY zR@n|Z^bEEi(Tg)OJ>JC_2pT|4H?PxImPmGzsr=eUyFa~U&Y<#v>9mnZ^)TnTSs4)@HWhZreFRGe&w$cgy032@dJ+; z%I~sV7ORXUjaG7;)TZX6J0Mid%A4+G-p-u{?dgv23hbW4b*Gu#gEw-5JG; zRcs3&+yB6iwr()ukUJ{s2gnPa#H5j}P@JkpF9T#Yp(?PLGZ+X3K3e9_uJ|by2`McD z$j*rpRqy5NYqoKdC30voncekz;1d^--@{b}#l)WgaHj_^*{JZx0?^@y&GU=-7KP zP)qSLP>S|{{1Ie-(k_#{!AH~9D*HQioJ$)hxrXaiY;Z$-Rx*7i+;U@fj)DY<GomWZtk@Ux$ir_OG9HyR3>WD_a5y(Om(QraHl7!H89(|9~LU-WYo?&4MlJI zG;Mb=2P-&5oq8*i#INVHSpF7#j9*`q*_#K z0rw#b<0mUVC`jk&TPRv`$8M+Crh0jKcKZ9efHPbC+LJam$@situ>S;{9zf~;q)C?v zYU7GwF0J3b!52FbyCD}j6?1Bl5OmN+)4~Ldte-9hP(oDHBeX@6QLh^9A3*SkYpg?<>U-Kp(!J`Jg6EK>LstDgxjGfRW#2hOZ2%s;K0DW_RTZd;+hsZ>ZM> z5HxYcQ5XQt%h}f?GY85E7MsaQZwC#3J)Cm)gZ#=GkCY3v|SJE(Hw0 z(TIibcXoGP0NUX*CzjQh{?GS?AQ#!xM*(vc6`enRBo-Hk^Ow35Z|%)=tpIw)d&1zH z@h}3Ew}k*Wt z?K9z)p}Q1rYXhDG+yGL~Ec?A224!ACV>@a_aEzHI@WTLxOHAZoX2CdPmHF$6h;F0t z)4KM)haf#~2dScto~}tiz&k)2EC%RAsO|(sKmz|0(Tyu!@@i1LfkkJ96VCQiXz3ee zH}G3*60KJ)-iSS`wTF(3RKn)1kFPN}o+;DBN&o32&R4o8e_+K{YzNzDfE6ldzf+fe zo?Ep@lcmM9$%@r&57DqkqZ9$OQ0m;Wr%;n#c#Ap@sY0P5Gcq%MR=?lLjQYnIB)xzy zNgi=E3&6Sg@rz+Pj~!C_Y6>Sqj-+JDY|U?cks;LGQ`t2yi*wmOpmcKwt&;`a$YhX{ zEHQegcD{29Ox9t{%_aKOh@y%7srJd115r(5n^vS_$u-;Y=~EGk1~naeDg@-?xQ{?CiqSCNNhlO7i?)VHQS@}6_+^)BzW{!FbQB<w3;EZzaVN=ofzcyoPhOElb#cx+oOnY#)s(v==gGtrs-)L}B9UkM%Sc zXnS9QQ80aHus0$SU-l+EcJa&pyArFU&NNx?W{iz4F*m=RHe7dlozuXG*o&G23+`e42&favx%7m$4IUlF{#I+4j}GXO{k~2l zo?cLrE%Wsn6VvYWa+t4laIY)^%~eFdOdgtaJSuGJJ=ERL3O0F`j_BKj`rY|+?Oa@K zLpbp*PmPtI`ZuGlXV6hQzlABwC3$Zh-8SXo6vZtwGA=sFhfjcPRn_e3a6vt{wr1bO zt`0ILW+XV22iHU0t~s2!h>~^D=QJJ^mht+drc9NTA#aBb+O41~B-@vZ?5ET*9Yrvh zL%@cjY6N-nt^n1@(yCvdw(U1qUUrX&H82ziRqF}`Cma{AFZyr!Z|1>kVKN;HOT)TO`I3KPH0gTLyx$ zwj`9;Kmc@1P#7%3#0)&=Nwe(9P&(h^;6Z?3JyyH7-m1ICuW10+3wVITrV348SO zVr#1{an4Pt+I{dUZDnF2xmNJBxj7pH2RU>@3&_5Q7~P6BMX%p)8MG2$qB^{rTDwT_ z-ez?`$d~Kk4~uB&H6bwt-Oitslc~XmrUl650jN&7)?;Ag=&CydvKl#-%=} z$x;ox2a@M1y#Cyi=~J}okU=vUS3^>zs6;DFO*f3W8GvshU~X91LM^poGW!5&ELuKa zlYO<|6ZJu+D(dK9#oKKXr|t<3Ne1tg{U^Bf`eXVvrQ4mh*R8OXpsIq?k!?2r?>K$o zYpd?4-_K8GWs{EwE%528S|AOrac%}Z40`fSefkb7WN{Ba1D0ll3+=a+8LG4`=>)AM zOAKz(RCCymc&QA7$#^b40>Uv2&oR{FxN~p&k$-z-jF?-c>8dD-b=qbqAu^;-i6f=d zpYS&wZDOluu@js{Bd*d0{aV_nw$!VOBLZrauSdaUmF~*{*e)i2T%GgO01skW=k?bE zloPQ;P*kq}yQKf>HI=Ft?|8*+jWZ*XWS-4DOXhGHUtWRjp)%6L4=WsU^Da+cnV}XN z?5V|3GtY}8ZWHSI`50tJcUr^4qy1hN1}y-{qZyEvSc0m{S|>>MO~K*b2J+mweeXe# zq$i0@m(HT(7@hclu_|>#Ij|4cYGqNC<>CK0bi)dCJ=d5^OpRir>U+IRUguTU7M_B( z+k702klYdlq_fP^=W6uZF3rNHci4uTZ$EP)*1ftaZds~HYZ2{YmpL<-XOG&*bPPmi z7rLfOG9qi*9mia=vXLD2SA?PcN%6fW#2}$;y0lsttXTh{STvW4HHvtc2UgqF-3?)( z5c)sfk-hEyU%deP;jFkxQE)(cnuoJ=rKq>R{v6w^ZN+N_Y1GYrv^IF|WRv;-H9H{s zybK&NHLbUH_hZ!Z93{OEPcz@BCI7^6%xsN4*mAXv$AU_3j-6+~4F>%EZ~qs-)aHH0 z-?#tL`u|uH+D_=!vXUYa?lHY1<(v@rmyVOM`brbqqK4?^x1P=P zC-1F+z>B5@k;a95dSP+*FP=I3YV(og#^JF)zir+Ye6vn3Yqjba+5b&fa?G1~vZ8R} zzwOTdy~^|V?vaxR&{qC$E?>83qZfA?^urGezwgL9ru=bDymrI{!mOHiwNS+Q>6o}= zL%mW1qxZU43LI=muZrBMO$~ifn+4sEzJxY&OgSzejp``yz^S2LVbkRs7)`ImPXlw` z1lLUm(#hMpXRKc=2#mP0)9Ac; z`YT79naSMygpoopj6BQOIWGR2H*EYTc}gF+#Dhn<Zwr&jMq)bKA9dlzRiTGU^f z{DtG3sqJFRfE{1GtF%Y*cT53O{=D*5{B(Usi_}Y>H8N;2ePMACcNoU(zpvN;j+TSt z2H;P7_M}^=U6m|^FQY4&$$fga`{?h&^}SMq=yw5)Pgw|}#`pb|n>M?1VF3=^)`2{7 zY;5%nI7O^J<90tV!m;&$xq;VNy^EzfSmWy1jZOjWfTHDmcGHIU>n{R2)NGF}y;#<3 zwYoGE-0^3t#ia~G8OEa*aoj^LUPwv!=b3T3URYz!=}z?~_ir`;xv09Vd0~Sm=#6+q|Jl zn_$1Tnie|=aW!8lL%otqa?&%N@5EN~t#1F>UK1>D-hXy&J$3c9x=RSEbvhy{cAxY% zE^2uYzZ3w3`P1Sp=Cs99o&cd%v*k+rzW9+b$Kj5iwi&8Owck84fCVyb$+MtoU3UCy zIc1+5t57(p#D2K)#*VBNeU#m(@$quQ8K0K z7g#rY&|LF}eH$+L{@IfBfQHt~d!K^+=#C`K=tIvia42eV0BQmmZZ|*7ZpOrM{OYKg z9#PFmcMa0+FpHtaCkuR zvG@WFt?f>Ss#2FE+}5FQOK!BtT^CYc zEoA>ge43wAio?>8cHstV-@9U4qwsaYK-rz9JL!p{#o1Yb>MXj6{Rb@#*qsGctSC%d zDLlrgn^&MxriedvVtmsky~oOb>SfPcm{B`3f!1n5H{o(wdijCfqT#*1ZBxO~@6m#; z4|1FCRDJfb^-}5il!D{+UM>&viD~s74Zf$dI|gWWvpDcdaBGylm1hv1@l>+Cu=Dn( zS_0mTPfQtS?%0B%tVPI3=MR4Np@LSUyK|ogXiQc70v#d!G zlB!c01F3&(Wa%c0u-ps-4!H9-rHGqA0ngi(ZsA*g&lSaN6j5SbQmTSfEbHBQE*Pj( zJWlH&pCJuRq$6gRdQE{wP#$IH^nH97-0T>6$S$P^q^(7>8Ga7>5M6y$An}UCRfc`>42~ZRah8luc z=V_qyIe)BMM|&I@X5R0ISJNC}~%(n|n=5FjMH6Yu@KdF#!3>&=?C z=FOVl zcQvf*(DFT}@%rt@kVZn26&AmIF=G3EJ4cC8SppQXeLG~NwTa&i=7h{1rha`ps(IOS z60D~IS>~hop;f77kQNmXY@2HtDkZB1@-EtvpX2vS^&Eg3eqjQ37PaIUoH3lOl)J1J zxe`6kRp3*{I_2q9nwPG%$x}~d>+P}^UjqEtG*hA2`LJ7b;CGdG z+WbaU&6zc#&bXQ3e zeZKT7*POnH~ zisvkb;ndGW$7quwFXFZliw=09d9-_9YsKV8C(_P5et^i5Gf!iwtvh@`KZgXnJbY8o z@x2A1cV?mHY2~*&Jt(F)EwgWBqA!Nt1+X__QnuY%<|DOgoPX}rn57PIN(ce_@V04G zr-?N3s&ART4HibxDu0Z<@!08GwgtCXHNjh%K+jOMs~jLb<=mURmU)hU@D50XR=g-DzsQWuUC9O>tKJqLWiSje?>Sp zd32>Qdxb90RBG3iHCvo;*{3+k$r?iYtSv{j0u?P#g}h7JBP{NU2+g&M3b;*SRrjpe zO^D_GI65elr~nQirzyh|o_oQ#tX|Qh0q^$G zT7dNRuPm0YnPdC=za~Ook=KD#@#FrY*Bes@K_Gd3e>PmG&G)Z>7Ob26;`0s5S?bgi zK2P~)%-V6n>qtH`Hd-bKSX2n!W&CpQ>*KYwaVq=N_=y7@sGgX}vQz>+lZxB&fOYon z3%CrPGge77zMA1E_g_Gq zKym>uFaL6j`!pQ!eVtB{Ycn$$HWwb=fmIg)p{xWjc~{%<3O4~DE?)Tu#H@1H$r)@e zpuqg^npE?@?TfuhuV&bliEKPy!u#cfLIJ^4j)hrOK- zXftPWdJJ|%xm>j=4r}Uu@%x-p;`ee8TgpsDz2NXa< zy`O{dhwNN(6gx%@wEpW`=umf%Bv_inu_Db~@`0~KI86N~cp4c}e zO9oJG?*x;?@@x=Hcis=2)bjBu10k|&tK!@NgijSKgyS09KXwUHKlkp@4V5n!PRcfw zY5$P=^T_vXkNH+&i6qHAFq)^N+h}^YjOu@QkA(hmY7T+?yH##CiaHXDazfw?CKMOiigO&Cg-I807omF&*0$i{E2<~{w!u|W z;?HxluU|>p{mk5%##mgQ$#6~xb{i(eX{>>D-Z$l_iEs0`1%>fdGGIxfr;; z1V7sLM@mhve1AJVyEb3g!MI$qb&)u`yqxyP{oY45$+<1D#D|s6vx}a~2LXs$SE_Tk zT}MYd$l&zwUH$A57?ef|pbWcAby8YnEK-G9C<{w2rqib zZ(an7S~8j<;J>}M4_T+udKJGcucVDq;>KL9tAkh|1Fgp+YS$t}A|oS{kf;kBL-kE( zSigut*n5%anu@FC6nF7SOW)o_Qb3sv1GOPAqPbat^waw|Y2{^!txj$#5_WL`xAFMU+*VuVPkJe~T zmJXYU`d35uA6N3%5lbRZL^@CJ9RX_h_QaUSwr2!)3ACZ1?nK7GcRZ|X5^pkDGHimK zt7dksT%;5o>g_c*O9i!gDYk415!sbY{>G-+>p;t@$cWP1tCF$MeDKnbaeAOcX_`etA&=TEsWz%Yd(p?O8C_oStMjV zI#BI!&pG2@a{>R8#eW^4zU4H}G0-%f8mI`e0BBqN^6>t$xBNPps0-~;@UhunK{b%$ zBCxHH!gY{}d1!wc@@hYzlgYB5tfmO93_sXn(N7li-FE4OrnP#cw@iDJ(n{yA^GW(` zap-{Ev$?Q2T&lB9>$R=qUjnM`P@|W7Vi!!mkKmDGmge`ZQ~B@;#8PI1k9ud!xIP6-R~G!O{0D%zS2gNJmrQ}azQ6h^G^ol@ClLpG z(8f_SR88Xc{lulk1q3h}_q#O4vb;QHT8<}U>$ee1_R7yLA@~5+56Jg#6B6=YXdsOS z!%4glku)hy|EM2;W8lk;G*Yz78c8aml`+#_o=lG(06PsX|W? zV8g0%bFa}O!=9^(I>KpRtyR^@@_Bv$h-es>-i^nb)Vi7`;v9|If@(n^3Wz>434=29 zY?6*0+0gTuA7hz(8EcY`R({)uXd@!&MiiiaBsl9-kuxV9-m`K|mI7lyapPoG7SI$HQ{HVcMhg z(XLkVrc~+PcMK}VcXiigvf(^RW{UbHR9K*^WaYd}f|y4ZGnI);v4W?5RUdpqu*XfZ z6k4k+%Xj?z{bd@PrbAGQ6N>hbx&G9*1_o7@?tIoB^QyZ2bJ-&zTt!u!p|6J`xO|umwc%8T9wxcG&^1fS-M3H@oDb+n<#= zCeAU~*=Z%pA72p`HtyQY>ZgdWTq94}JBT_wIb3_q5~}!#+q5DaYSgMApz329xBx7- z7*7eqz^#e>>>rsM@5YZ_6X+65$MJ)?z7%gOk9~NHzUOBziFE9IupY{}7X+j{55r;f z8!tqF;GJvQ(OOB>JcnCj4tz8bYq~KmtIXIaEF@UUo2QE zWn8YIxoo`1N5uYB{6?k_sDf690WGs5t=a_hUi5pQSdDqjC+rWqIV;l!8>iP-#<*S) z!_FB~UTJbP)?{xo??9^cvOX!%|A70IrN9yQKkH3|R!k&1-qNwV`dSQZ5Pma3|9g9CwL9ZJcRH)4gB6PDj3e zJO}evU-@MzeL=LRx_Fv$wOzhHmWvd`%g?`@u9ixP z09ie>R|=C8B*&;24$`Eph(eVHFrC+md{4+qQP#;Oj@qu1@gHG68!B&<5V_e(@M#;Q z+SE6szlWyuFk*bzg@|gSo0Tmn$bkh!-7+yruf!gzoN6;ExxOKK!UkLDezXYO@*Wa4 zd80TTv=l-c?Pgv=DvG^%<)DOa;B?h3JcJ%(eAY~UVd83~JL8Wn{=cXe{RBIcMhEsp zl$o`AxQts@-Q+kF3z~xl7(?~Qb*>x5sYhTy0kP2y{Bt8 zl`aezK;&F^F><{kwL&D;nL#R!y{hVC+zTb^Lo zPRTStm_lO#9GOk)g|q_T0^BWPAKw(1+u9xmH}E^}A31`vGo?psIb2oJMF)r)9a!3o zmrhVwMC5F1t*gCy(b45vpF%m4R*Lou3!6V(X7|ysMj}rR=hG$q| zU7X=kF4pZg465Fn33^Oy)+XGkz#DCP`4hCJ#rk1y&%-TCn&-*Ey0N{qkssvi^4fJ+ zvCJd88kp)3{WwwUeJvxU>~fd*4*4bkp0n|0++XQ#v{Oj&$Z1&jAWre3(*foEz=;Ef zGHc2UAg|D0I$Op-xOt>Lg(F*=r?%@Y|F^@(2CLG&b z>96*5^$C2jYBWEjCkBqAj5D)yWR~9!W(X`D-}Qr!REKNxMiEN;}Fyd+JBj5%Vj z785S2Wt}_U+F+{w*tupjA1LhceA4|55c=aQ@m`WX?i4RrUAAEgiwyeyQu5wO#_Ss+ zzfMECryc7iIQ#S`pY<3LXQl$eH*5CAJ6-8H)^Do4gndTc26jd*5LlD?U+z*u+cuPJ z6^Biy{Ry2x@+C}eQWhiPIWxQ6TVAT4w06<4woIenbSUbn{KgWn`1~;xHzsICt-!}2 zr(1#w`&t6|G@nI?+Pf%eSk&#k=0ycrV8^EqmlEXY>%0St39GQF)|1nMlr z(AXTbx<`hyXZRw$vS-*rziEmtlk#ZzVL4| z!zHF)qwkc5dPMP}o>(X+mhHWKCE$@+P4HRBw6=m{tW6>>wg2r&ix zncuv5+>GuUH>;D%P)WW~E<0oK9Fj_V@!aUYJC|RenTnm#HwA4Z>!nxE4QLsK-roHU z*kW%6=1n)t6`v%uCueC)ZDxd zvCR4iH*4t*t8unP5L19tCfd0y?BZCdN>}q(jTo;5cF{a)IC!%`iKE|qT93#J+3$jk z-=te%?1ej32+^gfOn32?$?^V506^lShn}F)SniCKM_5vjO=-8i*Fi?i6On7WR^;sD zs3?e@qNQcr(460{WhDuK{tSdxY49Be3qnUUqNHg#v>EBru4*BY(}TZ-Uk%$+o4-C5 zv{H!WMVa68nA`L*x^Lf{L!f8CU!j0)#Mj|O^R8ZV6M20ms(&4u5zotIjZle8sDJR- z#Ch36KamVf>(!c?RbBAfrMEG#o|a!{r2_p5c$bz*BR*#N(DXVjk%;pC{p>yzeDr`r zKED-AD6sD!{e*rx0&e9Wluuo04GU%t{h=OC{W`T)(x3C3w@W@dx$w_sKB|bDj^ zc~lXk+U9PV>eOQ`F5auaXYtZm%rxT0G2n4anIfQigmTKFb^ig_|m(Tl79bJt&^U*5>O8Ty=vFUtsd5%yqTkq zmKF99_!9lQE6CFc$)nNV>9jj&n;Y5rbO9e}Ujl0zw_?a^vm>eeAWJoWzfZ}Q?JJMt zo$H=K!QFeD?wG#yIvSo zuYR5==LadR%fus8IZM71$@DmvBfAUYqi%II*=yhL-l)&SvxOw(k9T&8B`eAPDzToh zuJPErjpJ+-wP-4eji7BUaC-Ur_y1Veb={E=8szdAstPR`E6h+`rb87yUHwv-SP_ZS z?2)LKomBFbH%p8fFOQ3HKafyESQ|g5HMbZVx7Y**?g!*AdPjf(1*ZUBH0XKcj#f;$ z4`g8M)p*TP)TFGqS%iTOo-`>fEB-t6B%iO-6vK;}5yH*RB=>9t1|N8#W=dl@l;}tK zh&``{YO>Sg>hQ0t@I@z`RPBN4YD_^B=`Z?2FHOKCAths&GPziH_mN#i{yMX{B!{z{ zJoKkk*E&^`c@=k%xFMgr?h&z+#djFEMDyFWPWpFvy4u};(&b<>DHTy0bif+%8c&(& z99nMt^Bntc@4{uk_qF0;4mO&Su%x_eq8g4X!PpCdLo?KKCDi+T5d=C&(Ghab5@;1C zY)ae>!upBHmS`2B9hWnH;?I;4H`L+Z^1`jH8H2^?6g)B!aq^na37P#{J!4bFh{3Caz}p8W}DfE(X#&HNcpxe*6#uZvQkpQoMAhUj{@e;SaZg_u5Cab7*Mj7?Pvlq)#d9mGz=v+ZO+-31S8w)FI5^Cq$ zH`gHd?er3Z($;RXvcjXsBW~Wh^(C|d*hgQdRu8@F&l5DNsM_D*$p_HNMI*;j4Wj8Q zGt^iVzl&`Rsqq}-SDR>fq+I7sc-($pqf|A*uWP?IMOI6~F%TWWnq&(Ifh{`~o|8keY67*^fW({o4Z z*|U2qvyHhO?dldO!W_&T&W-w{iP9eTqW zY9;-kk9$(mWs{jpIaKB3Ic`G$S_8ny9JrK%dDW&Jv{-KfWPRpN8xORp&Yn-4`s+&- zHuC-}A3mxA>}%te-B0>0lJNT&qS#rUk~PI3p{rN#O*Z+PR6FVbC?Gw?K)+(%t{}?k zD938q(dNf%0!U%;68hYCm%$$WwY62PtUvQT2UwcWdXY*62U=a@<5p~B;OiGJuu-HG(t)h8k9uI&m;X3q%jpgFSct->vitqM_#~9Y5 zD3Vn~5MoIo22m7f1)AN1Zo^Y8lp)k${LT!8%=6XopU=?oLh|fTy@!X01;+a5(WA=) zjYg4vdes)!p_dE&J9NI4;9XfRU(U5@+Hw9i*tfjWxWx|hjE+v17P@uw zK~EBT2+UAr3>=+Dp4Ozgp+X|Xs^$QW*78t6L~oWXA6SZMsY!Htojx^)BuR}zp?3O- zos~!lk7p_>y*+(>dXr7Q!>;I7VPLj}41mD^7}ezyf1c>>8PpQ7lq58G+8O6R`EhpK ze|@y{wnyw>K~%DFd5{!o4X=vE-tJIB0^$~iNCPbOa((lF22lL~U38N1+qXwzj{lq< z)ODYGtWkUx0b>~7rtot-IZq{uMwICC=ERMuLDCz9(*#1!cfV#TbcK;cWdCJvmSRyX ze@HIa_!k;Lt0N~L7OY%l^PCCi*UQS)Nw2@DaDX|(dh=Z;w=24S>avK3hlf)#o%A z%DnBJ5#!CY<5K_j_`ZlVxl-FTIiM%3~m|$P);d=RC z`!3_9JNLmMVb#iY?Ax>C3AtlH9IsF0P23@y=|6ct|1~vz=^y$49Njncx))1TEcC@( zyLPR{Wso%l8yfxd=g-xUW5-`Gv$Lb7LjL5HCpgv$iYh^YjYZI`qHKSA4b_>wnmb%> zSsY3Yf{z#0Y9geq1yU{iI(JIjD1clck7p8JHE23qAPz++~IQNEV@D%|wvdzWX4uwI@kf zKNNc)5YsdTEeF}6ywR6#TQ~Ww4Fj0H?WF`%(66wZAeW(+KI5=UO2(6jZBrGM=NSL> z5=UHGiQak^$L6X&B#yLmkrn6YT@^SvVMH^x|A)&A0Z8Vb3ky!jcO4&9Bk)*QHgkyP zUNV36-UL`GrUouZB;(}~nDXO^eEOCsek&%( z&(DwB0Yq6|tembvPV2IWSQ^LG?2MCk0uQtj6N*O5S`cKEQPB-zCwW~trQqMsaMI;c zvB&h3WtC6kv17-E3cQP$iCK=->dkkw*I%c&>^rC% zS<5BuT1iWv!lLLz1I3JT&aeo6u@^5Ghc*Y?4h#rzZtup+A!*M+g`d1b8d-vJ0EI$1 z?i6D?^a5aqlOe_n0?QWHjN>a7E`98wo-0GcqFPjmO#@I!+w};#YEZb~eU;rHlX#u~=JMi^~Ut!H3Ia&zwDzkX)2(S>s&c zInz=6;KwKSy7j4QGrKA7A}uyClqCtiJXsn6McTa%p#kFRP~0#{B33!?H=am2>%;Vz zINs&7LI1s%fcW%Wm{qH4qsDi|kC97B<*1WxWe8ocY|v{iTDeN@Z6NzBZ@aWmhdBi; zx6fxPB6N9l_V0s@&-aAR3(kGeB&dr1>|oT%Qcz2m_Am(8^<@#(zZJ_C6@4KL+9KFNSX954Wc>Djpi1Po(%6-YlfjDs=d_R0mU+aTvJ@gdSq}kr0y}fh6 z*&Qt4NCp6iemW;)+T~bXaEJSX7ZeoQ@z&J&KOglZqn*iXEdnuOuu9F=*2c{LA_Kou zrPKjPOtmUIzz2lP$_>z2iiX?S*oSY^>fK7K=7dVsO8qPwo_JR696x!k1QDwwXx188 zVq97PNN#LyZeBR1s)}B!?e{2AFW(o0Ri*(sF89NSE0jhMTPWe!YxqJvwnV$JdwCrB z#&2yR)0V+rU5c&&KLCEZBh>w!{tlgVW^lz(M|y3VST1svpW_R@Oo@7(&8`cwM8VOv357 zBy!4ZtoawB5z(-62xWKAMlRQgfl4jbA-6o6>)fdZvA)h|!t~|%e@_;U9?s7xwfpy-2Ma~^L#Z6?pcWD3 zk3ate{$;}!%Gn2g6*#zwb#U{Aix=sMWB{qvC{}q?t=y_spSn*Ps?%{z6f`je5;t(x z5cK5hmcHevo;lt4F0V5NY#D)%wgyl1-{FxS;XSqLFk^*W&f5IOR2d*2*+*P z20!9NIj9b^G$>$1`pKY58Yn)$REND4T#O+vmIIx^cYVqPmnLPBJ*6l$JDL;6yF$Dn zoQ9jX-@-H&9aMfP{;hxj5sLkDUtb^XZuElQD8q|Q;ZKtJ~j;j20#g^4l$pgfOE7cH$A9O(FEN;oWsu3;!xtBoXqJ?mh{STLw zVInBV_xG{h3|q<-uy>wh2j~%0*D^iVmxh)GgDB-P#x;xA*1++1TfZ-D|Ua29ydlC$h6;1$HNchfC4$_ z^mX8;+Lm#Vp9sY8)rEEzPR=4oyt0mjPkZML=lMg&m6=!&cjD*H3!!T6nBM&$3ocZ- z-((B`88T-#+WcMT)_!EIj&#KrNgaf}jmro89H3{G_-7yO+8-%11vih-?c2BUo-ba! z04UW303eJ{e(K#lMI6%!n7C? z__ix5P%*CYAgG6I?Qr29-7FQL|LY3ljhk~YO>oO%p8U!M+W+|BNSU<71!0#8)4k-) zV*rO?=!`sqEn_4z>w z25&#QiVob=?Fis(0|ur4Uohe6k(M76FW4n8SJ^<2TnQq}&)p1?Ye;urLZPf8khI}W zEBBS;gs!4uZKd|P{RfJTNzQzY2>B*2`Wjt8tU#*NYC_!ex|;$4QE{ScZ_ASGiFM9Q zkk)!EO$);IoaoL9@$yV|t>pJ2d594ViL*b=WQ)Y;BG6sAQ#QR9kT$0&N=b9|Xv06s zg)1!+d}vO5nTHl*)T{~DbBP*lGJM`j8m9E`d?h_V&rDbAb>iH2V>P6aYEs@|6ZQki z-!w{C!*POxvaw)jTQ<}2CusUc#9jB9d&;%dDd=aS zAt0*Ivye8hD>wM_6H8M`UY%Hwvb+=Bi`1Y8Vw6La)+`idLSI2`7EtC|b+&^cue2nW z<~&*?w=)~}ZC3|nl>o%^k&XA@e!BUc;6d8^M2yRKcfxVJmy8wFn4b{A`m~u)Sr_{C zj&jH4_pu)4dSfeam3wq@0bSQF>XiQ5JTX_p&Ifxb?s56mj~;Vi#>^nY!mr~y2<(s= z%{Ick>D}FOy%QU^$F~hSAFwFxl(-qNRo?>0hew`LfMrufCEu3doBZ?BP^Dq>@L5d7 zz}`hZ$Vb9t&BlAP!ierQ1ZJLR+i-(q^{mv5cE6n6$41XMGT9a_@Hj+I;Ho%79(^%i zL{*ZHUf5|Bv%3G3O8KN@8ZvR)P_)p>)kK0k+r2H_wp!+6^UA0HaAz)#w=v~0`pMpe z4YWF(+w2pRyNo`<>>nUrcGOnIK~_no{a1Hb+_ul86_4rVZ2N(M>sjIWTZeCwg(3CB z?SB%YObS#W0{iAMeTgFTC69h53IfDhW$v9Zsq;CU(GCEr8)k>torZxQ@w?U*${#;eH&O16OulZz!X2M@@?(*hWOu%hL46%- zoe+!) z^k#1^gE`7_unrhBtfFb1f|0p7i7qAo(eQj~30uDkwLsBzCQPG>P@GL9Y^+^hWUzNA5MrpMAB8U* zGEQt89+ijncSmg}B=9me~1YKHGB1X8UVCZFOa0zJ`+38bqEu+q_oz=B0Mx zb)(N}wTo{XK~g%HqyuR6;#;XrU+&5t4)lutXw6_e1x^CVX!Ik@8LDSjQ_kR(Y_@0bobG_%0w z`%t)>zdvTO;oIadv7h>?sNGgzUa3u@zw{elu$;e)Dn6yIA^0}e+HRlOv!@BXU>BH; zPguUp?)gh}_B{t^cZ3%Nq5l={&#GcJG>I?$bdJ%+zZ2sh^V**87G0~s3JJU}AIT-}K5p6J!nr~fcN1}VPs*M*jJ z+mg!YXhc-z9mSQZu0pqA?B`0OP>6I_p{#DDObp`VrSXPG6FMgi-2Oga%=Xu*)A+ZN zq%|J9jxT}|*B#${SSM^P2CCO*P!yf!D@i{l5Pu$dT5-ze=!Lk-?gcxh%ZHMG@iCsB zh@?V_a6Xx#j2u3gD5A^NQSH{F)GLb$h}ujG9gqkUZV7pJg`BZH1&XoQ3WK4;_UV?uu)s@me2_Zu$$J96W`heUH2Qe9{Vdd!e31*TlgY!{Oq)f88X;GJwm-5!!{HU zU{<5afkE3}lAb|8J;LbjqbKvHZ0`LfO&k|5vR>SqT#8!@RWucC3wiNgK`CR4`H18eP*E&%W#Cu|o0_$`J4JQZ!a_39X3T)`>ILFlR{F`vR zQQRn{JDfgB@8uk!2igX0_**lf<)M=IC^6xXIDXhe!eJSlgwBLQDL=`{^*0ZXk!`ua zGZ#|cX?OUlP6lHd~I+%MNYJLiF_e`*A*9ySj>gcGW+R?K*s!;=Ruv^s|HC zCSwMwPFs<&DN8sga3b#0yYa5wW~f@HZ9dXT-SEae-hVN>`Qz^^ySNfvn~<60n(ZDe zM+*I@Jng%!La=y0JB*kuvB`-c5wtRIQ03~CwL1LIrxq6r4LdKLsHS++eR@wNJ`=;7 zUhO>}jcg5!*FHVdJ0%s*FR(waBYu%?Gk%oHj<-aBMfV}yLyfp`3;jg#F}QsVS0buTGfw_xs;#L0mqp{$ zaNZtfdG)ITTP$%M7dAlW4-Xy1&(5rdc+w#Ojs*8^X#aL8|8f2wo#*+#7NdLr)EIht zT>3|u%IHg3`u!RHs}YWo z!IWp!!;Px&O|S^2cHiIy-%k zGUv~e$%>kXpmxm+=Tz6Sf5Nn+^cp}Vwx{>{;MGf`Y|uf~SmhfK%Ud4dYy0~mn3a`! zXIh4fSEF^%M&-ixK@X=xz5Jh;325rswo_mCL&~7V7|g{i0)>HrR50FJNVHPc4+v=B zb@}{~mpEE&W@a5&t{JIpYJdNJEOEq5x=(f^Tg*-&WpAH`tjk_lS(x7r-J8%r#2Zr^ zW}VjpkTCayy79_w|*D=K4ID*y}$<6 zx+j>5d*K0f*)Z`r$9el&*H-*3A7F3@7fX1p0ogqe~+2^msS`Bs)Y@gS(NTEB;6E}H#4*GesPXRbj@omFIF)pj7`MIapw;a z%Vz6XWtx35bqc;wclh~LP{=w(c_?2%A~7?*$m%h*s=G%>fx_7K?KqO!hm2#;od*jkEQV`v zXedA3qfrOgefrZmVS{5*dZn#7_ok^+ObEBZIjca6PWishSOf8XAHEyC zN9%*4CW&1`WC`u29acCoh^#yk9ueU(mTyfQhxsIxY`-{vQ%(c<+@8FqsNS7&HZQNb zx|7JmBfRN`2x;R~cl4|H;nj%AFtfI{&41l>D>6z;q0>@0>9Kp()MFQyRHyNI5v%Bg z+w2|vW0rk&I_Y(nP)noXZ9i@SljvVz73Su4k@U<>ZGDEkhf7C_Fi(gwj3r4n0=2)YQiYd%|*UF^5uB=ZxVE2dZFKQ`f zm$&3q52E`bl^6Epvsy1tXZKB`$f1)AV!ke9C*{Ke&%I^WAg*r&a6K+=XmnJd z6gNDVQdXut8PMj7@xdorRt3Cu?9Iq=&`Q23B2r86i#Li>MCV<*&IbYhzAX3tegiML z%qscIC1u6NuCAqz8-68;x?d7amMb@vy?hQWwQFeS?3^+cvhGftYOyjgks2fah!8)k zD&1t0$dU+mbsa2AmB0+$LQW|tZhvcw%ir8QgZ2#%_dC2vmhO0a{(Q*rP`2lKsUmE7 zDM~Dx1=+hb7or@Z5CUu<2h;=7_EcY*lq%EViosrOM{ElOJ|SAmEI5|Rn=Yak!NgzM zA6JmF`bR-xh)MWYxwuBtlUju<_kAPm#hHmCe2LBc?Q@V<-WKM^0cXpt#pNy*Kj>SJ z*1>6BTBaS=3@!~tpl^FTf z0$h5Xv)RYT)E$51H{#(ABb8#~|3_JZQ&y1ntF{YG?o6jo|3Zbg?u--tY`lq#Rikd0 z`Lt3=BrOc{D|}^p4jrl*H@iQ}wDPj=kJxYT*LZY1eEkM{E+I<0l9edqP#7tIC4cLH zOAp&Q%`g*RpsH+Dh*H+d8CDYW9oCHF*DWzs-?^Q5nWF$RqlzD8uGo1bWFKe2bz>!w z8EGCklb)CuqW#vuk8H`IbHZ@JK!7AfT?UqqQ^M7wyb*1vjVI(m{aB@~xQ=}5cVSzO zi}>huR7s&J0qR*9rxCsAl?CB%v_5K`rEvF@&5M+FTLU$<0)E}E_z|F62d%Je?}y9y z0A|u}<3F`V;x_Xb7#L)}crh>Sx`t%PzGUA{Rh1Xm62J|Kma3_*CpR8${IDfbHm(yV zS|MFsYZhxz! z>L`rGzqzVf<8Ah=!a5|(iBj==vb(Qu3q5)DVt%h(*80O9L5|fA2p8VR>7^m9-SKr;(LxJ<>e_*K7 ztvQs?eTEj&uzX2HMZXcS_D39&Ubb!#<*Ba1o>>WdJca{a0)Dy7S=&pKn*-o ztHcL_CS=~EEOC6E|C&`WP2C~vQ>J+a^wy}T+-rF?&iyLXc^T~45h)tALY|q22aQ$O zkTEeaaUFU82s6Ko-=Ffw&KNOH?J#l48OJK`ykDas$%|shz4Xn^EguSTdWea(HHbfr z^dU0=r&}J+;jWTYh62i>+HrX*`@np9cb=$3_?Hl^+n(=#`70ckrDeOz0G|_if?~v_ z3@s}AdRB2GS=puQXVig*Ft4R%%A{|4sj64#=5@$bgEb!SA$B}aDWAK7`$KX6YgC$q zU6qQ;#NnH?Y!JQhrKDc_T~bXDOyopBHsGHxTme)@KDaJQKGfMf~mon~N9eID&#bs9y{XiFk}&0LqlJjb3SM)Ns;_a`Q`_o=N4MG* zMgg^eFf>tiNL!y?ijMYJp6ycSW8|p-#^FV5=xzu=oIUFkc%o!Ug0dY%X>>3HW{aPKyXqVf(Eq z-2LmxArr0C@y;{WoMFx%LcYkYQSMHQar%&xYY|`v5 z9U60d+x8=YH!M6{(C@+P4u?XQuII96800CH-`hT^?r+?ETM|1&e*_M9O>lqnQ54^Z zHjr?R+x*Vh_^|)b>Y37r<(1?f{DLO{7S&?w?Vm_B>eaL{1t>iP4`Y|WL{Q{G{j8p` z4HeR8EefhyTEm*=IKuw^J0sDum-V-L_arNDJC)7EB4h~d4c4&IQ7Xo0sS`KU-;e4f zlo2X1L42_sIV)&uRKv(s_?^*w@Lw}6*K|?LlO)#O^z%bUouSXTj+vmS-%DN>^Pl?Vt@f{YQN<0y&QfO+yqCiv zO_LR>z-3#vlj7#r1VZH!v$6`eYii!XnouYRof8)%S0s#Tn*xIiNRFl@*_4$1Qht(Y zXlz|L$;16^yX)d{OEWv8YVMGEzS^2Pf$Jf!A7l0h9@qaBqsz?)fjhgMS*$(z!duXX zWp(O$a!p#Y#Eq zR@VaF(S@+Pde){ssK8AcQQr&Ln8wC;uXd_ zU$d9rw!?(#3knK>Lbg9-rR`SD3knJ}iymK`sM7IX_&T6LVZe`$qUaI0SqakxlLG_d zCdQ^E)q^FwyLX~>)~UF9kmo8WIPh!6*9()Osr|qh3atPc?ien_K8ei6{ic1O0yNdh z6t}pcCtcEze?K!blU~a*|3IO=qho(a3<7s^8~T{53Wvkv0NnAw#*glv^kNY8mc4^m z(EuWSw~(Mit)-Nkd2W@sL~RHqMzr2KsFZG=|7ZX;8FU|C)=Jil6UFXcqwamY5j^Ez z++Yp1wrpOIU}@~~k}n#7oe2TMK?TMwRaaVi<(Je-;w?#C7zUJ880hM7?9(>yK5@O~ z$=Y7+%W&SX3IFL3GNaG=)>8}&Mp{}?=eR_ZaF5M^Vg`cJ6dtW602(AFn%q?O$o2B- z0407*)lM=&;y~~Q5V=v^C2(@OvS+Sg=j;Cd>l!B0-#{3)5ica-9G5AOur{~065`{_ zzkSo^QZVN&8bqzGmOUm+nCQRLEj2MJ)HUrGsVqUG&2Vq?GC-{$hhX$w0$a^`h6qKm*FW zV}J${3YyYFngIe@VzOC7r@eI@IOXS9S-Kwi2XuV4iUyQCl~u1iGUaX+qMEnKZ|{oJ z;v5>9Sl&`fpUgSoT|{n5`dOu^*s^9Kds$Z}EhVp1)T$73kuhj?iOt?+U4QCtH;4S_ z;aB16iksUE@ah_&z@bxGNLWxIjs7}SBC5gtPt`bQGX}y(}+3CH1!M#78&pG>Z&fa^SwZ7lA z)?SOW_3~Kf|Gu>esOzFr|IB^EKbEFbdmLzOdoB4~6P%*G}_TRWJRoBLBH zIMvKAf0wbZuLzFZZJ+F%0i=4GXc=Ai`1hqTI%05r!RmfW)PQ~(|D~u1PBK84(vcw& zN#60ejPq2TpAeuBK8oa+?2L3K)!=7R<$%asx}>l;42NS+$0+{bK%j`s#U+~)PF7R( zoXAl%tYtzGLrIpzetskE!IdhV4*-4K3~3O9x6-Ub*_Go~4Y;^(7)_w5#grgtS}F+_ zJO;`2xx z9+j%5Yen#RZeZ|-Oy)tM6q#tG=)@#9UYmF=vFSWIO=xMk@k4MB1I{{lP#;`P6Phpo zb^%P9+t;gtbn&T*SHl8(@`4IMdk1HZjE)Kg0u$||08=yzrdvdTO;yn_`fkV-&>?xy z@D`s=QPndGJPDc|GcNj~Rpx19%2p7iunsz4;aCl&D{I7V=D z2Ma9O@0o_e^0T{J<&c;kGaNqZ3fF@;NquD2SkS7pzW%tnu5NkTrmYv4HEyCn+z?-o zZ9_iOw&SZn`W*`udrZ^SOnyk%vg}7yh;2Y{x7G*;c62YKs2|e-Ql`rQxfTvv$Swz$ zs_9zS^rotW;Bax{6KFfP5L83+Y<&?t?cslR{Mnw}$6|Ny$BBIJ?sbe_yL9QH|ENjN zfqW(nsrk63{`|lVLjL4)>>GW`Nx~tLqaar_I+ZzfLvoX>!8T1O*uCsQF?N5Ai(2>e4WBcsU z?0vtutM$@TyNess*-Z~#{SZwg5_7BSFPMz`I>}vKTvE?=o<#))vZkjm53Ft^CF!MK z3lB$mdpCeYNXGB(S5<8YW!n>JuQ0A}Hze0BZBhtbU0uM7fa1KMhQEJH?&8$KC&<^{e)yPG++tavGRNufza({?t8Ol@er$t&P0^7?(A|O-x);G<$8QW>+Nze#a^6A13SlB8?BfsqLW?0QGox=&(AYi*IrQzxxk7|4n+esdAyq{1i9eRpeZ<~ zsi_(a1ml4SsjC}hife!)6s+Up_V#}yt3lMlCdhI$uo$PViJ44hgz`>vvx5+2eqVRr z?9f*G#$WgCW3bsL*K&01OjDjK-KeNx!8)q+(ERvXiJH#(o2AVc5QyL{84^!1Gcx*o zIi_|KuJrQDu)gR0nmEUKQUI$|XASA)vN$UWwlGRl; ziIh477S7totE5uYuAkglg4iEL?32Khs45-4nE|jxTO--@G%mD7U!P|ltGEK%v|rf4 zjp2tj!Jtt8srm-4$>4*+!t%NgM`>BvJ&T@PVEnQ&2)DYW)9W{C|2b8!4(7u9b{8m4 z18~cuDsL!$R-}OO5&;+PpUd3{ODMUIbXM}lnqC+3^6RaeE8}#E0TddsSayS!on7_e z+1Gb+?6XelBQl}VP4)!Fj$oLI4s*Ku{Tk$fa7Hil-u@^K_hR~hxw97rkD-t59UU0~ zZ?oyZm}qbsISVSFr2oz0Y}1_5Hi+&Vf$r&8iP~Nob|kJaB?su@71#qcJ<}oJ@fkmo zbtf^0Bjat2hidAo8&wM{P9eELjB&hH7FrZG#l^6L*Bq5P7b=Yq-cRv~TFxo@MG-O( znN;l?AYkE(_PFfy{{F*j-0fEY<`}#3oDa+jKst4fQ(vP*<`1Otyx^O^XFi2yq%4O!41Wo2 zyyI{)Kw~5Q`^iPc`I+MP;F$D@${7HYU6dAftiXjV?-nZU0f0U*yVwF~D&He6Bu#p{ zwHuc%CZXtV#|3b%bu?`N&L?GwlxfqAUWIV832kdNLEIn7I?`Y}hC9E3I(7Fq= z1q)*BmaU!>9k=BYi?>5>(`|i;K4qrZcBj%zM`Nh9vuax3MqQoLXv}=(Ay=K^a`4w~ z2iSO>{Spf5w|{?4T)ww4F7Q$Bl~efV@8a^zBfZW%nI*O?&yXmrwDxwf`I3l6|5CeThf!)cXIzUH>D~WNd$% YyKrO%{WZ}WtngO|2e)%i&R+cWPsQnV+yDRo literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-and-messages-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-and-messages-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c16ff4480adfec22fa4d9dafd4330316796f0cc8 GIT binary patch literal 56988 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-bubble-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-bubble-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b0504ec98c01b699724e97418d6a6455797731 GIT binary patch literal 50979 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 NkL6Y6iXIvU{Wp_flAZtn literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-emote-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-emote-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4972d9f3cde6c14a4382030779b7a5f6796637 GIT binary patch literal 58514 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

    i0x4%upWS;-L^KksWp*iHaJU9Ct}KTG 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-redaction-placeholder-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/expanded-gels-redaction-placeholder-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..791a1f93a202055934509810c61000425e949a0d GIT binary patch literal 55716 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

    d#NnAa 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

    E^eE*&tC??+w zx;ZNH?K0Uw%hCvFu$!7eOe&@T`kX5jVSDrD&EEx{UROFbHn~NWp$n0Qr-$qPQM4yp z@S1eM-|!drUmvT$dG+cQiyn!XkB^9;%XVg7>Ft1FF;j_~px4j}=o85BydD<{wIj)3Ec9dJ^3`oX=DSJU^iY%tO~~Vo9F{-Qq@pG z7+Z4xLy|`okUz-skJ47N{KRom}SW^IMIpYzRo0dVNk}d2BL){0;+hx|()r#|S8OS;Bd8hOey$9?c&a{d$mE zcj24tIxQK-OJ*N zDBR4>@nyxTPguWsuEx=Td@5HQxaKjJ%pC#pJy2#z8+!>l?(MnTjSB$>{2UzqrzeE9 z6%If9c($@uG<76e{FqZP$i*hJkO2oI`^OF^?+5rbYml%B8lJ#oGYBHVhi6c+>JlY1W?o*rxiwPz)aU!9#w z>iPqKBeD@{wcvMoeaU9EfC327wQh`AZ8Q-uD0m!gXbA`Wu2YdxFVbzFY8&`DI6>kU zE+Ye4nAo|a!K3Te2iJCYX$Y&GbQwbukO}1pyt3YM6Q2Mys>yUOKYd|OLaJGEKR-W= zzxa^?jG9-Y;~IFB5Xyq_zCuo=|1=qFQiogwhEG{n6NS^F4YAV)^ge>7i7#qfo?J9q zJgDO2xZ;zls=DKNMhQb&m0sOtj1wBBk0=9vdxXz1`^chq6=9CK`6Vs10^B zpmATaduwj}=F)KTLqbBoZd1VKYwVC$19NYSsgyUIio#M-C;_ubM=vcoUITKGnQ6R- zcZZbM1;1G;9-CSK`UfRx@jNFG)(eP!+S-!R(rlQRn9m3Y7yIOSY$qi;!)3y#?bZZt z+&E`zud7XFcrnF-C-U*R?|5Z<9$t!xgliO|X@+%Y+j7DMQ z3mMZCKkJ^-6>pp^fpKyL=1tAoq5b9ve_X^+4P+uqX7Z^u55=s2tKsy?Qddv6$w2)4 zh)6SY3`3~MH=hWS2b5j6hz9c2wo!=QkL+z$vB{tS0EBi7rh;y?DG@nA^heN;&TR=ku$G6E~T9a*)iw3MPFYoh8uP+@p zH#jmK@8E?<%e^g`yC^MNx~mryA5Y@2>!4;59s36Gf`FhoD8uq(*l$?RR3;+fuByIs zWhM+1yf(1QMpu-`c#)P4BFXgHdie&*#z?9xgm)Eb;g~k+8gOgY-0?2n8<1f*B$)Yn zP=E>oU5Bly_-m{bKsT9ogRpa7PuD{t4YDAI^C-?#qrAtFk8jGzlbIV0eIV9ZGuFxc zE<2P||4Z=dsa@0FPfZhLc?FdMxoO zotv9nLPD7^nC(GtFa^+j+m!X||CygBV z;#gP#s>~)X>w8|(Jp7fZ(in5y{L(-}m zE$2Qe&pAVxQu*teY+U%at+mu&uPV#qIE|y&5)zWed6{iCws5U%Y~D&01iZHuDqL^i zJYC-3T(=4A4};Wjuj=poBA2__=T98E)u*J{OTc?+zU_2tL*q-Rq!IeY6|y>lM6;?EmMvy) z%a^2Y%F@T|X;6;9Nd_QZxj*$QA?o#|4X0-~TrH&;hGt^6H98?7Ie|~_Ke}@MbS$>~F z>9R5H-l^(3H_D=PVkmgaABI~k5MQ||>_CC$FK3nVO!qmB^H z4WgOhF!X7y+J`%O)*?rmlrNtA6(T-+XQdPGv$i(3=U-k_#Kg^$GE_$Ujf%|G%uH>5 z&SJD*$NQc&FTQwg#KeZGH`3&O?LS4}!;)IF{FP3HFv(m~miDi*#UxkGe3U(dy|EMf zMdS)&-HVfT0$RQl)XA#z3!k_92fB5?W@g2-GyL*|Ww1njk; G|Nj71Hv518 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/hidden-event-line-zero-padding-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/hidden-event-line-zero-padding-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..8c93664911cdf8d4f302935dfb5bfbaf91798959 GIT binary patch literal 49797 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/highlighted-search-results-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/highlighted-search-results-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ff75b3473fea1491cdff429a86727b38c664fd00 GIT binary patch literal 19786 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�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 Klt{h*^gjTxF4Xq` literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-irc-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-irc-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c7ecc5b86f1bb1ea6a394135a7f4682c0e35bc GIT binary patch literal 93542 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ηvi}^W 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 Cye+E$ literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-modern-layout-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/long-strings-with-reply-modern-layout-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f51b8eb3324378185f1f6d095857de81b1cc3a2c GIT binary patch literal 102519 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%0DsZhCTH~$;|2xP0M3i0^LzXIQXrZ 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

    lZ7qj1{2XE>>X^p~khReQ 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/search-bar-on-timeline-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/search-bar-on-timeline-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..64d44a9778bffb2ef84d731251719372b1f584e8 GIT binary patch literal 5125 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 C4%}1# literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/search-results-with-TextualEvent-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/search-results-with-TextualEvent-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4c553cfdafbe7d28962dd9b0332f878b7f1b39fb GIT binary patch literal 23412 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/timeline/timeline.spec.ts/url-preview-linux.png b/playwright/snapshots/timeline/timeline.spec.ts/url-preview-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..49f2c0bad8328db2c695525396acc6cf008b8579 GIT binary patch literal 10638 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 Z+cX09`R7!)$OD#W3hz~9Dy2+5|1Z=Q$w>eJ literal 0 HcmV?d00001 From 6669cb70e48188d3b9b512d936b812f45df4845a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:10:01 +0000 Subject: [PATCH 14/48] Update dependency @vector-im/compound-web to v0.9.4 (#11891) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 2 +- src/PosthogTrackers.ts | 2 +- .../views/right_panel/RoomSummaryCard.tsx | 26 +-- src/utils/exportUtils/exportCSS.ts | 2 +- .../right_panel/RoomSummaryCard-test.tsx | 24 +++ .../RoomSummaryCard-test.tsx.snap | 77 ++++---- .../views/rooms/MemberList-test.tsx | 2 +- .../views/rooms/RoomHeader-test.tsx | 38 ++-- .../VideoRoomChatButton-test.tsx.snap | 8 +- .../__snapshots__/RoomHeader-test.tsx.snap | 16 +- yarn.lock | 177 +++++++++++++++++- 11 files changed, 288 insertions(+), 86 deletions(-) diff --git a/package.json b/package.json index 63d6e09a5ea..791d0610ee6 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "@sentry/browser": "^7.0.0", "@testing-library/react-hooks": "^8.0.1", "@vector-im/compound-design-tokens": "^0.1.0", - "@vector-im/compound-web": "0.8.1", + "@vector-im/compound-web": "0.9.4", "@zxcvbn-ts/core": "^3.0.4", "@zxcvbn-ts/language-common": "^3.0.4", "@zxcvbn-ts/language-en": "^3.0.2", diff --git a/src/PosthogTrackers.ts b/src/PosthogTrackers.ts index 14bd8426de6..18b6edc064a 100644 --- a/src/PosthogTrackers.ts +++ b/src/PosthogTrackers.ts @@ -91,7 +91,7 @@ export default class PosthogTrackers { this.trackPage(); } - public static trackInteraction(name: InteractionName, ev?: SyntheticEvent, index?: number): void { + public static trackInteraction(name: InteractionName, ev?: SyntheticEvent | Event, index?: number): void { let interactionType: InteractionEvent["interactionType"]; if (ev?.type === "click") { interactionType = "Pointer"; diff --git a/src/components/views/right_panel/RoomSummaryCard.tsx b/src/components/views/right_panel/RoomSummaryCard.tsx index d6dd212e7cc..4a6ea31b488 100644 --- a/src/components/views/right_panel/RoomSummaryCard.tsx +++ b/src/components/views/right_panel/RoomSummaryCard.tsx @@ -39,7 +39,7 @@ import { useIsEncrypted } from "../../../hooks/useIsEncrypted"; import BaseCard, { Group } from "./BaseCard"; import { _t } from "../../../languageHandler"; import RoomAvatar from "../avatars/RoomAvatar"; -import AccessibleButton, { ButtonEvent } from "../elements/AccessibleButton"; +import AccessibleButton from "../elements/AccessibleButton"; import defaultDispatcher from "../../../dispatcher/dispatcher"; import { RightPanelPhases } from "../../../stores/right-panel/RightPanelStorePhases"; import Modal from "../../../Modal"; @@ -268,7 +268,7 @@ const onRoomPinsClick = (): void => { RightPanelStore.instance.pushCard({ phase: RightPanelPhases.PinnedMessages }, true); }; -const onRoomSettingsClick = (ev: ButtonEvent): void => { +const onRoomSettingsClick = (ev: Event): void => { defaultDispatcher.dispatch({ action: "open_room_settings" }); PosthogTrackers.trackInteraction("WebRightPanelRoomInfoSettingsButton", ev); }; @@ -303,7 +303,7 @@ const RoomSummaryCard: React.FC = ({ room, permalinkCreator, onClose, on }); }; - const onRoomMembersClick = (ev: ButtonEvent): void => { + const onRoomMembersClick = (ev: Event): void => { RightPanelStore.instance.pushCard({ phase: RightPanelPhases.RoomMemberList }, true); PosthogTrackers.trackInteraction("WebRightPanelRoomInfoPeopleButton", ev); }; @@ -433,15 +433,17 @@ const RoomSummaryCard: React.FC = ({ room, permalinkCreator, onClose, on label={_t("room|context_menu|favourite")} checked={isFavorite} onChange={() => tagRoom(room, DefaultTagID.Favourite)} + // XXX: https://github.com/element-hq/compound/issues/288 + onSelect={() => {}} /> inviteToRoom(room)} + onSelect={() => inviteToRoom(room)} /> - - + + = ({ room, permalinkCreator, onClose, on // and is a short term solution until legacy room header is removed Icon={UserProfileSolidIcon} label={_t("common|people")} - onClick={onRoomMembersClick} + onSelect={onRoomMembersClick} /> {!isVideoRoom && ( <> - + {pinningEnabled && ( {pinCount} )} - + )} - + {SettingsStore.getValue(UIFeature.Widgets) && !isVideoRoom && diff --git a/src/utils/exportUtils/exportCSS.ts b/src/utils/exportUtils/exportCSS.ts index 267443504a7..bd7ddac01ba 100644 --- a/src/utils/exportUtils/exportCSS.ts +++ b/src/utils/exportUtils/exportCSS.ts @@ -33,7 +33,7 @@ function mutateCssText(css: string): string { } function isLightTheme(sheet: CSSStyleSheet): boolean { - return (sheet.ownerNode).dataset.mxTheme?.toLowerCase() === "light"; + return (sheet.ownerNode)?.dataset.mxTheme?.toLowerCase() === "light"; } async function getRulesFromCssFile(path: string): Promise { diff --git a/test/components/views/right_panel/RoomSummaryCard-test.tsx b/test/components/views/right_panel/RoomSummaryCard-test.tsx index e6d43ef7ee3..986b3de2cfc 100644 --- a/test/components/views/right_panel/RoomSummaryCard-test.tsx +++ b/test/components/views/right_panel/RoomSummaryCard-test.tsx @@ -34,6 +34,10 @@ import { PollHistoryDialog } from "../../../../src/components/views/dialogs/Poll import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks"; import { _t } from "../../../../src/languageHandler"; import SettingsStore from "../../../../src/settings/SettingsStore"; +import { tagRoom } from "../../../../src/utils/room/tagRoom"; +import { DefaultTagID } from "../../../../src/stores/room-list/models"; + +jest.mock("../../../../src/utils/room/tagRoom"); describe("", () => { const userId = "@alice:domain.org"; @@ -63,6 +67,9 @@ describe("", () => { isRoomEncrypted: jest.fn(), getOrCreateFilter: jest.fn().mockResolvedValue({ filterId: 1 }), getRoom: jest.fn(), + isGuest: jest.fn().mockReturnValue(false), + deleteRoomTag: jest.fn().mockResolvedValue({}), + setRoomTag: jest.fn().mockResolvedValue({}), }); room = new Room(roomId, mockClient, userId); const roomCreateEvent = new MatrixEvent({ @@ -76,6 +83,7 @@ describe("", () => { state_key: "", }); room.currentState.setStateEvents([roomCreateEvent]); + room.updateMyMembership("join"); jest.spyOn(Modal, "createDialog"); jest.spyOn(RightPanelStore.instance, "pushCard"); @@ -133,6 +141,22 @@ describe("", () => { expect(Modal.createDialog).toHaveBeenCalledWith(ShareDialog, { target: room }); }); + it("opens invite dialog on button click", () => { + const { getByText } = getComponent(); + + fireEvent.click(getByText(_t("action|invite"))); + + expect(defaultDispatcher.dispatch).toHaveBeenCalledWith({ action: "view_invite", roomId: room.roomId }); + }); + + it("fires favourite dispatch on button click", () => { + const { getByText } = getComponent(); + + fireEvent.click(getByText(_t("room|context_menu|favourite"))); + + expect(tagRoom).toHaveBeenCalledWith(room, DefaultTagID.Favourite); + }); + it("opens room settings on button click", () => { const { getByText } = getComponent(); diff --git a/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap b/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap index 399bdcf7690..ac46a83709e 100644 --- a/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap +++ b/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap @@ -71,24 +71,24 @@ exports[` renders the room summary 1`] = `

    ); const warningTooltip = ( - - + ); // Due to i18n limitations, we can't dedupe the code for variables in these two messages. diff --git a/src/components/views/elements/InfoTooltip.tsx b/src/components/views/elements/InfoTooltip.tsx index 9272a907043..1f6247ccf33 100644 --- a/src/components/views/elements/InfoTooltip.tsx +++ b/src/components/views/elements/InfoTooltip.tsx @@ -17,47 +17,38 @@ limitations under the License. import React, { ReactNode } from "react"; import classNames from "classnames"; +import { Tooltip } from "@vector-im/compound-web"; -import { Alignment } from "./Tooltip"; import { _t } from "../../../languageHandler"; -import TooltipTarget from "./TooltipTarget"; export enum InfoTooltipKind { Info = "info", Warning = "warning", } -interface ITooltipProps { - tooltip?: React.ReactNode; +interface TooltipProps { + tooltip?: string; className?: string; - tooltipClassName?: string; kind?: InfoTooltipKind; children?: ReactNode; + tabIndex?: number; } -export default class InfoTooltip extends React.PureComponent { - public constructor(props: ITooltipProps) { - super(props); - } - +export default class InfoTooltip extends React.PureComponent { public render(): React.ReactNode { - const { tooltip, children, tooltipClassName, className, kind } = this.props; + const { tooltip, children, className, kind } = this.props; const title = _t("info_tooltip_title"); const iconClassName = kind !== InfoTooltipKind.Warning ? "mx_InfoTooltip_icon_info" : "mx_InfoTooltip_icon_warning"; // Tooltip are forced on the right for a more natural feel to them on info icons return ( - - - {children} - + +
    + + {children} +
    +
    ); } } diff --git a/src/components/views/elements/ServerPicker.tsx b/src/components/views/elements/ServerPicker.tsx index e3b8fedace7..c6f505e8045 100644 --- a/src/components/views/elements/ServerPicker.tsx +++ b/src/components/views/elements/ServerPicker.tsx @@ -77,7 +77,7 @@ const ServerPicker: React.FC = ({ title, dialogTitle, serverConfig, onSe let serverName: React.ReactNode = serverConfig.isNameResolvable ? serverConfig.hsName : serverConfig.hsUrl; if (serverConfig.hsNameIsDifferent) { serverName = ( -
  • diff --git a/test/components/views/avatars/DecoratedRoomAvatar-test.tsx b/test/components/views/avatars/DecoratedRoomAvatar-test.tsx new file mode 100644 index 00000000000..537e2983c65 --- /dev/null +++ b/test/components/views/avatars/DecoratedRoomAvatar-test.tsx @@ -0,0 +1,66 @@ +/* +Copyright 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import { render, waitFor } from "@testing-library/react"; +import { mocked } from "jest-mock"; +import { JoinRule, MatrixClient, PendingEventOrdering, Room } from "matrix-js-sdk/src/matrix"; +import React from "react"; +import userEvent from "@testing-library/user-event"; + +import { MatrixClientPeg } from "../../../../src/MatrixClientPeg"; +import { stubClient } from "../../../test-utils"; +import DecoratedRoomAvatar from "../../../../src/components/views/avatars/DecoratedRoomAvatar"; +import DMRoomMap from "../../../../src/utils/DMRoomMap"; + +describe("DecoratedRoomAvatar", () => { + const ROOM_ID = "roomId"; + + let mockClient: MatrixClient; + let room: Room; + + beforeEach(() => { + stubClient(); + mockClient = mocked(MatrixClientPeg.safeGet()); + + room = new Room(ROOM_ID, mockClient, mockClient.getUserId() ?? "", { + pendingEventOrdering: PendingEventOrdering.Detached, + }); + + const dmRoomMap = { + getUserIdForRoomId: jest.fn(), + } as unknown as DMRoomMap; + jest.spyOn(DMRoomMap, "shared").mockReturnValue(dmRoomMap); + }); + + it("shows an avatar with globe icon and tooltip for public room", async () => { + room.getJoinRule = jest.fn().mockReturnValue(JoinRule.Public); + const { container, asFragment } = render(); + + const globe = container.querySelector(".mx_DecoratedRoomAvatar_icon_globe")!; + expect(globe).toBeVisible(); + await userEvent.hover(globe!); + + // wait for the tooltip to open + const tooltip = await waitFor(() => { + const tooltip = document.getElementById(globe.getAttribute("aria-describedby")!); + expect(tooltip).toBeVisible(); + return tooltip; + }); + expect(tooltip).toHaveTextContent("This room is public"); + + expect(asFragment()).toMatchSnapshot(); + }); +}); diff --git a/test/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap b/test/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap new file mode 100644 index 00000000000..23a57ae6a6f --- /dev/null +++ b/test/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap @@ -0,0 +1,26 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`DecoratedRoomAvatar shows an avatar with globe icon and tooltip for public room 1`] = ` + +
    + + r + +
    +
    + +`; diff --git a/test/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap b/test/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap index ded9ed1347c..823efd73b64 100644 --- a/test/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap +++ b/test/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap @@ -55,13 +55,13 @@ exports[` should render dialog 1`] = `
    - +
    { + it("should show tooltip on hover", async () => { + const { getByText, asFragment } = render(Trigger text); + + const trigger = getByText("Trigger text"); + expect(trigger).toBeVisible(); + await userEvent.hover(trigger!); + + // wait for the tooltip to open + const tooltip = await waitFor(() => { + const tooltip = document.getElementById(trigger.getAttribute("aria-describedby")!); + expect(tooltip).toBeVisible(); + return tooltip; + }); + expect(tooltip).toHaveTextContent("Tooltip text"); + + expect(asFragment()).toMatchSnapshot(); + }); +}); diff --git a/test/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap b/test/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap new file mode 100644 index 00000000000..075f5721b61 --- /dev/null +++ b/test/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap @@ -0,0 +1,18 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`InfoTooltip should show tooltip on hover 1`] = ` + +
    + + Trigger text +
    +
    +`; From bf61d93bf44520d25bc0ee437c339f2374ffe221 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 20 Dec 2023 10:58:24 +0000 Subject: [PATCH 37/48] Prepare for switching AccessibleButton and derivatives to forwardRef (#12072) * Improve AccessibleButton props & docs Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve AccessibleTooltipButton props docs Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Simplify roving tab index hook usage Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Ditch RefObject type casts Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Convert AccessibleTooltipButton to a Functional Component Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/InteractiveAuth.tsx | 7 +- src/components/structures/SpaceRoomView.tsx | 4 +- .../auth/InteractiveAuthEntryComponents.tsx | 11 +- .../dialogs/AddExistingToSpaceDialog.tsx | 4 +- .../views/dialogs/DeactivateAccountDialog.tsx | 8 +- .../views/dialogs/InteractiveAuthDialog.tsx | 6 +- .../views/dialogs/ModalWidgetDialog.tsx | 4 +- .../views/elements/AccessibleButton.tsx | 43 +++--- .../elements/AccessibleTooltipButton.tsx | 132 ++++++++++-------- src/components/views/messages/CallEvent.tsx | 9 +- .../views/rooms/ReadReceiptGroup.tsx | 5 +- .../views/rooms/ReadReceiptMarker.tsx | 6 +- .../views/settings/ChangePassword.tsx | 4 +- 13 files changed, 140 insertions(+), 103 deletions(-) diff --git a/src/components/structures/InteractiveAuth.tsx b/src/components/structures/InteractiveAuth.tsx index d35d403e5f0..2547af77a1d 100644 --- a/src/components/structures/InteractiveAuth.tsx +++ b/src/components/structures/InteractiveAuth.tsx @@ -26,7 +26,10 @@ import { import { MatrixClient } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; -import getEntryComponentForLoginType, { IStageComponent } from "../views/auth/InteractiveAuthEntryComponents"; +import getEntryComponentForLoginType, { + ContinueKind, + IStageComponent, +} from "../views/auth/InteractiveAuthEntryComponents"; import Spinner from "../views/elements/Spinner"; export const ERROR_USER_CANCELLED = new Error("User cancelled auth session"); @@ -59,7 +62,7 @@ export interface InteractiveAuthProps { continueIsManaged?: boolean; // continueText and continueKind are passed straight through to the AuthEntryComponent. continueText?: string; - continueKind?: string; + continueKind?: ContinueKind; // callback makeRequest(auth: IAuthDict | null): Promise; // callback called when the auth process has finished, diff --git a/src/components/structures/SpaceRoomView.tsx b/src/components/structures/SpaceRoomView.tsx index 1acb6877f92..031d44d7f10 100644 --- a/src/components/structures/SpaceRoomView.tsx +++ b/src/components/structures/SpaceRoomView.tsx @@ -16,7 +16,7 @@ limitations under the License. import { EventType, RoomType, JoinRule, Preset, Room, RoomEvent } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; -import React, { RefObject, useCallback, useContext, useRef, useState } from "react"; +import React, { useCallback, useContext, useRef, useState } from "react"; import MatrixClientContext from "../../contexts/MatrixClientContext"; import createRoom, { IOpts } from "../../createRoom"; @@ -499,7 +499,7 @@ const SpaceSetupPrivateInvite: React.FC<{ const [busy, setBusy] = useState(false); const [error, setError] = useState(""); const numFields = 3; - const fieldRefs = [useRef(), useRef(), useRef()] as RefObject[]; + const fieldRefs = [useRef(null), useRef(null), useRef(null)]; const [emailAddresses, setEmailAddress] = useStateArray(numFields, ""); const fields = new Array(numFields).fill(0).map((x, i) => { const name = "emailAddress" + i; diff --git a/src/components/views/auth/InteractiveAuthEntryComponents.tsx b/src/components/views/auth/InteractiveAuthEntryComponents.tsx index 9aaf02b09f7..008f92af92b 100644 --- a/src/components/views/auth/InteractiveAuthEntryComponents.tsx +++ b/src/components/views/auth/InteractiveAuthEntryComponents.tsx @@ -25,7 +25,7 @@ import { _t } from "../../../languageHandler"; import SettingsStore from "../../../settings/SettingsStore"; import { LocalisedPolicy, Policies } from "../../../Terms"; import { AuthHeaderModifier } from "../../structures/auth/header/AuthHeaderModifier"; -import AccessibleButton, { ButtonEvent } from "../elements/AccessibleButton"; +import AccessibleButton, { AccessibleButtonKind, ButtonEvent } from "../elements/AccessibleButton"; import AccessibleTooltipButton from "../elements/AccessibleTooltipButton"; import Field from "../elements/Field"; import Spinner from "../elements/Spinner"; @@ -780,9 +780,12 @@ export class RegistrationTokenAuthEntry extends React.Component; + interface ISSOAuthEntryProps extends IAuthEntryProps { continueText?: string; - continueKind?: string; + continueKind?: ContinueKind; onCancel?: () => void; } @@ -866,7 +869,7 @@ export class SSOAuthEntry extends React.Component {_t("action|cancel")} @@ -985,7 +988,7 @@ export interface IStageComponentProps extends IAuthEntryProps { inputs?: IInputs; stageState?: IStageStatus; continueText?: string; - continueKind?: string; + continueKind?: ContinueKind; setEmailSid?(sid: string): void; onCancel?(): void; requestEmailToken?(): Promise; diff --git a/src/components/views/dialogs/AddExistingToSpaceDialog.tsx b/src/components/views/dialogs/AddExistingToSpaceDialog.tsx index cb903dbfd28..77fb046bfa0 100644 --- a/src/components/views/dialogs/AddExistingToSpaceDialog.tsx +++ b/src/components/views/dialogs/AddExistingToSpaceDialog.tsx @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { ReactElement, ReactNode, RefObject, useContext, useMemo, useRef, useState } from "react"; +import React, { ReactElement, ReactNode, useContext, useMemo, useRef, useState } from "react"; import classNames from "classnames"; import { Room, EventType } from "matrix-js-sdk/src/matrix"; import { sleep } from "matrix-js-sdk/src/utils"; @@ -144,7 +144,7 @@ export const AddExistingToSpace: React.FC = ({ [cli, msc3946ProcessDynamicPredecessor], ); - const scrollRef = useRef() as RefObject>; + const scrollRef = useRef>(null); const [scrollState, setScrollState] = useState({ // these are estimates which update as soon as it mounts scrollTop: 0, diff --git a/src/components/views/dialogs/DeactivateAccountDialog.tsx b/src/components/views/dialogs/DeactivateAccountDialog.tsx index 4af05a6d1a2..1415f3befac 100644 --- a/src/components/views/dialogs/DeactivateAccountDialog.tsx +++ b/src/components/views/dialogs/DeactivateAccountDialog.tsx @@ -23,7 +23,7 @@ import { MatrixClient } from "matrix-js-sdk/src/matrix"; import { MatrixClientPeg } from "../../../MatrixClientPeg"; import { _t } from "../../../languageHandler"; import InteractiveAuth, { ERROR_USER_CANCELLED, InteractiveAuthCallback } from "../../structures/InteractiveAuth"; -import { DEFAULT_PHASE, PasswordAuthEntry, SSOAuthEntry } from "../auth/InteractiveAuthEntryComponents"; +import { ContinueKind, DEFAULT_PHASE, PasswordAuthEntry, SSOAuthEntry } from "../auth/InteractiveAuthEntryComponents"; import StyledCheckbox from "../elements/StyledCheckbox"; import BaseDialog from "./BaseDialog"; import defaultDispatcher from "../../../dispatcher/dispatcher"; @@ -34,7 +34,7 @@ type DialogAesthetics = Partial<{ [x: number]: { body: string; continueText?: string; - continueKind?: string; + continueKind?: ContinueKind; }; }; }>; @@ -53,7 +53,7 @@ interface IState { // next to the InteractiveAuth component. bodyText?: string; continueText?: string; - continueKind?: string; + continueKind?: ContinueKind; } export default class DeactivateAccountDialog extends React.Component { @@ -98,7 +98,7 @@ export default class DeactivateAccountDialog extends React.Component; @@ -146,7 +146,7 @@ export default class InteractiveAuthDialog extends React.Component { - let kind = "secondary"; + let kind: AccessibleButtonKind = "secondary"; switch (def.kind) { case ModalButtonKind.Primary: kind = "primary"; diff --git a/src/components/views/elements/AccessibleButton.tsx b/src/components/views/elements/AccessibleButton.tsx index e679955d8ab..e5b3688f49d 100644 --- a/src/components/views/elements/AccessibleButton.tsx +++ b/src/components/views/elements/AccessibleButton.tsx @@ -14,7 +14,7 @@ limitations under the License. */ -import React, { HTMLAttributes, InputHTMLAttributes, ReactNode } from "react"; +import React, { HTMLAttributes, InputHTMLAttributes } from "react"; import classnames from "classnames"; import { getKeyBindingsManager } from "../../../KeyBindingsManager"; @@ -22,7 +22,10 @@ import { KeyBindingAction } from "../../../accessibility/KeyboardShortcuts"; export type ButtonEvent = React.MouseEvent | React.KeyboardEvent | React.FormEvent; -type AccessibleButtonKind = +/** + * The kind of button, similar to how Bootstrap works. + */ +export type AccessibleButtonKind = | "primary" | "primary_outline" | "primary_sm" @@ -58,25 +61,31 @@ type DynamicElementProps = Partial< Omit, "onClick">; /** - * children: React's magic prop. Represents all children given to the element. - * element: (optional) The base element type. "div" by default. - * onClick: (required) Event handler for button activation. Should be - * implemented exactly like a normal onClick handler. + * Type of props accepted by {@link AccessibleButton}. + * + * Extends props accepted by the underlying element specified using the `element` prop. */ -type IProps = DynamicHtmlElementProps & { +type Props = DynamicHtmlElementProps & { inputRef?: React.Ref; + /** + * The base element type. "div" by default. + */ element?: T; - children?: ReactNode; - // The kind of button, similar to how Bootstrap works. - // See available classes for AccessibleButton for options. - kind?: AccessibleButtonKind | string; - // The ARIA role - role?: string; - // The tabIndex - tabIndex?: number; + /** + * The kind of button, similar to how Bootstrap works. + */ + kind?: AccessibleButtonKind; + /** + * Whether the button should be disabled. + */ disabled?: boolean; - className?: string; + /** + * Whether the button should trigger on mousedown event instead of on click event. Defaults to false (click event). + */ triggerOnMouseDown?: boolean; + /** + * Event handler for button activation. Should be implemented exactly like a normal `onClick` handler. + */ onClick: ((e: ButtonEvent) => void | Promise) | null; }; @@ -104,7 +113,7 @@ export default function AccessibleButton( onKeyUp, triggerOnMouseDown, ...restProps -}: IProps): JSX.Element { +}: Props): JSX.Element { const newProps: IAccessibleButtonProps = restProps; if (disabled) { newProps["aria-disabled"] = true; diff --git a/src/components/views/elements/AccessibleTooltipButton.tsx b/src/components/views/elements/AccessibleTooltipButton.tsx index 26c3825fda1..8be307f0412 100644 --- a/src/components/views/elements/AccessibleTooltipButton.tsx +++ b/src/components/views/elements/AccessibleTooltipButton.tsx @@ -15,85 +15,105 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { SyntheticEvent, FocusEvent } from "react"; +import React, { SyntheticEvent, FocusEvent, useEffect, useState } from "react"; import AccessibleButton from "./AccessibleButton"; import Tooltip, { Alignment } from "./Tooltip"; -interface IProps extends React.ComponentProps { +/** + * Type of props accepted by {@link AccessibleTooltipButton}. + * + * Extends that of {@link AccessibleButton}. + */ +interface Props extends React.ComponentProps { + /** + * Title to show in the tooltip and use as aria-label + */ title?: string; + /** + * Tooltip node to show in the tooltip, takes precedence over `title` + */ tooltip?: React.ReactNode; + /** + * Trigger label to render + */ label?: string; + /** + * Classname to apply to the tooltip + */ tooltipClassName?: string; + /** + * Force the tooltip to be hidden + */ forceHide?: boolean; + /** + * Alignment to render the tooltip with + */ alignment?: Alignment; + /** + * Function to call when the children are hovered over + */ onHover?: (hovering: boolean) => void; + /** + * Function to call when the tooltip goes from shown to hidden. + */ onHideTooltip?(ev: SyntheticEvent): void; } -interface IState { - hover: boolean; -} - -export default class AccessibleTooltipButton extends React.PureComponent { - public constructor(props: IProps) { - super(props); - this.state = { - hover: false, - }; - } +function AccessibleTooltipButton({ + title, + tooltip, + children, + forceHide, + alignment, + onHideTooltip, + tooltipClassName, + ...props +}: Props): JSX.Element { + const [hover, setHover] = useState(false); - public componentDidUpdate(prevProps: Readonly): void { - if (!prevProps.forceHide && this.props.forceHide && this.state.hover) { - this.setState({ - hover: false, - }); + useEffect(() => { + // If forceHide is set then force hover to off to hide the tooltip + if (forceHide && hover) { + setHover(false); } - } + }, [forceHide, hover]); - private showTooltip = (): void => { - if (this.props.onHover) this.props.onHover(true); - if (this.props.forceHide) return; - this.setState({ - hover: true, - }); + const showTooltip = (): void => { + props.onHover?.(true); + if (forceHide) return; + setHover(true); }; - private hideTooltip = (ev: SyntheticEvent): void => { - if (this.props.onHover) this.props.onHover(false); - this.setState({ - hover: false, - }); - this.props.onHideTooltip?.(ev); + const hideTooltip = (ev: SyntheticEvent): void => { + props.onHover?.(false); + setHover(false); + onHideTooltip?.(ev); }; - private onFocus = (ev: FocusEvent): void => { + const onFocus = (ev: FocusEvent): void => { // We only show the tooltip if focus arrived here from some other // element, to avoid leaving tooltips hanging around when a modal closes - if (ev.relatedTarget) this.showTooltip(); + if (ev.relatedTarget) showTooltip(); }; - public render(): React.ReactNode { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { title, tooltip, children, tooltipClassName, forceHide, alignment, onHideTooltip, ...props } = - this.props; - - const tip = this.state.hover && (title || tooltip) && ( - - ); - return ( - - {children} - {this.props.label} - {(tooltip || title) && tip} - - ); - } + const tip = hover && (title || tooltip) && ( + + ); + return ( + + {children} + {props.label} + {(tooltip || title) && tip} + + ); } + +export default AccessibleTooltipButton; diff --git a/src/components/views/messages/CallEvent.tsx b/src/components/views/messages/CallEvent.tsx index 8a74eaa34f2..bfe959c0058 100644 --- a/src/components/views/messages/CallEvent.tsx +++ b/src/components/views/messages/CallEvent.tsx @@ -28,13 +28,14 @@ import { import defaultDispatcher from "../../../dispatcher/dispatcher"; import type { ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload"; import { Action } from "../../../dispatcher/actions"; -import type { ButtonEvent } from "../elements/AccessibleButton"; +import { AccessibleButtonKind, ButtonEvent } from "../elements/AccessibleButton"; import MemberAvatar from "../avatars/MemberAvatar"; import { LiveContentSummary, LiveContentType } from "../rooms/LiveContentSummary"; import FacePile from "../elements/FacePile"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import { CallDuration, SessionDuration } from "../voip/CallDuration"; import AccessibleTooltipButton from "../elements/AccessibleTooltipButton"; +import { ContinueKind } from "../auth/InteractiveAuthEntryComponents"; const MAX_FACES = 8; @@ -43,7 +44,7 @@ interface ActiveCallEventProps { call: ElementCall | null; participatingMembers: RoomMember[]; buttonText: string; - buttonKind: string; + buttonKind: AccessibleButtonKind; buttonDisabledTooltip?: string; onButtonClick: ((ev: ButtonEvent) => void) | null; } @@ -125,7 +126,9 @@ const ActiveLoadedCallEvent = forwardRef(({ mxE [call], ); - const [buttonText, buttonKind, onButtonClick] = useMemo(() => { + const [buttonText, buttonKind, onButtonClick] = useMemo< + [string, ContinueKind, null | ((ev: ButtonEvent) => void)] + >(() => { switch (connectionState) { case ConnectionState.Disconnected: return [_t("action|join"), "primary", connect]; diff --git a/src/components/views/rooms/ReadReceiptGroup.tsx b/src/components/views/rooms/ReadReceiptGroup.tsx index 7a8190b3ada..0cb43d25a58 100644 --- a/src/components/views/rooms/ReadReceiptGroup.tsx +++ b/src/components/views/rooms/ReadReceiptGroup.tsx @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { PropsWithChildren, useRef } from "react"; +import React, { PropsWithChildren } from "react"; import { User } from "matrix-js-sdk/src/matrix"; import ReadReceiptMarker, { IReadReceiptInfo } from "./ReadReceiptMarker"; @@ -284,8 +284,7 @@ interface ISectionHeaderProps { } function SectionHeader({ className, children }: PropsWithChildren): JSX.Element { - const ref = useRef(null); - const [onFocus] = useRovingTabIndex(ref); + const [onFocus, , ref] = useRovingTabIndex(); return (

    diff --git a/src/components/views/rooms/ReadReceiptMarker.tsx b/src/components/views/rooms/ReadReceiptMarker.tsx index 5c7f920c354..06fe783ce64 100644 --- a/src/components/views/rooms/ReadReceiptMarker.tsx +++ b/src/components/views/rooms/ReadReceiptMarker.tsx @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { createRef, RefObject } from "react"; +import React, { createRef } from "react"; import { RoomMember } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; @@ -73,7 +73,7 @@ interface IReadReceiptMarkerStyle { } export default class ReadReceiptMarker extends React.PureComponent { - private avatar: React.RefObject = createRef(); + private avatar = createRef(); public constructor(props: IProps) { super(props); @@ -199,7 +199,7 @@ export default class ReadReceiptMarker extends React.PureComponent} />; + return
    ; } const style = { diff --git a/src/components/views/settings/ChangePassword.tsx b/src/components/views/settings/ChangePassword.tsx index f7f17d0de59..35a8f68aecb 100644 --- a/src/components/views/settings/ChangePassword.tsx +++ b/src/components/views/settings/ChangePassword.tsx @@ -20,7 +20,7 @@ import { MatrixClient } from "matrix-js-sdk/src/matrix"; import Field from "../elements/Field"; import { MatrixClientPeg } from "../../../MatrixClientPeg"; -import AccessibleButton from "../elements/AccessibleButton"; +import AccessibleButton, { AccessibleButtonKind } from "../elements/AccessibleButton"; import Spinner from "../elements/Spinner"; import withValidation, { IFieldState, IValidationResult } from "../elements/Validation"; import { UserFriendlyError, _t, _td } from "../../../languageHandler"; @@ -45,7 +45,7 @@ interface IProps { onError: (error: Error) => void; rowClassName?: string; buttonClassName?: string; - buttonKind?: string; + buttonKind?: AccessibleButtonKind; buttonLabel?: string; confirm?: boolean; // Whether to autoFocus the new password input From e26d3e9b684f6680132a3208d5594adb84269276 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Wed, 20 Dec 2023 13:39:57 +0100 Subject: [PATCH 38/48] Update element call embedding UI (#12056) Signed-off-by: Timo K --- res/css/views/rooms/_AppsDrawer.pcss | 4 ++++ res/css/views/voip/_CallView.pcss | 4 ---- src/components/views/elements/AppTile.tsx | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/res/css/views/rooms/_AppsDrawer.pcss b/res/css/views/rooms/_AppsDrawer.pcss index eeb533c0af6..99d64739fa5 100644 --- a/res/css/views/rooms/_AppsDrawer.pcss +++ b/res/css/views/rooms/_AppsDrawer.pcss @@ -321,6 +321,10 @@ limitations under the License. display: none; } } + + &.mx_AppTileBody--call { + border-radius: 0px; + } } /* appTileBody is embedded to PersistedElement outside of mx_AppTile, diff --git a/res/css/views/voip/_CallView.pcss b/res/css/views/voip/_CallView.pcss index 4e534484d88..44cbbfd0b13 100644 --- a/res/css/views/voip/_CallView.pcss +++ b/res/css/views/voip/_CallView.pcss @@ -20,12 +20,8 @@ limitations under the License. display: flex; flex-direction: column; - margin: var(--container-gap-width); - margin-right: calc(var(--container-gap-width) / 2); background-color: $header-panel-bg-color; - padding: 8px; - border-radius: 8px; .mx_AppTile { width: auto; diff --git a/src/components/views/elements/AppTile.tsx b/src/components/views/elements/AppTile.tsx index 13fa3daac77..642e2bd4769 100644 --- a/src/components/views/elements/AppTile.tsx +++ b/src/components/views/elements/AppTile.tsx @@ -608,10 +608,12 @@ export default class AppTile extends React.Component { "microphone; camera; encrypted-media; autoplay; display-capture; clipboard-write; " + "clipboard-read;"; const appTileBodyClass = classNames({ + // We don't want mx_AppTileBody (rounded corners) for call widgets "mx_AppTileBody": true, "mx_AppTileBody--large": !this.props.miniMode, "mx_AppTileBody--mini": this.props.miniMode, "mx_AppTileBody--loading": this.state.loading, + "mx_AppTileBody--call": this.props.app.type === WidgetType.CALL.preferred, }); const appTileBodyStyles: CSSProperties = {}; if (this.props.pointerEvents) { From af31965866fcb80ab8effa2dc0c04941e0df3a0f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 20 Dec 2023 14:42:31 +0000 Subject: [PATCH 39/48] Improve AccessibleButton & related types (#12075) * Fix wrong type enum usage Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Use improved type definition for forwardRef which enables Generic props Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve AccessibleButton & related Props types Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove useless comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/@types/react.d.ts | 24 +++++++++++++++++++ .../context_menu/ContextMenuButton.tsx | 12 +++++----- .../context_menu/ContextMenuTooltipButton.tsx | 12 +++++----- .../roving/RovingAccessibleButton.tsx | 13 ++++++---- .../roving/RovingAccessibleTooltipButton.tsx | 16 +++++++++---- .../views/audio_messages/PlayPauseButton.tsx | 11 ++++----- .../views/elements/AccessibleButton.tsx | 7 ++++-- .../elements/AccessibleTooltipButton.tsx | 8 +++---- src/components/views/elements/LearnMore.tsx | 10 ++++---- src/components/views/messages/CallEvent.tsx | 3 +-- src/components/views/rooms/ExtraTile.tsx | 6 +---- .../components/WysiwygAutocomplete.tsx | 4 ++-- .../devices/DeviceExpandDetailsButton.tsx | 15 ++++++++---- .../devices/DeviceSecurityLearnMore.tsx | 8 +++---- .../views/spaces/SpaceTreeLevel.tsx | 11 +++++---- .../LegacyCallView/LegacyCallViewButtons.tsx | 11 ++++----- src/contexts/MatrixClientContext.tsx | 17 ++++--------- 17 files changed, 109 insertions(+), 79 deletions(-) create mode 100644 src/@types/react.d.ts diff --git a/src/@types/react.d.ts b/src/@types/react.d.ts new file mode 100644 index 00000000000..f1f57c5400a --- /dev/null +++ b/src/@types/react.d.ts @@ -0,0 +1,24 @@ +/* +Copyright 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import React, { PropsWithChildren } from "react"; + +declare module "react" { + // Fix forwardRef types for Generic components - https://stackoverflow.com/a/58473012 + function forwardRef( + render: (props: PropsWithChildren

    , ref: React.ForwardedRef) => React.ReactElement | null, + ): (props: P & React.RefAttributes) => React.ReactElement | null; +} diff --git a/src/accessibility/context_menu/ContextMenuButton.tsx b/src/accessibility/context_menu/ContextMenuButton.tsx index 090b42333ff..396af5748db 100644 --- a/src/accessibility/context_menu/ContextMenuButton.tsx +++ b/src/accessibility/context_menu/ContextMenuButton.tsx @@ -16,25 +16,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; +import React, { ComponentProps } from "react"; import AccessibleButton from "../../components/views/elements/AccessibleButton"; -interface IProps extends React.ComponentProps { +type Props = ComponentProps> & { label?: string; - // whether or not the context menu is currently open + // whether the context menu is currently open isExpanded: boolean; -} +}; // Semantic component for representing the AccessibleButton which launches a -export const ContextMenuButton: React.FC = ({ +export const ContextMenuButton = ({ label, isExpanded, children, onClick, onContextMenu, ...props -}) => { +}: Props): JSX.Element => { return ( { - // whether or not the context menu is currently open +type Props = ComponentProps> & { + // whether the context menu is currently open isExpanded: boolean; -} +}; // Semantic component for representing the AccessibleButton which launches a -export const ContextMenuTooltipButton: React.FC = ({ +export const ContextMenuTooltipButton = ({ isExpanded, children, onClick, onContextMenu, ...props -}) => { +}: Props): JSX.Element => { return ( , "inputRef" | "tabIndex"> { +type Props = Omit< + ComponentProps>, + "inputRef" | "tabIndex" +> & { inputRef?: Ref; focusOnMouseOver?: boolean; -} +}; // Wrapper to allow use of useRovingTabIndex for simple AccessibleButtons outside of React Functional Components. -export const RovingAccessibleButton: React.FC = ({ +export const RovingAccessibleButton = ({ inputRef, onFocus, onMouseOver, focusOnMouseOver, ...props -}) => { +}: Props): JSX.Element => { const [onFocusInternal, isActive, ref] = useRovingTabIndex(inputRef); return ( ; -interface IProps extends Omit { +type Props = Omit< + ComponentProps>, + "tabIndex" +> & { inputRef?: Ref; -} +}; // Wrapper to allow use of useRovingTabIndex for simple AccessibleTooltipButtons outside of React Functional Components. -export const RovingAccessibleTooltipButton: React.FC = ({ inputRef, onFocus, ...props }) => { +export const RovingAccessibleTooltipButton = ({ + inputRef, + onFocus, + ...props +}: Props): JSX.Element => { const [onFocusInternal, isActive, ref] = useRovingTabIndex(inputRef); return ( , "title" | "onClick" | "disabled"> { +type Props = Omit, "title" | "onClick" | "disabled" | "element"> & { // Playback instance to manipulate. Cannot change during the component lifecycle. playback: Playback; // The playback phase to render. Able to change during the component lifecycle. playbackPhase: PlaybackState; -} +}; /** * Displays a play/pause button (activating the play/pause function of the recorder) * to be displayed in reference to a recording. */ -export default class PlayPauseButton extends React.PureComponent { - public constructor(props: IProps) { +export default class PlayPauseButton extends React.PureComponent { + public constructor(props: Props) { super(props); } diff --git a/src/components/views/elements/AccessibleButton.tsx b/src/components/views/elements/AccessibleButton.tsx index e5b3688f49d..fc54e8517a4 100644 --- a/src/components/views/elements/AccessibleButton.tsx +++ b/src/components/views/elements/AccessibleButton.tsx @@ -89,7 +89,10 @@ type Props = DynamicHtmlElementProps & onClick: ((e: ButtonEvent) => void | Promise) | null; }; -export interface IAccessibleButtonProps extends React.InputHTMLAttributes { +/** + * Type of the props passed to the element that is rendered by AccessibleButton. + */ +interface RenderedElementProps extends React.InputHTMLAttributes { ref?: React.Ref; } @@ -114,7 +117,7 @@ export default function AccessibleButton( triggerOnMouseDown, ...restProps }: Props): JSX.Element { - const newProps: IAccessibleButtonProps = restProps; + const newProps: RenderedElementProps = restProps; if (disabled) { newProps["aria-disabled"] = true; newProps["disabled"] = true; diff --git a/src/components/views/elements/AccessibleTooltipButton.tsx b/src/components/views/elements/AccessibleTooltipButton.tsx index 8be307f0412..c561b1b8b58 100644 --- a/src/components/views/elements/AccessibleTooltipButton.tsx +++ b/src/components/views/elements/AccessibleTooltipButton.tsx @@ -25,7 +25,7 @@ import Tooltip, { Alignment } from "./Tooltip"; * * Extends that of {@link AccessibleButton}. */ -interface Props extends React.ComponentProps { +type Props = React.ComponentProps> & { /** * Title to show in the tooltip and use as aria-label */ @@ -58,9 +58,9 @@ interface Props extends React.ComponentProps { * Function to call when the tooltip goes from shown to hidden. */ onHideTooltip?(ev: SyntheticEvent): void; -} +}; -function AccessibleTooltipButton({ +function AccessibleTooltipButton({ title, tooltip, children, @@ -69,7 +69,7 @@ function AccessibleTooltipButton({ onHideTooltip, tooltipClassName, ...props -}: Props): JSX.Element { +}: Props): JSX.Element { const [hover, setHover] = useState(false); useEffect(() => { diff --git a/src/components/views/elements/LearnMore.tsx b/src/components/views/elements/LearnMore.tsx index 03f377da763..efce35bfe34 100644 --- a/src/components/views/elements/LearnMore.tsx +++ b/src/components/views/elements/LearnMore.tsx @@ -14,19 +14,19 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; +import React, { ComponentProps } from "react"; import { _t } from "../../../languageHandler"; import Modal from "../../../Modal"; import InfoDialog from "../dialogs/InfoDialog"; -import AccessibleButton, { IAccessibleButtonProps } from "./AccessibleButton"; +import AccessibleButton from "./AccessibleButton"; -export interface LearnMoreProps extends IAccessibleButtonProps { +type Props = Omit, "kind" | "onClick" | "className"> & { title: string; description: string | React.ReactNode; -} +}; -const LearnMore: React.FC = ({ title, description, ...rest }) => { +const LearnMore: React.FC = ({ title, description, ...rest }) => { const onClick = (): void => { Modal.createDialog(InfoDialog, { title, diff --git a/src/components/views/messages/CallEvent.tsx b/src/components/views/messages/CallEvent.tsx index bfe959c0058..5718c7a4126 100644 --- a/src/components/views/messages/CallEvent.tsx +++ b/src/components/views/messages/CallEvent.tsx @@ -35,7 +35,6 @@ import FacePile from "../elements/FacePile"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import { CallDuration, SessionDuration } from "../voip/CallDuration"; import AccessibleTooltipButton from "../elements/AccessibleTooltipButton"; -import { ContinueKind } from "../auth/InteractiveAuthEntryComponents"; const MAX_FACES = 8; @@ -127,7 +126,7 @@ const ActiveLoadedCallEvent = forwardRef(({ mxE ); const [buttonText, buttonKind, onButtonClick] = useMemo< - [string, ContinueKind, null | ((ev: ButtonEvent) => void)] + [string, AccessibleButtonKind, null | ((ev: ButtonEvent) => void)] >(() => { switch (connectionState) { case ConnectionState.Disconnected: diff --git a/src/components/views/rooms/ExtraTile.tsx b/src/components/views/rooms/ExtraTile.tsx index 83f7b179ea3..157bfc4d562 100644 --- a/src/components/views/rooms/ExtraTile.tsx +++ b/src/components/views/rooms/ExtraTile.tsx @@ -73,11 +73,7 @@ export default function ExtraTile({ ); if (isMinimized) nameContainer = null; - let Button = RovingAccessibleButton; - if (isMinimized) { - Button = RovingAccessibleTooltipButton; - } - + const Button = isMinimized ? RovingAccessibleTooltipButton : RovingAccessibleButton; return (

    ); diff --git a/src/components/structures/LoggedInView.tsx b/src/components/structures/LoggedInView.tsx index 919b5e6053d..c0707fba260 100644 --- a/src/components/structures/LoggedInView.tsx +++ b/src/components/structures/LoggedInView.tsx @@ -683,7 +683,7 @@ class LoggedInView extends React.Component {
    - +
    {pageElement}
    diff --git a/src/components/structures/RoomView.tsx b/src/components/structures/RoomView.tsx index ac90dd9c81b..72aab052f2d 100644 --- a/src/components/structures/RoomView.tsx +++ b/src/components/structures/RoomView.tsx @@ -406,7 +406,7 @@ export class RoomView extends React.Component { private unmounted = false; private permalinkCreators: Record = {}; - private roomView = createRef(); + private roomView = createRef(); private searchResultsPanel = createRef(); private messagePanel: TimelinePanel | null = null; private roomViewBody = createRef(); @@ -2302,7 +2302,7 @@ export class RoomView extends React.Component { // if statusBar does not exist then statusBarArea is blank and takes up unnecessary space on the screen // show statusBarArea only if statusBar is present const statusBarArea = statusBar && ( -
    +
    {statusBar} @@ -2528,13 +2528,13 @@ export class RoomView extends React.Component { )} {auxPanel} -
    +
    {topUnreadMessagesBar} {jumpToBottom} {messagePanel} {searchResultsPanel} -
    + {statusBarArea} {previewBar} {messageComposer} @@ -2550,6 +2550,7 @@ export class RoomView extends React.Component { userId={this.context.client.getSafeUserId()} resizeNotifier={this.props.resizeNotifier} showApps={true} + role="main" /> {previewBar} @@ -2563,6 +2564,7 @@ export class RoomView extends React.Component { room={this.state.room} resizing={this.state.resizing} waitForCall={isVideoRoom(this.state.room)} + role="main" /> {previewBar} @@ -2603,7 +2605,7 @@ export class RoomView extends React.Component { return ( -
    {
    - +
    ); } diff --git a/src/components/structures/ThreadPanel.tsx b/src/components/structures/ThreadPanel.tsx index 1357c0a8143..b94a70e78c0 100644 --- a/src/components/structures/ThreadPanel.tsx +++ b/src/components/structures/ThreadPanel.tsx @@ -180,11 +180,11 @@ const EmptyThread: React.FC = ({ hasThreads, filterOption, sh } return ( - +
    ); }; diff --git a/src/components/views/emojipicker/EmojiPicker.tsx b/src/components/views/emojipicker/EmojiPicker.tsx index 7d1956c8159..16258bb3d78 100644 --- a/src/components/views/emojipicker/EmojiPicker.tsx +++ b/src/components/views/emojipicker/EmojiPicker.tsx @@ -362,7 +362,12 @@ class EmojiPicker extends React.Component { {({ onKeyDownHandler }) => { let heightBefore = 0; return ( -
    +
    { selectedEmojis={this.props.selectedEmojis} /> )} -
    + ); }} diff --git a/src/components/views/rooms/AppsDrawer.tsx b/src/components/views/rooms/AppsDrawer.tsx index fa92987666e..2247edce045 100644 --- a/src/components/views/rooms/AppsDrawer.tsx +++ b/src/components/views/rooms/AppsDrawer.tsx @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; +import React, { AriaRole } from "react"; import classNames from "classnames"; import { Resizable, Size } from "re-resizable"; import { Room } from "matrix-js-sdk/src/matrix"; @@ -42,6 +42,7 @@ interface IProps { resizeNotifier: ResizeNotifier; showApps?: boolean; // Should apps be rendered maxHeight: number; + role?: AriaRole; } interface IState { @@ -294,7 +295,7 @@ export default class AppsDrawer extends React.Component { } return ( -
    +
    {drawer} {spinner}
    diff --git a/src/components/views/rooms/AuxPanel.tsx b/src/components/views/rooms/AuxPanel.tsx index 7210b3a4eaa..4e3e20a7c59 100644 --- a/src/components/views/rooms/AuxPanel.tsx +++ b/src/components/views/rooms/AuxPanel.tsx @@ -65,7 +65,7 @@ export default class AuxPanel extends React.Component { } return ( - + {this.props.children} {appsDrawer} {callView} diff --git a/src/components/views/rooms/MessageComposer.tsx b/src/components/views/rooms/MessageComposer.tsx index ac1fa3e5d53..53e05e69a17 100644 --- a/src/components/views/rooms/MessageComposer.tsx +++ b/src/components/views/rooms/MessageComposer.tsx @@ -602,6 +602,8 @@ export class MessageComposer extends React.Component { className={classes} ref={this.ref} aria-describedby={this.state.recordingTimeLeftSeconds ? this.tooltipId : undefined} + role="region" + aria-label={_t("a11y|message_composer")} > {recordingTooltip}
    diff --git a/src/components/views/rooms/RoomHeader.tsx b/src/components/views/rooms/RoomHeader.tsx index 92d7c78ac9d..b23836050de 100644 --- a/src/components/views/rooms/RoomHeader.tsx +++ b/src/components/views/rooms/RoomHeader.tsx @@ -182,7 +182,7 @@ export default function RoomHeader({ )} - + {additionalButtons?.map((props) => { const label = props.label(); diff --git a/src/components/views/rooms/RoomListHeader.tsx b/src/components/views/rooms/RoomListHeader.tsx index 6734b2e536f..8f32062fb73 100644 --- a/src/components/views/rooms/RoomListHeader.tsx +++ b/src/components/views/rooms/RoomListHeader.tsx @@ -409,7 +409,7 @@ const RoomListHeader: React.FC = ({ onVisibilityChange }) => { } return ( -
    +
    + ); }; diff --git a/src/components/views/rooms/RoomPreviewBar.tsx b/src/components/views/rooms/RoomPreviewBar.tsx index 7e072972aa3..e3b06e5b9f2 100644 --- a/src/components/views/rooms/RoomPreviewBar.tsx +++ b/src/components/views/rooms/RoomPreviewBar.tsx @@ -720,7 +720,7 @@ export default class RoomPreviewBar extends React.Component { ); return ( -
    +
    {titleElement} {subTitleElements} diff --git a/src/components/views/spaces/SpacePanel.tsx b/src/components/views/spaces/SpacePanel.tsx index a773766bdf3..aac1273543f 100644 --- a/src/components/views/spaces/SpacePanel.tsx +++ b/src/components/views/spaces/SpacePanel.tsx @@ -364,10 +364,11 @@ const SpacePanel: React.FC = () => { onDragEndHandler(); }} > -
    { -
    + )} diff --git a/src/components/views/voip/CallView.tsx b/src/components/views/voip/CallView.tsx index 625df3a897c..ee920c02674 100644 --- a/src/components/views/voip/CallView.tsx +++ b/src/components/views/voip/CallView.tsx @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { FC, ReactNode, useState, useContext, useEffect, useMemo, useRef, useCallback } from "react"; +import React, { FC, ReactNode, useState, useContext, useEffect, useMemo, useRef, useCallback, AriaRole } from "react"; import classNames from "classnames"; import { logger } from "matrix-js-sdk/src/logger"; import { defer, IDeferred } from "matrix-js-sdk/src/utils"; @@ -297,9 +297,10 @@ interface StartCallViewProps { resizing: boolean; call: Call | null; setStartingCall: (value: boolean) => void; + role?: AriaRole; } -const StartCallView: FC = ({ room, resizing, call, setStartingCall }) => { +const StartCallView: FC = ({ room, resizing, call, setStartingCall, role }) => { const cli = useContext(MatrixClientContext); // Since connection has to be split across two different callbacks, we @@ -348,7 +349,7 @@ const StartCallView: FC = ({ room, resizing, call, setStarti }, [call, connectDeferred]); return ( -
    +
    {connected ? null : } {call !== null && ( = ({ room, resizing, call }) => { +const JoinCallView: FC = ({ room, resizing, call, role }) => { const cli = useContext(MatrixClientContext); const connected = isConnected(useConnectionState(call)); const members = useParticipatingMembers(call); @@ -415,7 +417,7 @@ const JoinCallView: FC = ({ room, resizing, call }) => { } return ( -
    +
    {lobby} {/* We render the widget even if we're disconnected, so it stays loaded */} = ({ room, resizing, waitForCall }) => { +export const CallView: FC = ({ room, resizing, waitForCall, role }) => { const call = useCall(room.roomId); const [startingCall, setStartingCall] = useState(false); if (call === null || startingCall) { if (waitForCall) return null; - return ; + return ( + + ); } else { - return ; + return ; } }; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 7b687d9a03f..fe43e73b540 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1,6 +1,8 @@ { "a11y": { + "emoji_picker": "Emoji picker", "jump_first_invite": "Jump to first invite.", + "message_composer": "Message composer", "n_unread_messages": { "one": "1 unread message.", "other": "%(count)s unread messages." @@ -9,7 +11,9 @@ "one": "1 unread mention.", "other": "%(count)s unread messages including mentions." }, + "recent_rooms": "Recent rooms", "room_name": "Room %(name)s", + "room_status_bar": "Room status bar", "unread_messages": "Unread messages.", "user_menu": "User menu" }, diff --git a/src/utils/exportUtils/HtmlExport.tsx b/src/utils/exportUtils/HtmlExport.tsx index c02d396ce13..3edf0f3cc07 100644 --- a/src/utils/exportUtils/HtmlExport.tsx +++ b/src/utils/exportUtils/HtmlExport.tsx @@ -164,7 +164,7 @@ export default class HTMLExporter extends Exporter { ${_t("export_chat|html_title")} -
    - +
    `; diff --git a/test/components/structures/__snapshots__/RoomView-test.tsx.snap b/test/components/structures/__snapshots__/RoomView-test.tsx.snap index daa99897d59..1f29fc76bb8 100644 --- a/test/components/structures/__snapshots__/RoomView-test.tsx.snap +++ b/test/components/structures/__snapshots__/RoomView-test.tsx.snap @@ -373,7 +373,9 @@ exports[`RoomView for a local room in state NEW should match the snapshot 1`] =
    `; diff --git a/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap b/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap index 9e0fd1a8824..d3cd8e23f8a 100644 --- a/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap +++ b/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap @@ -13,7 +13,7 @@ exports[`HTMLExport should export 1`] = ` Exported Data -
    - +
    " From f632e2124f0f4dd0f2ed4432c6ba7f780e0b8ed9 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 21 Dec 2023 08:50:42 +0000 Subject: [PATCH 41/48] Switch AccessibleButton and derivatives to using `forwardRef` (#12054) * Prevent Cypress typechecking react-sdk components without strict mode This prevented us from switching to `forwardRef` in a bunch of places due to it behaving different with & without strict mode. Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update global.d.ts * Switch AccessibleButton and derivatives to using `forwardRef` Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add missing ref={ref} Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Ensure RefObjects are used consistently Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Re-add WysiwygAutocomplete displayname Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix forwardRef types Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add comments Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove unused export Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Readd comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate types & comments Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Apply suggestions from code review Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Add comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Improve comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> --- .../context_menu/ContextMenuButton.tsx | 17 +++----- .../context_menu/ContextMenuTooltipButton.tsx | 16 +++---- .../roving/RovingAccessibleButton.tsx | 2 +- .../roving/RovingAccessibleTooltipButton.tsx | 2 +- .../structures/GenericDropdownMenu.tsx | 2 +- src/components/structures/SpaceHierarchy.tsx | 5 ++- src/components/structures/SpaceRoomView.tsx | 2 +- src/components/structures/ThreadPanel.tsx | 2 +- src/components/structures/UserMenu.tsx | 2 +- .../views/audio_messages/PlayPauseButton.tsx | 5 ++- .../auth/InteractiveAuthEntryComponents.tsx | 2 +- .../views/context_menus/KebabContextMenu.tsx | 2 +- .../context_menus/ThreadListContextMenu.tsx | 2 +- .../views/dialogs/spotlight/Option.tsx | 2 +- .../views/dialogs/spotlight/TooltipOption.tsx | 2 +- .../views/elements/AccessibleButton.tsx | 43 +++++++++++-------- .../elements/AccessibleTooltipButton.tsx | 21 ++++----- src/components/views/elements/AppTile.tsx | 2 +- src/components/views/elements/Dropdown.tsx | 2 +- src/components/views/elements/ImageView.tsx | 2 +- .../views/elements/PollCreateDialog.tsx | 2 +- src/components/views/messages/CallEvent.tsx | 2 +- .../views/messages/MessageActionBar.tsx | 4 +- .../views/messages/ReactionsRow.tsx | 2 +- .../views/right_panel/WidgetCard.tsx | 2 +- .../views/rooms/CollapsibleButton.tsx | 18 +++++--- .../views/rooms/LegacyRoomHeader.tsx | 4 +- .../views/rooms/ReadReceiptGroup.tsx | 2 +- .../views/rooms/RoomBreadcrumbs.tsx | 2 +- src/components/views/rooms/RoomList.tsx | 4 +- src/components/views/rooms/RoomListHeader.tsx | 4 +- src/components/views/rooms/RoomSublist.tsx | 2 +- src/components/views/rooms/RoomTile.tsx | 2 +- .../views/spaces/QuickSettingsButton.tsx | 2 +- .../views/spaces/SpaceTreeLevel.tsx | 2 +- src/components/views/voip/CallView.tsx | 2 +- .../LegacyCallView/LegacyCallViewButtons.tsx | 6 +-- 37 files changed, 102 insertions(+), 95 deletions(-) diff --git a/src/accessibility/context_menu/ContextMenuButton.tsx b/src/accessibility/context_menu/ContextMenuButton.tsx index 396af5748db..6ef6afef379 100644 --- a/src/accessibility/context_menu/ContextMenuButton.tsx +++ b/src/accessibility/context_menu/ContextMenuButton.tsx @@ -16,7 +16,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { ComponentProps } from "react"; +import React, { ComponentProps, forwardRef, Ref } from "react"; import AccessibleButton from "../../components/views/elements/AccessibleButton"; @@ -27,14 +27,10 @@ type Props = ComponentProps -export const ContextMenuButton = ({ - label, - isExpanded, - children, - onClick, - onContextMenu, - ...props -}: Props): JSX.Element => { +export const ContextMenuButton = forwardRef(function ( + { label, isExpanded, children, onClick, onContextMenu, ...props }: Props, + ref: Ref, +) { return ( ({ aria-label={label} aria-haspopup={true} aria-expanded={isExpanded} + ref={ref} > {children} ); -}; +}); diff --git a/src/accessibility/context_menu/ContextMenuTooltipButton.tsx b/src/accessibility/context_menu/ContextMenuTooltipButton.tsx index 0b71b616467..34986627601 100644 --- a/src/accessibility/context_menu/ContextMenuTooltipButton.tsx +++ b/src/accessibility/context_menu/ContextMenuTooltipButton.tsx @@ -16,7 +16,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { ComponentProps } from "react"; +import React, { ComponentProps, forwardRef, Ref } from "react"; import AccessibleTooltipButton from "../../components/views/elements/AccessibleTooltipButton"; @@ -26,13 +26,10 @@ type Props = ComponentProps -export const ContextMenuTooltipButton = ({ - isExpanded, - children, - onClick, - onContextMenu, - ...props -}: Props): JSX.Element => { +export const ContextMenuTooltipButton = forwardRef(function ( + { isExpanded, children, onClick, onContextMenu, ...props }: Props, + ref: Ref, +) { return ( ( aria-haspopup={true} aria-expanded={isExpanded} forceHide={isExpanded} + ref={ref} > {children} ); -}; +}); diff --git a/src/accessibility/roving/RovingAccessibleButton.tsx b/src/accessibility/roving/RovingAccessibleButton.tsx index 849ef2db428..56c9052714a 100644 --- a/src/accessibility/roving/RovingAccessibleButton.tsx +++ b/src/accessibility/roving/RovingAccessibleButton.tsx @@ -48,7 +48,7 @@ export const RovingAccessibleButton = ({ if (focusOnMouseOver) onFocusInternal(); onMouseOver?.(event); }} - inputRef={ref} + ref={ref} tabIndex={isActive ? 0 : -1} /> ); diff --git a/src/accessibility/roving/RovingAccessibleTooltipButton.tsx b/src/accessibility/roving/RovingAccessibleTooltipButton.tsx index 642329e69b7..5607089c6e2 100644 --- a/src/accessibility/roving/RovingAccessibleTooltipButton.tsx +++ b/src/accessibility/roving/RovingAccessibleTooltipButton.tsx @@ -41,7 +41,7 @@ export const RovingAccessibleTooltipButton = ); diff --git a/src/components/structures/GenericDropdownMenu.tsx b/src/components/structures/GenericDropdownMenu.tsx index 0a38db3dbe4..e0fd3b7f9b6 100644 --- a/src/components/structures/GenericDropdownMenu.tsx +++ b/src/components/structures/GenericDropdownMenu.tsx @@ -195,7 +195,7 @@ export function GenericDropdownMenu({ <> { openMenu(); diff --git a/src/components/structures/SpaceHierarchy.tsx b/src/components/structures/SpaceHierarchy.tsx index aa57114e5ac..feeacb45818 100644 --- a/src/components/structures/SpaceHierarchy.tsx +++ b/src/components/structures/SpaceHierarchy.tsx @@ -15,6 +15,7 @@ limitations under the License. */ import React, { + ComponentProps, Dispatch, KeyboardEvent, KeyboardEventHandler, @@ -349,7 +350,7 @@ const Tile: React.FC = ({ })} onClick={hasPermissions && onToggleClick ? onToggleClick : onPreviewClick} onKeyDown={onKeyDown} - inputRef={ref} + ref={ref} onFocus={onFocus} tabIndex={isActive ? 0 : -1} > @@ -664,7 +665,7 @@ const ManageButtons: React.FC = ({ hierarchy, selected, set const disabled = !selectedRelations.length || removing || saving; let Button: React.ComponentType> = AccessibleButton; - let props = {}; + let props: Partial> = {}; if (!selectedRelations.length) { Button = AccessibleTooltipButton; props = { diff --git a/src/components/structures/SpaceRoomView.tsx b/src/components/structures/SpaceRoomView.tsx index 031d44d7f10..dc79a25489a 100644 --- a/src/components/structures/SpaceRoomView.tsx +++ b/src/components/structures/SpaceRoomView.tsx @@ -196,7 +196,7 @@ const SpaceLandingAddButton: React.FC<{ space: Room }> = ({ space }) => { <> { openMenu(); diff --git a/src/components/structures/UserMenu.tsx b/src/components/structures/UserMenu.tsx index 2d82a5c412e..1ed20add205 100644 --- a/src/components/structures/UserMenu.tsx +++ b/src/components/structures/UserMenu.tsx @@ -453,7 +453,7 @@ export default class UserMenu extends React.Component { , "title" | "onClick" | "disabled" | "element"> & { +type Props = Omit< + ComponentProps, + "title" | "onClick" | "disabled" | "element" | "ref" +> & { // Playback instance to manipulate. Cannot change during the component lifecycle. playback: Playback; diff --git a/src/components/views/auth/InteractiveAuthEntryComponents.tsx b/src/components/views/auth/InteractiveAuthEntryComponents.tsx index 008f92af92b..0a7ed19b2ab 100644 --- a/src/components/views/auth/InteractiveAuthEntryComponents.tsx +++ b/src/components/views/auth/InteractiveAuthEntryComponents.tsx @@ -974,7 +974,7 @@ export class FallbackAuthEntry extends React.Component { } return (
    - + {_t("auth|uia|fallback_button")} {errorSection} diff --git a/src/components/views/context_menus/KebabContextMenu.tsx b/src/components/views/context_menus/KebabContextMenu.tsx index b81c6aef6f4..7a6b09668dd 100644 --- a/src/components/views/context_menus/KebabContextMenu.tsx +++ b/src/components/views/context_menus/KebabContextMenu.tsx @@ -39,7 +39,7 @@ export const KebabContextMenu: React.FC = ({ options, tit return ( <> - + {menuDisplayed && ( diff --git a/src/components/views/context_menus/ThreadListContextMenu.tsx b/src/components/views/context_menus/ThreadListContextMenu.tsx index 0fb3831b237..76abc23740e 100644 --- a/src/components/views/context_menus/ThreadListContextMenu.tsx +++ b/src/components/views/context_menus/ThreadListContextMenu.tsx @@ -94,7 +94,7 @@ const ThreadListContextMenu: React.FC = ({ onClick={openMenu} title={_t("right_panel|thread_list|context_menu_label")} isExpanded={menuDisplayed} - inputRef={button} + ref={button} data-testid="threadlist-dropdown-button" /> {menuDisplayed && ( diff --git a/src/components/views/dialogs/spotlight/Option.tsx b/src/components/views/dialogs/spotlight/Option.tsx index a1dc41a8524..c7d504aa0b4 100644 --- a/src/components/views/dialogs/spotlight/Option.tsx +++ b/src/components/views/dialogs/spotlight/Option.tsx @@ -35,7 +35,7 @@ export const Option: React.FC = ({ inputRef, children, endAdornment {...props} className={classNames(className, "mx_SpotlightDialog_option")} onFocus={onFocus} - inputRef={ref} + ref={ref} tabIndex={-1} aria-selected={isActive} role="option" diff --git a/src/components/views/dialogs/spotlight/TooltipOption.tsx b/src/components/views/dialogs/spotlight/TooltipOption.tsx index ef4c142f10f..2233e762d46 100644 --- a/src/components/views/dialogs/spotlight/TooltipOption.tsx +++ b/src/components/views/dialogs/spotlight/TooltipOption.tsx @@ -32,7 +32,7 @@ export const TooltipOption: React.FC = ({ inputRef, classNam {...props} className={classNames(className, "mx_SpotlightDialog_option")} onFocus={onFocus} - inputRef={ref} + ref={ref} tabIndex={-1} aria-selected={isActive} role="option" diff --git a/src/components/views/elements/AccessibleButton.tsx b/src/components/views/elements/AccessibleButton.tsx index fc54e8517a4..1eb03792b8d 100644 --- a/src/components/views/elements/AccessibleButton.tsx +++ b/src/components/views/elements/AccessibleButton.tsx @@ -14,7 +14,7 @@ limitations under the License. */ -import React, { HTMLAttributes, InputHTMLAttributes } from "react"; +import React, { forwardRef, FunctionComponent, HTMLAttributes, InputHTMLAttributes, Ref } from "react"; import classnames from "classnames"; import { getKeyBindingsManager } from "../../../KeyBindingsManager"; @@ -66,7 +66,6 @@ type DynamicElementProps = Partial< * Extends props accepted by the underlying element specified using the `element` prop. */ type Props = DynamicHtmlElementProps & { - inputRef?: React.Ref; /** * The base element type. "div" by default. */ @@ -101,22 +100,26 @@ interface RenderedElementProps extends React.InputHTMLAttributes { * as a button. Identifies the element as a button, setting proper tab * indexing and keyboard activation behavior. * + * If a ref is passed, it will be forwarded to the rendered element as specified using the `element` prop. + * * @param {Object} props react element properties * @returns {Object} rendered react */ -export default function AccessibleButton({ - element = "div" as T, - onClick, - children, - kind, - disabled, - inputRef, - className, - onKeyDown, - onKeyUp, - triggerOnMouseDown, - ...restProps -}: Props): JSX.Element { +const AccessibleButton = forwardRef(function ( + { + element = "div" as T, + onClick, + children, + kind, + disabled, + className, + onKeyDown, + onKeyUp, + triggerOnMouseDown, + ...restProps + }: Props, + ref: Ref, +): JSX.Element { const newProps: RenderedElementProps = restProps; if (disabled) { newProps["aria-disabled"] = true; @@ -170,7 +173,7 @@ export default function AccessibleButton( } // Pass through the ref - used for keyboard shortcut access to some buttons - newProps.ref = inputRef; + newProps.ref = ref; newProps.className = classnames("mx_AccessibleButton", className, { mx_AccessibleButton_hasKind: kind, @@ -180,11 +183,13 @@ export default function AccessibleButton( // React.createElement expects InputHTMLAttributes return React.createElement(element, newProps, children); -} +}); -AccessibleButton.defaultProps = { +// Type assertion required due to forwardRef type workaround in react.d.ts +(AccessibleButton as FunctionComponent).defaultProps = { role: "button", tabIndex: 0, }; +(AccessibleButton as FunctionComponent).displayName = "AccessibleButton"; -AccessibleButton.displayName = "AccessibleButton"; +export default AccessibleButton; diff --git a/src/components/views/elements/AccessibleTooltipButton.tsx b/src/components/views/elements/AccessibleTooltipButton.tsx index c561b1b8b58..0af5cc9625f 100644 --- a/src/components/views/elements/AccessibleTooltipButton.tsx +++ b/src/components/views/elements/AccessibleTooltipButton.tsx @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { SyntheticEvent, FocusEvent, useEffect, useState } from "react"; +import React, { SyntheticEvent, FocusEvent, forwardRef, useEffect, Ref, useState, ComponentProps } from "react"; import AccessibleButton from "./AccessibleButton"; import Tooltip, { Alignment } from "./Tooltip"; @@ -25,7 +25,7 @@ import Tooltip, { Alignment } from "./Tooltip"; * * Extends that of {@link AccessibleButton}. */ -type Props = React.ComponentProps> & { +type Props = ComponentProps> & { /** * Title to show in the tooltip and use as aria-label */ @@ -60,16 +60,10 @@ type Props = React.ComponentProps({ - title, - tooltip, - children, - forceHide, - alignment, - onHideTooltip, - tooltipClassName, - ...props -}: Props): JSX.Element { +const AccessibleTooltipButton = forwardRef(function ( + { title, tooltip, children, forceHide, alignment, onHideTooltip, tooltipClassName, ...props }: Props, + ref: Ref, +) { const [hover, setHover] = useState(false); useEffect(() => { @@ -108,12 +102,13 @@ function AccessibleTooltipButton({ onFocus={onFocus} onBlur={hideTooltip} aria-label={title || props["aria-label"]} + ref={ref} > {children} {props.label} {(tooltip || title) && tip} ); -} +}); export default AccessibleTooltipButton; diff --git a/src/components/views/elements/AppTile.tsx b/src/components/views/elements/AppTile.tsx index 642e2bd4769..56a1969c1b0 100644 --- a/src/components/views/elements/AppTile.tsx +++ b/src/components/views/elements/AppTile.tsx @@ -789,7 +789,7 @@ export default class AppTile extends React.Component { className="mx_AppTileMenuBar_widgets_button" label={_t("common|options")} isExpanded={this.state.menuDisplayed} - inputRef={this.contextMenuButton} + ref={this.contextMenuButton} onClick={this.onContextMenuClick} > diff --git a/src/components/views/elements/Dropdown.tsx b/src/components/views/elements/Dropdown.tsx index 0a5786a1cb2..d017ea8641a 100644 --- a/src/components/views/elements/Dropdown.tsx +++ b/src/components/views/elements/Dropdown.tsx @@ -392,7 +392,7 @@ export default class Dropdown extends React.Component { aria-haspopup="listbox" aria-expanded={this.state.expanded} disabled={this.props.disabled} - inputRef={this.buttonRef} + ref={this.buttonRef} aria-label={this.props.label} aria-describedby={`${this.props.id}_value`} aria-owns={`${this.props.id}_input`} diff --git a/src/components/views/elements/ImageView.tsx b/src/components/views/elements/ImageView.tsx index da05239746d..6f5815e95a1 100644 --- a/src/components/views/elements/ImageView.tsx +++ b/src/components/views/elements/ImageView.tsx @@ -506,7 +506,7 @@ export default class ImageView extends React.Component { className="mx_ImageView_button mx_ImageView_button_more" title={_t("common|options")} onClick={this.onOpenContextMenu} - inputRef={this.contextMenuButton} + ref={this.contextMenuButton} isExpanded={this.state.contextMenuDisplayed} /> ); diff --git a/src/components/views/elements/PollCreateDialog.tsx b/src/components/views/elements/PollCreateDialog.tsx index 6451bdcbb8c..5049a3b0162 100644 --- a/src/components/views/elements/PollCreateDialog.tsx +++ b/src/components/views/elements/PollCreateDialog.tsx @@ -248,7 +248,7 @@ export default class PollCreateDialog extends ScrollableBaseModal= MAX_OPTIONS} kind="secondary" className="mx_PollCreateDialog_addOption" - inputRef={this.addOptionRef} + ref={this.addOptionRef} > {_t("poll|options_add_button")} diff --git a/src/components/views/messages/CallEvent.tsx b/src/components/views/messages/CallEvent.tsx index 5718c7a4126..dd2e29f51c8 100644 --- a/src/components/views/messages/CallEvent.tsx +++ b/src/components/views/messages/CallEvent.tsx @@ -28,7 +28,7 @@ import { import defaultDispatcher from "../../../dispatcher/dispatcher"; import type { ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload"; import { Action } from "../../../dispatcher/actions"; -import { AccessibleButtonKind, ButtonEvent } from "../elements/AccessibleButton"; +import type { AccessibleButtonKind, ButtonEvent } from "../elements/AccessibleButton"; import MemberAvatar from "../avatars/MemberAvatar"; import { LiveContentSummary, LiveContentType } from "../rooms/LiveContentSummary"; import FacePile from "../elements/FacePile"; diff --git a/src/components/views/messages/MessageActionBar.tsx b/src/components/views/messages/MessageActionBar.tsx index 60eee55c2d0..9cf35922089 100644 --- a/src/components/views/messages/MessageActionBar.tsx +++ b/src/components/views/messages/MessageActionBar.tsx @@ -126,7 +126,7 @@ const OptionsButton: React.FC = ({ onClick={onOptionsClick} onContextMenu={onOptionsClick} isExpanded={menuDisplayed} - inputRef={button} + ref={button} onFocus={onFocus} tabIndex={isActive ? 0 : -1} > @@ -183,7 +183,7 @@ const ReactButton: React.FC = ({ mxEvent, reactions, onFocusC onClick={onClick} onContextMenu={onClick} isExpanded={menuDisplayed} - inputRef={button} + ref={button} onFocus={onFocus} tabIndex={isActive ? 0 : -1} > diff --git a/src/components/views/messages/ReactionsRow.tsx b/src/components/views/messages/ReactionsRow.tsx index 3aeee9e0ff1..e57326edd73 100644 --- a/src/components/views/messages/ReactionsRow.tsx +++ b/src/components/views/messages/ReactionsRow.tsx @@ -61,7 +61,7 @@ const ReactButton: React.FC = ({ mxEvent, reactions }) => { openMenu(); }} isExpanded={menuDisplayed} - inputRef={button} + ref={button} /> {contextMenu} diff --git a/src/components/views/right_panel/WidgetCard.tsx b/src/components/views/right_panel/WidgetCard.tsx index cbcc961b972..ca7cdebb21f 100644 --- a/src/components/views/right_panel/WidgetCard.tsx +++ b/src/components/views/right_panel/WidgetCard.tsx @@ -78,7 +78,7 @@ const WidgetCard: React.FC = ({ room, widgetId, onClose }) => { { +interface Props extends Omit, "element"> { + inputRef?: Ref; title: string; iconClassName: string; } -export const CollapsibleButton: React.FC = ({ +export const CollapsibleButton: React.FC = ({ title, children, className, iconClassName, + inputRef, ...props }) => { const inOverflowMenu = !!useContext(OverflowMenuContext); if (inOverflowMenu) { - return ; + return ; } return ( - + {children} ); diff --git a/src/components/views/rooms/LegacyRoomHeader.tsx b/src/components/views/rooms/LegacyRoomHeader.tsx index cad8cb88149..6729ba118fe 100644 --- a/src/components/views/rooms/LegacyRoomHeader.tsx +++ b/src/components/views/rooms/LegacyRoomHeader.tsx @@ -234,7 +234,7 @@ const VideoCallButton: FC = ({ room, busy, setBusy, behavi return ( <> = ({ call }) => { return ( <> v title={room.name} tooltipClassName="mx_RoomBreadcrumbs_Tooltip" onFocus={onFocus} - inputRef={ref} + ref={ref} tabIndex={isActive ? 0 : -1} > = ({ tabIndex, dispatcher = default aria-label={_t("action|add_people")} title={_t("action|add_people")} isExpanded={menuDisplayed} - inputRef={handle} + ref={handle} /> {contextMenu} @@ -356,7 +356,7 @@ const UntaggedAuxButton: React.FC = ({ tabIndex }) => { aria-label={_t("room_list|add_room_label")} title={_t("room_list|add_room_label")} isExpanded={menuDisplayed} - inputRef={handle} + ref={handle} /> {contextMenu} diff --git a/src/components/views/rooms/RoomListHeader.tsx b/src/components/views/rooms/RoomListHeader.tsx index 8f32062fb73..4f8b4f8c324 100644 --- a/src/components/views/rooms/RoomListHeader.tsx +++ b/src/components/views/rooms/RoomListHeader.tsx @@ -389,7 +389,7 @@ const RoomListHeader: React.FC = ({ onVisibilityChange }) => { let contextMenuButton: JSX.Element =
    {title}
    ; if (canShowMainMenu) { const commonProps = { - inputRef: mainMenuHandle, + ref: mainMenuHandle, onClick: openMainMenu, isExpanded: mainMenuDisplayed, className: "mx_RoomListHeader_contextMenuButton", @@ -418,7 +418,7 @@ const RoomListHeader: React.FC = ({ onVisibilityChange }) => { ) : null} {canShowPlusMenu && ( {
    ); From 07747e24d47c05d4748815bc726490984a1ccb38 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 21 Dec 2023 15:21:41 +0000 Subject: [PATCH 45/48] Switch Pill & E2EIcon to using Compound Tooltips (#12080) * Switch Pill to using Compound Tooltips Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Switch E2EIcon to using Compound Tooltips Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update tests & snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/elements/Pill.tsx | 59 +++++++----------- src/components/views/rooms/E2EIcon.tsx | 42 +++++-------- .../views/rooms/LegacyRoomHeader.tsx | 6 +- .../__snapshots__/RoomView-test.tsx.snap | 12 ++-- test/components/views/elements/Pill-test.tsx | 4 +- .../elements/__snapshots__/Pill-test.tsx.snap | 62 +++++++++++-------- .../views/messages/TextualBody-test.tsx | 4 +- .../__snapshots__/TextualBody-test.tsx.snap | 14 ++--- .../views/rooms/MemberTile-test.tsx | 23 ++++--- .../__snapshots__/MemberTile-test.tsx.snap | 8 --- 10 files changed, 105 insertions(+), 129 deletions(-) diff --git a/src/components/views/elements/Pill.tsx b/src/components/views/elements/Pill.tsx index 8129a5fe45f..9f332e29c3f 100644 --- a/src/components/views/elements/Pill.tsx +++ b/src/components/views/elements/Pill.tsx @@ -14,13 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { ReactElement, useRef, useState } from "react"; +import React, { ReactElement } from "react"; import classNames from "classnames"; import { Room, RoomMember } from "matrix-js-sdk/src/matrix"; +import { Tooltip } from "@vector-im/compound-web"; import { MatrixClientPeg } from "../../../MatrixClientPeg"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; -import Tooltip, { Alignment } from "../elements/Tooltip"; import { usePermalink } from "../../../hooks/usePermalink"; import RoomAvatar from "../avatars/RoomAvatar"; import MemberAvatar from "../avatars/MemberAvatar"; @@ -88,8 +88,6 @@ export interface PillProps { } export const Pill: React.FC = ({ type: propType, url, inMessage, room, shouldShowPillAvatar = true }) => { - const tooltipId = useRef(`mx_Pill_${Math.random()}`).current; - const [hover, setHover] = useState(false); const { event, member, onClick, resourceId, targetRoom, text, type } = usePermalink({ room, type: propType, @@ -109,15 +107,6 @@ export const Pill: React.FC = ({ type: propType, url, inMessage, room mx_EventPill: type === PillType.EventInOtherRoom || type === PillType.EventInSameRoom, }); - const onMouseOver = (): void => { - setHover(true); - }; - - const onMouseLeave = (): void => { - setHover(false); - }; - - const tip = hover && resourceId ? : null; let avatar: ReactElement | null = null; let pillText: string | null = text; @@ -155,34 +144,28 @@ export const Pill: React.FC = ({ type: propType, url, inMessage, room return null; } + const isAnchor = !!inMessage && !!url; return ( - {inMessage && url ? ( - - {avatar} - {pillText} - {tip} - - ) : ( - - {avatar} - {pillText} - {tip} - - )} + + {isAnchor ? ( +
    + {avatar} + {pillText} + + ) : ( + + {avatar} + {pillText} + + )} + ); diff --git a/src/components/views/rooms/E2EIcon.tsx b/src/components/views/rooms/E2EIcon.tsx index 92abede11cf..b6cbbe96b5b 100644 --- a/src/components/views/rooms/E2EIcon.tsx +++ b/src/components/views/rooms/E2EIcon.tsx @@ -15,12 +15,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { CSSProperties, useState } from "react"; +import React, { ComponentProps, CSSProperties } from "react"; import classNames from "classnames"; +import { Tooltip } from "@vector-im/compound-web"; import { _t, _td, TranslationKey } from "../../../languageHandler"; import AccessibleButton from "../elements/AccessibleButton"; -import Tooltip, { Alignment } from "../elements/Tooltip"; import { E2EStatus } from "../../../utils/ShieldUtils"; import { XOR } from "../../../@types/common"; @@ -48,7 +48,7 @@ interface Props { size?: number; onClick?: () => void; hideTooltip?: boolean; - tooltipAlignment?: Alignment; + tooltipSide?: ComponentProps["side"]; bordered?: boolean; } @@ -69,11 +69,9 @@ const E2EIcon: React.FC> = ({ size, onClick, hideTooltip, - tooltipAlignment, + tooltipSide, bordered, }) => { - const [hover, setHover] = useState(false); - const classes = classNames( { mx_E2EIcon: true, @@ -97,35 +95,23 @@ const E2EIcon: React.FC> = ({ style = { width: `${size}px`, height: `${size}px` }; } - const onMouseOver = (): void => setHover(true); - const onMouseLeave = (): void => setHover(false); - const label = e2eTitle ? _t(e2eTitle) : ""; - let tip: JSX.Element | undefined; - if (hover && !hideTooltip && label) { - tip = ; + let content: JSX.Element; + if (onClick) { + content = ; + } else { + content =
    ; } - if (onClick) { - return ( - - {tip} - - ); + if (!e2eTitle || hideTooltip) { + return content; } return ( -
    - {tip} -
    + + {content} + ); }; diff --git a/src/components/views/rooms/LegacyRoomHeader.tsx b/src/components/views/rooms/LegacyRoomHeader.tsx index 6729ba118fe..4d27f05cefb 100644 --- a/src/components/views/rooms/LegacyRoomHeader.tsx +++ b/src/components/views/rooms/LegacyRoomHeader.tsx @@ -780,11 +780,7 @@ export default class RoomHeader extends React.Component { const icon = this.props.viewingCall ? (
    ) : this.props.e2eStatus ? ( - + ) : // If we're expecting an E2EE status to come in, but it hasn't // yet been loaded, insert a blank div to reserve space this.client.isRoomEncrypted(this.props.room.roomId) && this.client.isCryptoEnabled() ? ( diff --git a/test/components/structures/__snapshots__/RoomView-test.tsx.snap b/test/components/structures/__snapshots__/RoomView-test.tsx.snap index 1f29fc76bb8..517d318412d 100644 --- a/test/components/structures/__snapshots__/RoomView-test.tsx.snap +++ b/test/components/structures/__snapshots__/RoomView-test.tsx.snap @@ -522,10 +522,14 @@ exports[`RoomView for a local room in state NEW that is encrypted should match t
    -
    + +
    +
    diff --git a/test/components/views/elements/Pill-test.tsx b/test/components/views/elements/Pill-test.tsx index b4ffb1ea2e8..cdde49cc560 100644 --- a/test/components/views/elements/Pill-test.tsx +++ b/test/components/views/elements/Pill-test.tsx @@ -142,8 +142,8 @@ describe("", () => { await userEvent.hover(screen.getByText("Room 1")); }); - it("should show a tooltip with the room Id", () => { - expect(screen.getByRole("tooltip", { name: room1Id })).toBeInTheDocument(); + it("should show a tooltip with the room Id", async () => { + expect(await screen.findByRole("tooltip", { name: room1Id })).toBeInTheDocument(); }); describe("when not hovering the pill any more", () => { diff --git a/test/components/views/elements/__snapshots__/Pill-test.tsx.snap b/test/components/views/elements/__snapshots__/Pill-test.tsx.snap index b9642dfd5c9..1a9ee6b8074 100644 --- a/test/components/views/elements/__snapshots__/Pill-test.tsx.snap +++ b/test/components/views/elements/__snapshots__/Pill-test.tsx.snap @@ -11,13 +11,17 @@ exports[` should not render an avatar or link when called with inMessage =
    - Room 1 + + Room 1 + @@ -30,24 +34,28 @@ exports[` should render the expected pill for @room 1`] = `
    - - @room + + + @room + @@ -60,8 +68,8 @@ exports[` should render the expected pill for a known user not in the room
    should render the expected pill for a message in another room 1`
    should render the expected pill for a message in the same room 1
    should render the expected pill for a room alias 1`] = `
    should render the expected pill for a space 1`] = `
    should render the expected pill for an uknown user not in the ro
    when rendering a pill for a room should render the expected pill
    when rendering a pill for a user in the room should render as ex
    ", () => { const { container } = getComponent({ mxEvent: ev }); const content = container.querySelector(".mx_EventTile_body"); expect(content.innerHTML).toMatchInlineSnapshot( - `"Chat with Member"`, + `"Chat with Member"`, ); }); @@ -217,7 +217,7 @@ describe("", () => { const { container } = getComponent({ mxEvent: ev }); const content = container.querySelector(".mx_EventTile_body"); expect(content.innerHTML).toMatchInlineSnapshot( - `"Visit
    #room:example.com
    "`, + `"Visit
    #room:example.com
    "`, ); }); diff --git a/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap b/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap index ac264c6fca1..383f7d55153 100644 --- a/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap +++ b/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap @@ -50,8 +50,8 @@ exports[` renders formatted m.text correctly pills appear for an renders formatted m.text correctly pills appear for eve renders formatted m.text correctly pills appear for roo renders formatted m.text correctly pills get injected c renders plain-text m.text correctly should pillify a pe >
    { const { container } = render(); - await waitFor(() => - expect(screen.getByLabelText("This user has not verified all of their sessions.")).toBeInTheDocument(), - ); expect(container).toMatchSnapshot(); + await waitFor(async () => { + await userEvent.hover(container.querySelector(".mx_E2EIcon")!); + expect( + screen.getByRole("tooltip", { name: "This user has not verified all of their sessions." }), + ).toBeInTheDocument(); + }); }); it("should display an verified E2EIcon when the e2E status = Verified", async () => { @@ -69,11 +73,14 @@ describe("MemberTile", () => { const { container } = render(); - await waitFor(() => - expect( - screen.getByLabelText("You have verified this user. This user has verified all of their sessions."), - ).toBeInTheDocument(), - ); expect(container).toMatchSnapshot(); + await waitFor(async () => { + await userEvent.hover(container.querySelector(".mx_E2EIcon")!); + expect( + screen.getByRole("tooltip", { + name: "You have verified this user. This user has verified all of their sessions.", + }), + ).toBeInTheDocument(); + }); }); }); diff --git a/test/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap b/test/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap index 4a84bea3ae2..a26d2c0fd4c 100644 --- a/test/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap +++ b/test/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap @@ -24,10 +24,6 @@ exports[`MemberTile should display an verified E2EIcon when the e2E status = Ver > u -
    u -
    Date: Thu, 21 Dec 2023 17:57:22 +0100 Subject: [PATCH 46/48] Enable `A thread with a redacted unread is still read after restart` (#12083) --- playwright/e2e/read-receipts/redactions.spec.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/playwright/e2e/read-receipts/redactions.spec.ts b/playwright/e2e/read-receipts/redactions.spec.ts index f12807d2875..1b5751acbc1 100644 --- a/playwright/e2e/read-receipts/redactions.spec.ts +++ b/playwright/e2e/read-receipts/redactions.spec.ts @@ -688,8 +688,7 @@ test.describe("Read receipts", () => { // Then the room is read await util.assertRead(room2); }); - // XXX: fails because flakes with matrix-js-sdk#3798 (only when all other tests are enabled!) - test.skip("A thread with a redacted unread is still read after restart", async ({ + test("A thread with a redacted unread is still read after restart", async ({ roomAlpha: room1, roomBeta: room2, util, From 2a3b8926f27b2505bb96f6ac55a8dadb94549d6a Mon Sep 17 00:00:00 2001 From: ElementRobot Date: Fri, 22 Dec 2023 06:27:20 +0000 Subject: [PATCH 47/48] [create-pull-request] automated change (#12085) Co-authored-by: github-merge-queue --- src/i18n/strings/de_DE.json | 13 ++++++++++++- src/i18n/strings/hu.json | 6 +++--- src/i18n/strings/ru.json | 19 ++++++++++--------- src/i18n/strings/sk.json | 14 +++++++++++--- src/i18n/strings/sv.json | 27 +++++++++++++++++++++++++++ src/i18n/strings/zh_Hans.json | 7 +++++-- 6 files changed, 68 insertions(+), 18 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index ad52743747b..4d5702a3351 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1126,6 +1126,7 @@ }, "fetching_events": "Rufe Ereignisse ab …", "file_attached": "Datei angehängt", + "format": "Format", "from_the_beginning": "Von Anfang an", "generating_zip": "ZIP-Archiv wird generiert", "html": "HTML", @@ -1145,6 +1146,7 @@ "select_option": "Wähle die gewünschten Optionen für den Export des Verlaufs", "size_limit": "Größenlimit", "size_limit_min_max": "Die Größe muss eine Zahl zwischen %(min)s MB und %(max)s MB sein", + "size_limit_postfix": "MB", "starting_export": "Beginne Export …", "successful": "Exportieren erfolgreich", "successful_detail": "Export erfolgreich. Du kannst ihn in deinem Download-Verzeichnis finden.", @@ -1557,6 +1559,7 @@ "toast_description": "%(brand)s ist in mobilen Browsern experimentell. Für eine bessere Erfahrung nutze unsere App.", "toast_title": "Nutze die App für eine bessere Erfahrung" }, + "name_and_id": "%(name)s (%(userId)s)", "no_more_results": "Keine weiteren Ergebnisse", "notif_panel": { "empty_description": "Du hast keine sichtbaren Benachrichtigungen.", @@ -1565,9 +1568,11 @@ "notifications": { "all_messages": "Alle Nachrichten", "all_messages_description": "Bei jeder Nachricht benachrichtigen", + "class_global": "Global", "class_other": "Sonstiges", "colour_bold": "Fett", "colour_grey": "Grau", + "colour_muted": "Stumm", "colour_none": "Nichts", "colour_red": "Rot", "colour_unsent": "Nicht gesendet", @@ -1904,6 +1909,7 @@ "video_call_ec_layout_spotlight": "Rampenlicht", "video_room_view_chat_button": "Nachrichtenverlauf anzeigen" }, + "header_untrusted_label": "Nicht vertrauenswürdig", "inaccessible": "Dieser Raum oder Space ist im Moment nicht zugänglich.", "inaccessible_name": "Auf %(roomName)s kann momentan nicht zugegriffen werden.", "inaccessible_subtitle_1": "Versuche es später erneut oder bitte einen Raum- oder Space-Admin um eine Zutrittserlaubnis.", @@ -2000,7 +2006,7 @@ "server_connectivity_lost_title": "Verbindung zum Server wurde unterbrochen.", "some_messages_not_sent": "Einige Nachrichten konnten nicht gesendet werden" }, - "unknown_status_code_for_timeline_jump": "Unbekannter Statuscode", + "unknown_status_code_for_timeline_jump": "unbekannter Statuscode", "unread_notifications_predecessor": { "one": "Du hast %(count)s ungelesene Benachrichtigungen in einer früheren Version dieses Raumes.", "other": "Du hast %(count)s ungelesene Benachrichtigungen in einer früheren Version dieses Raums." @@ -2875,6 +2881,7 @@ "error_invalid_rendering_type": "Befehlsfehler: Rendering-Typ kann nicht gefunden werden (%(renderingType)s)", "error_invalid_room": "Eingabe fehlgeschlagen: Raum (%(roomId)s) nicht auffindbar", "error_invalid_runfn": "Befehlsfehler: Slash-Befehl kann nicht verarbeitet werden.", + "error_invalid_user_in_room": "Kann Benutzer in Raum nicht finden", "help": "Zeigt die Liste verfügbarer Befehle mit Verwendungen und Beschreibungen an", "help_dialog_title": "Befehl Hilfe", "holdcall": "Den aktuellen Anruf halten", @@ -3148,6 +3155,7 @@ "creation_summary_dm": "%(creator)s hat diese Direktnachricht erstellt.", "creation_summary_room": "%(creator)s hat den Raum erstellt und konfiguriert.", "decryption_failure_blocked": "Der Absender hat dich vom Erhalt dieser Nachricht ausgeschlossen", + "disambiguated_profile": "%(displayName)s (%(matrixId)s)", "download_action_decrypting": "Entschlüsseln", "download_action_downloading": "Herunterladen", "edits": { @@ -3159,6 +3167,7 @@ "error_no_renderer": "Dieses Ereignis konnte nicht angezeigt werden", "error_rendering_message": "Diese Nachricht kann nicht geladen werden", "historical_messages_unavailable": "Du kannst keine älteren Nachrichten lesen", + "in_room_name": " in %(room)s", "io.element.voice_broadcast_info": { "user": "%(senderName)s beendete eine Sprachübertragung", "you": "Du hast eine Sprachübertragung beendet" @@ -3392,6 +3401,7 @@ "pending_moderation_reason": "Nachricht erwartet Moderation: %(reason)s", "reactions": { "add_reaction_prompt": "Reaktion hinzufügen", + "custom_reaction_fallback_label": "Benutzerdefinierte Reaktion", "label": "%(reactors)s hat mit %(content)s reagiert", "tooltip": "hat mit %(shortName)s reagiert" }, @@ -3951,6 +3961,7 @@ "l33t": "Vorhersagbare Ersetzungen wie „@“ anstelle von „a“ helfen nicht besonders", "longerKeyboardPattern": "Nutze ein längeres Tastaturmuster mit mehr Abwechslung", "noNeed": "Kein Bedarf an Symbolen, Zahlen oder Großbuchstaben", + "pwned": "Wenn Sie dieses Passwort woanders verwenden, sollten Sie es ändern.", "recentYears": "Vermeide die letzten Jahre", "repeated": "Vermeide wiederholte Worte und Zeichen", "reverseWords": "Umgedrehte Worte sind nicht schwerer zu erraten", diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index f0901f13f25..66ee3a55c44 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -94,7 +94,7 @@ "reply": "Válasz", "reply_in_thread": "Válasz üzenetszálban", "report_content": "Tartalom jelentése", - "resend": "Újraküdés", + "resend": "Újraküldés", "reset": "Visszaállítás", "restore": "Visszaállítás", "resume": "Folytatás", @@ -110,7 +110,7 @@ "show_all": "Összes megjelenítése", "sign_in": "Bejelentkezés", "sign_out": "Kijelentkezés", - "skip": "Kihagy", + "skip": "Kihagyás", "start": "Indítás", "start_chat": "Csevegés indítása", "start_new_chat": "Új beszélgetés indítása", @@ -480,7 +480,7 @@ "microphone": "Mikrofon", "model": "Modell", "modern": "Modern", - "mute": "Elnémít", + "mute": "Némítás", "n_members": { "one": "%(count)s tag", "other": "%(count)s tag" diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 2414e4efa0e..27e88252cd2 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -957,7 +957,7 @@ "incoming_sas_device_dialog_text_1": "Подтвердите это устройство, чтобы сделать его доверенным. Доверие этому устройству дает вам и другим пользователям дополнительное спокойствие при использовании зашифрованных сообщений.", "incoming_sas_device_dialog_text_2": "Проверка этого устройства пометит его как доверенное, и пользователи, которые проверили его вместе с вами, будут доверять этому устройству.", "incoming_sas_dialog_title": "Входящий запрос о проверке", - "incoming_sas_dialog_waiting": "Ожидаем подтверждения от партнера...", + "incoming_sas_dialog_waiting": "Ожидаем подтверждения от партнера…", "incoming_sas_user_dialog_text_1": "Проверить этого пользователя, чтобы отметить его, как доверенного. Доверенные пользователи дают вам больше уверенности при использовании шифрованных сообщений.", "incoming_sas_user_dialog_text_2": "Подтверждение этого пользователя сделает его сеанс доверенным у вас, а также сделает ваш сеанс доверенным у него.", "manual_device_verification_device_id_label": "ID сеанса", @@ -1053,7 +1053,7 @@ "storage_evicted_description_1": "Отсутствуют некоторые данные сеанса, в том числе ключи шифрования сообщений. Выйдите и войдите снова, чтобы восстановить ключи из резервной копии.", "storage_evicted_description_2": "Вероятно, ваш браузер удалил эти данные, когда на дисковом пространстве оставалось мало места.", "storage_evicted_title": "Отсутствуют данные сеанса", - "sync": "Невозможно подключиться к Homeserver. Повторная попытка...", + "sync": "Невозможно подключиться к Homeserver. Повторная попытка…", "tls": "Не удается подключиться к домашнему серверу — проверьте подключение, убедитесь, что ваш SSL-сертификат домашнего сервера является доверенным и что расширение браузера не блокирует запросы.", "unknown": "Неизвестная ошибка", "unknown_error_code": "неизвестный код ошибки", @@ -1298,8 +1298,9 @@ }, "inviting_user1_and_user2": "Приглашение %(user1)s и %(user2)s", "inviting_user_and_n_others": { - "one": "Приглашающий %(user)s и 1 других", - "other": "Приглашение %(user)s и %(count)s других" + "one": "Приглашаем %(user)s", + "few": "Приглашаем %(user)s и еще %(count)s пользователей", + "many": "Приглашаем %(user)s и еще %(count)s пользователей" }, "items_and_n_others": { "other": " и ещё %(count)s участника(-ов)", @@ -3097,7 +3098,7 @@ "column_document": "Документ", "column_service": "Сервис", "column_summary": "Сводка", - "identity_server_no_terms_description_1": "Это действие требует по умолчанию доступа к серверу идентификации для подтверждения адреса электронной почты или номера телефона, но у сервера нет никакого пользовательского соглашения.", + "identity_server_no_terms_description_1": "Это действие требует по умолчанию доступа к серверу идентификации для подтверждения адреса электронной почты или номера телефона, но у сервера нет никакого пользовательского соглашения.", "identity_server_no_terms_description_2": "Продолжайте, только если доверяете владельцу сервера.", "identity_server_no_terms_title": "Сервер идентификации не имеет условий предоставления услуг", "inline_intro_text": "Примите для продолжения:", @@ -3448,9 +3449,9 @@ "dialog_title": "Добавить интеграцию" }, "self_redaction": "Сообщение удалено", - "send_state_encrypting": "Шифрование сообщения...", + "send_state_encrypting": "Шифрование сообщения…", "send_state_failed": "Не удалось отправить", - "send_state_sending": "Отправка сообщения...", + "send_state_sending": "Отправка сообщения…", "send_state_sent": "Ваше сообщение было отправлено", "summary": { "banned": { @@ -3733,7 +3734,7 @@ }, "voice_broadcast": { "30s_backward": "30 с назад", - "30s_forward": "30 с вперёд", + "30s_forward": "30с вперёд", "action": "Голосовая трансляция", "buffering": "Буферизация…", "confirm_listen_affirm": "Да, закончить мою запись", @@ -3846,7 +3847,7 @@ "unable_to_access_media": "Невозможно получить доступ к веб-камере / микрофону", "unable_to_access_microphone": "Нет доступа к микрофону", "unknown_caller": "Неизвестный абонент", - "unknown_person": "Неизвестное лицо", + "unknown_person": "неизвестное лицо", "unsilence": "Звук включен", "unsupported": "Вызовы не поддерживаются", "unsupported_browser": "Вы не можете совершать вызовы в этом браузере.", diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index d6aaa89de9e..e981af2e9e4 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -761,6 +761,8 @@ "room_status": "Stav miestnosti", "room_unread_status": "Stav neprečítaných v miestnosti: %(status)s", "room_unread_status_count": { + "one": "Stav neprečítaných v miestnosti: %(status)s, počet: %(count)s", + "few": "Stav neprečítaných v miestnosti: %(status)s, počet: %(count)s", "other": "Stav neprečítaných v miestnosti: %(status)s, počet: %(count)s" }, "save_setting_values": "Uložiť hodnoty nastavenia", @@ -1058,6 +1060,7 @@ "update_power_level": "Nepodarilo sa zmeniť úroveň oprávnenia" }, "error_app_open_in_another_tab": "Aplikácia %(brand)s bola otvorená na inej karte.", + "error_app_open_in_another_tab_title": "%(brand)s je pripojený na inej karte", "error_app_opened_in_another_window": "%(brand)s je otvorený v inom okne. Kliknutím na \"%(label)s\" použijete túto aplikáciu %(brand)s a odpojíte druhé okno.", "error_database_closed_description": "Môže to byť spôsobené otvorením aplikácie na viacerých kartách alebo vymazaním údajov prehliadača.", "error_database_closed_title": "Databáza sa neočakávane zatvorila", @@ -1402,6 +1405,7 @@ "element_call_video_rooms": "Element Call video miestnosti", "experimental_description": "Chcete experimentovať? Vyskúšajte naše najnovšie nápady vo vývojovom štádiu. Tieto funkcie nie sú dokončené; môžu byť nestabilné, môžu sa zmeniť alebo môžu byť úplne zrušené. Zistiť viac.", "experimental_section": "Predbežné ukážky", + "feature_disable_call_per_sender_encryption": "Zakázať šifrovanie pre jednotlivých odosielateľov pre Element Call", "feature_wysiwyg_composer_description": "Použiť rozšírený text namiesto Markdown v správach.", "group_calls": "Nový zážitok zo skupinových hovorov", "group_developer": "Vývojárske", @@ -1938,6 +1942,7 @@ "show_widgets_button": "Zobraziť widgety", "video_call_button_ec": "Videohovor (%(brand)s)", "video_call_button_jitsi": "Videohovor (Jitsi)", + "video_call_button_legacy": "Starší typ videohovoru", "video_call_ec_change_layout": "Zmeniť rozloženie", "video_call_ec_layout_freedom": "Sloboda", "video_call_ec_layout_spotlight": "Stredobod", @@ -2403,6 +2408,7 @@ "all_rooms_home_description": "Všetky miestnosti, v ktorých sa nachádzate, sa zobrazia na domovskej obrazovke.", "always_show_message_timestamps": "Vždy zobrazovať časovú značku správ", "appearance": { + "bundled_emoji_font": "Použiť pribalené písmo emotikonov", "custom_font": "Použiť systémové písmo", "custom_font_description": "Nastavte názov písma, ktoré máte nainštalované na vašom systéme & %(brand)s sa ho pokúsi použiť.", "custom_font_name": "Meno systémového písma", @@ -3480,8 +3486,9 @@ "other": "mali %(count)s-krát zakázaný vstup" }, "changed_avatar": { - "other": "%(oneUser)s si zmenil svoj profilový obrázok %(count)s-krát", - "one": "%(oneUser)s zmenil/a svoj profilový obrázok" + "one": "%(oneUser)s zmenil/a svoj profilový obrázok", + "few": "%(oneUser)s si zmenil svoj profilový obrázok %(count)s-krát", + "other": "%(oneUser)s si zmenil svoj profilový obrázok %(count)s-krát" }, "changed_avatar_multiple": { "one": "%(severalUsers)szmenilo svoj profilový obrázok", @@ -3573,7 +3580,8 @@ }, "no_change_multiple": { "one": "%(severalUsers)snespravili žiadne zmeny", - "other": "%(severalUsers)s nevykonali žiadne zmeny %(count)s krát" + "few": "%(severalUsers)s nevykonali žiadne zmeny %(count)s-krát", + "other": "%(severalUsers)s nevykonali žiadne zmeny %(count)s-krát" }, "pinned_events": { "other": "%(oneUser)szmenil pripnuté správy v miestnosti %(count)s krát", diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index 693b542145c..51118a8f78e 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -1057,6 +1057,7 @@ "update_power_level": "Misslyckades att ändra behörighetsnivå" }, "error_app_open_in_another_tab": "%(brand)s har öppnats in en annan flik.", + "error_app_open_in_another_tab_title": "%(brand)s är ansluten i en annan flik", "error_app_opened_in_another_window": "%(brand)s är öppen i ett annat fönster. Klicka på \"%(label)s\" för att använda %(brand)s här och koppla bort det andra fönstret.", "error_database_closed_description": "Det här kan orsakas av att ha appen öppen i flera flikar eller av rensning av webbläsardata.", "error_database_closed_title": "Databasen stängdes oväntat", @@ -1932,6 +1933,7 @@ "show_widgets_button": "Visa widgets", "video_call_button_ec": "Videosamtal (%(brand)s)", "video_call_button_jitsi": "Videosamtal (Jitsi)", + "video_call_button_legacy": "Äldre videosamtalsmetod", "video_call_ec_change_layout": "Byt utseende", "video_call_ec_layout_freedom": "Frihet", "video_call_ec_layout_spotlight": "Rampljus", @@ -2397,6 +2399,7 @@ "all_rooms_home_description": "Alla rum du är in kommer att visas i Hem.", "always_show_message_timestamps": "Visa alltid tidsstämplar för meddelanden", "appearance": { + "bundled_emoji_font": "Använd medföljande emoji-teckensnitt", "custom_font": "Använd systemets teckensnitt", "custom_font_description": "Sätt namnet för ett teckensnitt installerat på ditt system så kommer %(brand)s att försöka använda det.", "custom_font_name": "Namn på systemets teckensnitt", @@ -2649,6 +2652,7 @@ "security": { "4s_public_key_in_account_data": "i kontodata", "4s_public_key_status": "Publik nyckel för hemlig lagring:", + "analytics_description": "Dela anonyma data för att hjälpa oss att identifiera problem. Inget personligt. Inga tredje parter.", "backup_key_cached_status": "Cachad säkerhetskopieringsnyckel:", "backup_key_stored_status": "Lagrad säkerhetskopieringsnyckel:", "backup_key_unexpected_type": "oväntad typ", @@ -2684,14 +2688,17 @@ "ignore_users_section": "Ignorerade användare", "import_megolm_keys": "Importera rumskrypteringsnycklar", "key_backup_active": "Den här sessionen säkerhetskopierar dina nycklar.", + "key_backup_active_version": "Aktiv säkerhetskopieringsversion:", "key_backup_active_version_none": "Ingen", "key_backup_algorithm": "Algoritm:", + "key_backup_can_be_restored": "Säkerhetskopian kan återställas på den här sessionen", "key_backup_complete": "Alla nycklar säkerhetskopierade", "key_backup_connect": "Anslut den här sessionen till nyckelsäkerhetskopiering", "key_backup_connect_prompt": "Anslut den här sessionen till nyckelsäkerhetskopiering innan du loggar ut för att undvika att du blir av med nycklar som kanske bara finns på den här sessionen.", "key_backup_in_progress": "Säkerhetskopierar %(sessionsRemaining)s nycklar …", "key_backup_inactive": "Den här servern säkerhetskopierar inte dina nycklar, men du har en existerande säkerhetskopia du kan återställa ifrån och lägga till till i framtiden.", "key_backup_inactive_warning": "Dina nycklar säkerhetskopieras inte från den här sessionen.", + "key_backup_latest_version": "Senaste säkerhetskopieringsversionen på servern:", "manually_verify_all_sessions": "Verifiera alla fjärrsessioner manuellt", "message_search_disable_warning": "Om den är inaktiverad visas inte meddelanden från krypterade rum i sökresultaten.", "message_search_disabled": "Cachar krypterade meddelanden säkert lokalt för att de ska visas i sökresultat.", @@ -2725,6 +2732,7 @@ "send_read_receipts_unsupported": "Din server stöder inte inaktivering av läskvitton.", "send_typing_notifications": "Skicka \"skriver\"-statusar", "sessions": { + "best_security_note": "För bästa säkerhet, verifiera dina sessioner och logga ut från sessioner som du inte känner igen eller använder längre.", "browser": "Webbläsare", "confirm_sign_out": { "one": "Bekräfta utloggning av denna enhet", @@ -2750,6 +2758,7 @@ "device_verified_description": "Den här sessionen är redo för säkra meddelanden.", "device_verified_description_current": "Din nuvarande session är redo för säkra meddelanden.", "error_pusher_state": "Misslyckades att sätta pusharläge", + "error_set_name": "Misslyckades att ange sessionsnamn", "filter_all": "Alla", "filter_inactive": "Inaktiv", "filter_inactive_description": "Inaktiv i %(inactiveAgeDays)s dagar eller längre", @@ -2810,6 +2819,7 @@ "unverified_sessions_explainer_1": "Overifierade sessioner är sessioner där du har loggat in med dina uppgifter men som inte har korsverifierats.", "unverified_sessions_explainer_2": "Du bör speciellt försäkra dig om att du känner igen alla dessa sessioner eftersom att de kan representera en oauktoriserad användning av ditt konto.", "unverified_sessions_list_description": "Verifiera dina sessioner för förbättrad säker meddelandehantering eller logga ut ur de du inte känner igen eller använder längre.", + "url": "URL", "verified_session": "Verifierad session", "verified_sessions": "Verifierade sessioner", "verified_sessions_explainer_1": "Verifierade sessioner är alla ställen där du använder det här kontot efter att ha angett din lösenfras eller bekräftat din identitet med en annan verifierad session.", @@ -2837,6 +2847,7 @@ "metaspaces_orphans_description": "Gruppera alla dina rum som inte är en del av ett utrymme på ett ställe.", "metaspaces_people_description": "Gruppera alla dina personer på ett ställe.", "metaspaces_subsection": "Utrymmen att visa", + "spaces_explainer": "Utrymmen är sätt att gruppera rum och personer. Vid sidan av de utrymmen du befinner dig i kan du också använda några förbyggda.", "title": "Sidofält" }, "start_automatically": "Starta automatiskt vid systeminloggning", @@ -2899,7 +2910,9 @@ "devtools": "Öppna dialogrutan Utvecklarverktyg", "discardsession": "Tvingar den aktuella externa gruppsessionen i ett krypterat rum att överges", "error_invalid_rendering_type": "Kommandofel: Kunde inte hitta renderingstyp (%(renderingType)s)", + "error_invalid_room": "Kommandot misslyckades: Kunde inte hitta rum (%(roomId)s)", "error_invalid_runfn": "Kommandofel: Kunde inte hantera snedstreckskommando.", + "error_invalid_user_in_room": "Kunde inte hitta användaren i rummet", "help": "Visar lista över kommandon med användande beskrivningar", "help_dialog_title": "Kommandohjälp", "holdcall": "Parkerar samtalet i det aktuella rummet", @@ -3067,6 +3080,8 @@ "other": "%(count)s medlemmar" }, "create_new_room_button": "Skapa nytt rum", + "failed_querying_public_rooms": "Misslyckades med att fråga efter offentliga rum", + "failed_querying_public_spaces": "Underlåtit att fråga efter offentliga utrymmen", "group_chat_section_title": "Andra alternativ", "heading_with_query": "Använd \"%(query)s\" för att söka", "heading_without_query": "Sök efter", @@ -3075,6 +3090,7 @@ "message_search_section_title": "Andra sökningar", "other_rooms_in_space": "Andra rum i %(spaceName)s", "public_rooms_label": "Offentliga rum", + "public_spaces_label": "Offentliga utrymmen", "recent_searches_section_title": "Nyliga sökningar", "recently_viewed_section_title": "Nyligen sedda", "remove_filter": "Ta bort sökfilter för %(filter)s", @@ -3172,6 +3188,7 @@ "creation_summary_dm": "%(creator)s skapade den här DM:en.", "creation_summary_room": "%(creator)s skapade och konfigurerade rummet.", "decryption_failure_blocked": "Avsändaren har blockerat dig från att ta emot det här meddelandet", + "disambiguated_profile": "%(displayName)s (%(matrixId)s)", "download_action_decrypting": "Avkrypterar", "download_action_downloading": "Laddar ner", "edits": { @@ -3189,6 +3206,7 @@ "you": "Du avslutade en röstsändning" }, "io.element.widgets.layout": "%(senderName)s har uppdaterat rummets arrangemang", + "late_event_separator": "Ursprungligen skickad %(dateTime)s", "load_error": { "no_permission": "Försökte ladda en viss punkt i det här rummets tidslinje, men du är inte behörig att visa det aktuella meddelandet.", "title": "Misslyckades att hämta positionen på tidslinjen", @@ -3292,6 +3310,8 @@ "m.room.encryption": { "disable_attempt": "Ignorerade försök att inaktivera kryptering", "disabled": "Kryptering är inte aktiverad", + "enabled": "Meddelanden i det här rummet är totalsträckskrypterade. När personer går med kan du verifiera dem i deras profil genom att trycka på deras profilbild.", + "enabled_dm": "Meddelanden här är totalsträckskrypterade. Verifiera %(displayName)s i deras profil - tryck på deras profilbild.", "enabled_local": "Meddelanden i den här chatten kommer att vara totalsträckskypterade.", "parameters_changed": "Vissa krypteringsparametrar har ändrats.", "unsupported": "Krypteringen som används i det här rummet stöds inte." @@ -3389,6 +3409,8 @@ "label": "Meddelandeåtgärder", "view_in_room": "Visa i rum" }, + "message_timestamp_received_at": "Mottagen vid: %(dateTime)s", + "message_timestamp_sent_at": "Skickat vid: %(dateTime)s", "mjolnir": { "changed_rule_glob": "%(senderName)s uppdaterade en bannregel som matchade %(oldGlob)s till att matcha %(newGlob)s på grund av %(reason)s", "changed_rule_rooms": "%(senderName)s ändrade en regel som bannade rum som matchade %(oldGlob)s till att matcha %(newGlob)s på grund av %(reason)s", @@ -3415,6 +3437,7 @@ "pending_moderation_reason": "Meddelandet inväntar moderering: %(reason)s", "reactions": { "add_reaction_prompt": "Lägg till reaktion", + "custom_reaction_fallback_label": "Anpassad reaktion", "label": "%(reactors)s reagerade med %(content)s", "tooltip": "reagerade med %(shortName)s" }, @@ -3950,6 +3973,7 @@ }, "popout": "Poppa ut widget", "set_room_layout": "Sätt mitt rumsarrangemang för alla", + "shared_data_avatar": "URL för din profilbild", "shared_data_device_id": "Ditt enhets-ID", "shared_data_lang": "Ditt språk", "shared_data_mxid": "Ditt användar-ID", @@ -3974,6 +3998,7 @@ "l33t": "Förutsägbara ersättningar som '@' istället för 'a' hjälper inte särskilt mycket", "longerKeyboardPattern": "Använd ett längre tangentbordsmönster med fler riktningsbyten", "noNeed": "Specialtecken, siffror eller stora bokstäver behövs inte", + "pwned": "Om du använder det här lösenordet någon annanstans bör du ändra det.", "recentYears": "Undvik nyliga år", "repeated": "Undvik upprepade ord och bokstäver", "reverseWords": "Ord skrivna baklänges är inte mycket svårare att gissa", @@ -3987,6 +4012,7 @@ "extendedRepeat": "Upprepningar som \"abcabcabc\" är bara aningen svårare att gissa än \"abc\"", "keyPattern": "Korta tangentbordsmönster är enkla att gissa", "namesByThemselves": "Enstaka för- och efternamn är enkla att gissa", + "pwned": "Ditt lösenord avslöjades av ett dataintrång på Internet.", "recentYears": "Nyliga årtal är enkla att gissa", "sequences": "Sekvenser som abc eller 6543 är enkla att gissa", "similarToCommon": "Det här liknar ett vanligt lösenord", @@ -3994,6 +4020,7 @@ "straightRow": "Raka rader på tangentbordet är enkla att gissa", "topHundred": "Det här är ett av de 100 vanligaste lösenorden", "topTen": "Det här är ett av de 10 vanligaste lösenorden", + "userInputs": "Det bör inte finnas några personliga eller sidrelaterade data.", "wordByItself": "Enstaka ord är enkla att gissa" } } diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 7502a2faf7f..8f627f15702 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -273,13 +273,13 @@ "reset_password_email_field_required_invalid": "输入邮件地址(此家服务器上必须)", "reset_password_email_not_associated": "你的电子邮件地址似乎未与服务器上的Matrix ID关联。", "reset_password_email_not_found_title": "未找到此邮箱地址", - "server_picker_custom": "其他家服务器", + "server_picker_custom": "其他自定义服务器", "server_picker_description": "你可以使用自定义服务器选项来指定不同的家服务器URL以登录其他Matrix服务器。这让你能把%(brand)s和不同家服务器上的已有Matrix账户搭配使用。", "server_picker_description_matrix.org": "免费加入最大的公共服务器,成为数百万用户中的一员", "server_picker_dialog_title": "决定账户托管位置", "server_picker_explainer": "使用你偏好的Matrix家服务器,如果你有的话,或自己架设一个。", "server_picker_failed_validate_homeserver": "无法验证家服务器", - "server_picker_intro": "我们将您可以托管账户的地方称为“家服务器”。", + "server_picker_intro": "我们将您可以托管账户的地方称为“服务器组”。", "server_picker_invalid_url": "URL 无效", "server_picker_learn_more": "关于家服务器", "server_picker_matrix.org": "Matrix.org 是世界上最大的公共家服务器,因此对许多人来说是一个好地方。", @@ -563,6 +563,9 @@ "format_strikethrough": "删除线", "format_underline": "下划线", "format_unordered_list": "无序列表", + "link_modal": { + "link_field_label": "链接" + }, "no_perms_notice": "你没有在此房间发送消息的权限", "placeholder": "发送消息…", "placeholder_encrypted": "发送加密消息……", From 045f96fd581ddb8d356a99a6015361084232a5b0 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 22 Dec 2023 15:51:24 +0000 Subject: [PATCH 48/48] Allow element-web hash to be specified when calling playwright tests workflow (#12087) --- .github/workflows/element-web.yaml | 7 ++++++- scripts/ci/layered.sh | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/element-web.yaml b/.github/workflows/element-web.yaml index 7b085d892df..0582ff4e52e 100644 --- a/.github/workflows/element-web.yaml +++ b/.github/workflows/element-web.yaml @@ -29,6 +29,10 @@ on: type: string required: false description: "The Git SHA of matrix-js-sdk to build against. By default, will use a matching branch name if it exists, or develop." + element-web-sha: + type: string + required: false + description: "The Git SHA of element-web to build against. By default, will use a matching branch name if it exists, or develop." concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} @@ -55,8 +59,9 @@ jobs: - name: Fetch layered build id: layered_build env: - # tell layered.sh to check out the right sha of the JS-SDK, if we were given one + # tell layered.sh to check out the right sha of the JS-SDK & EW, if they were given one JS_SDK_GITHUB_BASE_REF: ${{ inputs.matrix-js-sdk-sha }} + ELEMENT_WEB_GITHUB_BASE_REF: ${{ inputs.element-web-sha }} run: | scripts/ci/layered.sh JSSDK_SHA=$(git -C matrix-js-sdk rev-parse --short=12 HEAD) diff --git a/scripts/ci/layered.sh b/scripts/ci/layered.sh index b55cb776478..aeb3694de15 100755 --- a/scripts/ci/layered.sh +++ b/scripts/ci/layered.sh @@ -42,6 +42,7 @@ yarn install --frozen-lockfile # Finally, set up element-web scripts/fetchdep.sh vector-im element-web develop pushd element-web +[ -n "$ELEMENT_WEB_GITHUB_BASE_REF" ] && git fetch --depth 1 origin $ELEMENT_WEB_GITHUB_BASE_REF && git checkout $ELEMENT_WEB_GITHUB_BASE_REF yarn link matrix-js-sdk yarn link matrix-react-sdk yarn install --frozen-lockfile