diff --git a/lerna.json b/lerna.json index faedd55ccb..df0fbd8dfc 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "3.4.1", + "version": "3.4.2", "npmClient": "yarn", "concurrency": 20, "command": { diff --git a/packages/backend-core/src/sql/sql.ts b/packages/backend-core/src/sql/sql.ts index 334f1efdd4..7791ecb28b 100644 --- a/packages/backend-core/src/sql/sql.ts +++ b/packages/backend-core/src/sql/sql.ts @@ -388,7 +388,7 @@ class InternalBuilder { } } - if (typeof input === "string") { + if (typeof input === "string" && schema.type === FieldType.DATETIME) { if (isInvalidISODateString(input)) { return null } diff --git a/packages/bbui/src/Actions/click_outside.ts b/packages/bbui/src/Actions/click_outside.ts index 248a03039e..0c2eb036bc 100644 --- a/packages/bbui/src/Actions/click_outside.ts +++ b/packages/bbui/src/Actions/click_outside.ts @@ -34,7 +34,7 @@ let candidateTarget: HTMLElement | undefined // Processes a "click outside" event and invokes callbacks if our source element // is valid const handleClick = (e: MouseEvent) => { - const target = e.target as HTMLElement + const target = (e.target || e.relatedTarget) as HTMLElement // Ignore click if this is an ignored class if (target.closest('[data-ignore-click-outside="true"]')) { @@ -91,9 +91,19 @@ const handleMouseDown = (e: MouseEvent) => { document.addEventListener("click", handleMouseUp, true) } +// Handle iframe clicks by detecting a loss of focus on the main window +const handleBlur = () => { + if (document.activeElement?.tagName === "IFRAME") { + handleClick( + new MouseEvent("click", { relatedTarget: document.activeElement }) + ) + } +} + // Global singleton listeners for our events document.addEventListener("mousedown", handleMouseDown) document.addEventListener("contextmenu", handleClick) +window.addEventListener("blur", handleBlur) /** * Adds or updates a click handler diff --git a/packages/server/src/api/routes/tests/search.spec.ts b/packages/server/src/api/routes/tests/search.spec.ts index c3b274d5f4..ee372914d7 100644 --- a/packages/server/src/api/routes/tests/search.spec.ts +++ b/packages/server/src/api/routes/tests/search.spec.ts @@ -1040,6 +1040,12 @@ if (descriptions.length) { string: { name: "FO" }, }).toContainExactly([{ name: "foo" }]) }) + + it("should not coerce string to date for string columns", async () => { + await expectQuery({ + string: { name: "2020-01-01" }, + }).toFindNothing() + }) }) describe("range", () => {