Skip to content

Fix paste-over-selection for decimal numericInput masks (#2603)#2880

Draft
Copilot wants to merge 2 commits into5.xfrom
copilot/fix-paste-value-inputfield
Draft

Fix paste-over-selection for decimal numericInput masks (#2603)#2880
Copilot wants to merge 2 commits into5.xfrom
copilot/fix-paste-value-inputfield

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 8, 2026

When a decimal mask field (with numericInput/RTL behavior) had all text selected and the user pasted, the pasted value was not replacing the existing content — it was being combined with or appended to it.

Root Cause

In handlePaste, the caret position was being read with RTL coordinate translation applied. For a fully-selected field showing "12345.22" (selectionStart=0, selectionEnd=8), the translated coords became {begin:8, end:0}, causing valueBeforeCaret and valueAfterCaret to include the existing content. The pasted value was then concatenated with the old value before being processed by checkVal.

Fix

Pass notranslate=true to the caret() call inside handlePaste so that raw DOM selectionStart/selectionEnd values are used directly — consistent with visual coordinates already expected for constructing the replacement string:

// lib/eventhandlers.js — handlePaste
let caretPos = caret.call(inputmask, input, undefined, undefined, true), // notranslate=true
    valueBeforeCaret = inputValue.substr(0, caretPos.begin),
    valueAfterCaret  = inputValue.substr(caretPos.end, inputValue.length);

With {begin:0, end:N} for select-all, both valueBeforeCaret and valueAfterCaret are empty, and the pasted value is passed cleanly to checkVal (which resets the mask before processing).

Test

Added "decimal select all paste - #2603" in qunit/tests_paste.js using the exact options from the report (alias: "decimal", allowMinus, autoGroup, clearMaskOnLostFocus: false, digits: 2, digitsOptional: false, groupSeparator: "", groupSize: 3, max/min bounds) — type a value, select all, paste a new value, assert replacement.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • android.clients.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • api.browserstack.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/Inputmask/Inputmask/node_modules/.bin/karma start karma.conf.js --single-run ACCEPT (dns block)
  • clients2.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • clientservices.googleapis.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • content-autofill.googleapis.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • local.browserstack.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/Inputmask/Inputmask/node_modules/browserstack-local/lib/fetchDownloadSourceUrl.js BROWSERSTACK_ACCESS_KEY undefined false null (dns block)
  • redirector.gvt1.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • safebrowsingohttpgateway.googleapis.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
  • www.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4930 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-53070824 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5177325583111241781,15055828271590705466,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,16255843969270510661,13669344331208660762,4 --trace-process-track-uuid=3190708989122997041 git (dns block)
    • Triggering command: /opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-53070824 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-web-security http://localhost:9876/?id=53070824 --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 (dns block)
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=5097 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48197985 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11027336736553365076,14309519239398262737,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10370370540655031995,8135584212624655257,4 --trace-process-track-uuid=3190708989122997041 git (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Fix paste value functionality in input field Fix paste-over-selection for decimal numericInput masks (#2603) Apr 8, 2026
Copilot AI requested a review from RobinHerbots April 8, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Paste value when all select in inputfield not working good

2 participants