From d6c237ae40aec7108e3af1940a6efab518f3fca9 Mon Sep 17 00:00:00 2001 From: smackup <114156491+smackup@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:12:14 +0300 Subject: [PATCH 1/6] Allows to paste from clipboard to field under cursor --- packages/forms/resources/views/components/file-upload.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/forms/resources/views/components/file-upload.blade.php b/packages/forms/resources/views/components/file-upload.blade.php index c561c276a5a..8faee27a346 100644 --- a/packages/forms/resources/views/components/file-upload.blade.php +++ b/packages/forms/resources/views/components/file-upload.blade.php @@ -101,6 +101,8 @@ })" wire:ignore x-ignore + @mouseover="pond.allowPaste = true" + @mouseleave="pond.allowPaste = false" {{ $attributes ->merge([ From 596bc7502aa3a401b0dc4bfc4a1a752615919268 Mon Sep 17 00:00:00 2001 From: smackup <114156491+smackup@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:19:37 +0300 Subject: [PATCH 2/6] Fix error "No synthesizer found for key" --- packages/forms/resources/js/components/key-value.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/forms/resources/js/components/key-value.js b/packages/forms/resources/js/components/key-value.js index 033faf62452..a5e6df6fcfe 100644 --- a/packages/forms/resources/js/components/key-value.js +++ b/packages/forms/resources/js/components/key-value.js @@ -81,6 +81,7 @@ export default function keyValueFormComponent({ state }) { let rows = [] for (let [key, value] of Object.entries(this.state ?? {})) { + key = String(key).replace(/\./g, '\.') rows.push({ key, value, From 81a5efed099d0e844964e463d533f196386e259c Mon Sep 17 00:00:00 2001 From: smackup <114156491+smackup@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:19:37 +0300 Subject: [PATCH 3/6] Fix error "No synthesizer found for key" --- packages/forms/resources/js/components/key-value.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/forms/resources/js/components/key-value.js b/packages/forms/resources/js/components/key-value.js index 033faf62452..a5e6df6fcfe 100644 --- a/packages/forms/resources/js/components/key-value.js +++ b/packages/forms/resources/js/components/key-value.js @@ -81,6 +81,7 @@ export default function keyValueFormComponent({ state }) { let rows = [] for (let [key, value] of Object.entries(this.state ?? {})) { + key = String(key).replace(/\./g, '\.') rows.push({ key, value, From 5e39187ffb70ca1a1641b2cc364d4c99cb23a0ff Mon Sep 17 00:00:00 2001 From: smackup <114156491+smackup@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:22:27 +0300 Subject: [PATCH 4/6] Revert "Merge branch '3.x' of https://github.com/smackup/filament into 3.x" This reverts commit b110b5aec7c5303596cc1d8c0c358e62465272e3, reversing changes made to 81a5efed099d0e844964e463d533f196386e259c. --- packages/forms/resources/views/components/file-upload.blade.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/forms/resources/views/components/file-upload.blade.php b/packages/forms/resources/views/components/file-upload.blade.php index 8faee27a346..c561c276a5a 100644 --- a/packages/forms/resources/views/components/file-upload.blade.php +++ b/packages/forms/resources/views/components/file-upload.blade.php @@ -101,8 +101,6 @@ })" wire:ignore x-ignore - @mouseover="pond.allowPaste = true" - @mouseleave="pond.allowPaste = false" {{ $attributes ->merge([ From 8d70d0be3066431c2533c8c4f314767e08ea022f Mon Sep 17 00:00:00 2001 From: smackup <114156491+smackup@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:23:10 +0300 Subject: [PATCH 5/6] Drop prev commit --- packages/forms/resources/views/components/file-upload.blade.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/forms/resources/views/components/file-upload.blade.php b/packages/forms/resources/views/components/file-upload.blade.php index 8faee27a346..c561c276a5a 100644 --- a/packages/forms/resources/views/components/file-upload.blade.php +++ b/packages/forms/resources/views/components/file-upload.blade.php @@ -101,8 +101,6 @@ })" wire:ignore x-ignore - @mouseover="pond.allowPaste = true" - @mouseleave="pond.allowPaste = false" {{ $attributes ->merge([ From e5fca74d944e27331045df5bed6d740e3c83aeaf Mon Sep 17 00:00:00 2001 From: smackup <114156491+smackup@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:49:12 +0300 Subject: [PATCH 6/6] Fix value also --- packages/forms/resources/js/components/key-value.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/forms/resources/js/components/key-value.js b/packages/forms/resources/js/components/key-value.js index a5e6df6fcfe..eb5d690de31 100644 --- a/packages/forms/resources/js/components/key-value.js +++ b/packages/forms/resources/js/components/key-value.js @@ -55,12 +55,13 @@ export default function keyValueFormComponent({ state }) { this.updateState() }, - + escapeString: function (string) { + return String(string).replace(/\./g, '\.'); + }, reorderRows: function (event) { const rows = Alpine.raw(this.rows) this.rows = [] - const reorderedRow = rows.splice(event.oldIndex, 1)[0] rows.splice(event.newIndex, 0, reorderedRow) @@ -81,7 +82,8 @@ export default function keyValueFormComponent({ state }) { let rows = [] for (let [key, value] of Object.entries(this.state ?? {})) { - key = String(key).replace(/\./g, '\.') + key = this.escapeString(key) + value = this.escapeString(value) rows.push({ key, value, @@ -99,9 +101,10 @@ export default function keyValueFormComponent({ state }) { return } - state[row.key] = row.value + state[this.escapeString(row.key)] = this.escapeString(row.value) }) + // This is a hack to prevent the component from updating rows again // after a state update, which would otherwise be done by the `state` // watcher. If rows are updated again, duplicate keys are removed. @@ -110,6 +113,6 @@ export default function keyValueFormComponent({ state }) { this.shouldUpdateRows = false this.state = state - }, + } } }