From 795b98625726bdbe35630c8406240736c34c7b07 Mon Sep 17 00:00:00 2001 From: werpu Date: Fri, 12 Jun 2026 14:02:49 +0200 Subject: [PATCH] https://issues.apache.org/jira/browse/MYFACES-4756: fix from upstream project --- api/src/client/package-lock.json | 70 ++++++------------- api/src/client/package.json | 2 +- .../client/typescript/mona_dish/DomQuery.ts | 14 +++- 3 files changed, 34 insertions(+), 52 deletions(-) diff --git a/api/src/client/package-lock.json b/api/src/client/package-lock.json index f3a520830..d3d4bd52e 100644 --- a/api/src/client/package-lock.json +++ b/api/src/client/package-lock.json @@ -24,7 +24,7 @@ "global-jsdom": "^29.0.0", "html-webpack-plugin": "^5.6.7", "jsdom": "^29.1.1", - "jsf.js_next_gen": "4.1.0-beta.19", + "jsf.js_next_gen": "4.1.0-beta.20", "mocha": "^11.7.6", "nise": "^6.1.5", "npm-check-updates": "^22.2.3", @@ -125,7 +125,6 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -501,7 +500,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -550,7 +548,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" } @@ -2130,7 +2127,6 @@ "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } @@ -2424,7 +2420,6 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2473,7 +2468,6 @@ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2841,7 +2835,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -5243,7 +5236,6 @@ "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@asamuzakjp/css-color": "^5.1.11", "@asamuzakjp/dom-selector": "^7.1.1", @@ -5293,13 +5285,13 @@ } }, "node_modules/jsf.js_next_gen": { - "version": "4.1.0-beta.19", - "resolved": "https://registry.npmjs.org/jsf.js_next_gen/-/jsf.js_next_gen-4.1.0-beta.19.tgz", - "integrity": "sha512-vxEOlC1O3YmKq6NM4RWj2LAS2/O5Qk3GQE168b7yJigB4bjL7ftDcTtTrIz7nbDMmosFCP7YSBGL/0nnEfTW8A==", + "version": "4.1.0-beta.20", + "resolved": "https://registry.npmjs.org/jsf.js_next_gen/-/jsf.js_next_gen-4.1.0-beta.20.tgz", + "integrity": "sha512-0Q4ldnQ8G8FEnZTT0/mv/TXAts+qniQsGDxLzLalA8SO+wN+LnEuHJQ0w3gmIFrPbkvHALpqSCK+K0mhVxto8g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "mona-dish": "0.50.0-beta.5" + "mona-dish": "0.50.0-beta.6" } }, "node_modules/json-schema-traverse": { @@ -5757,9 +5749,9 @@ } }, "node_modules/mona-dish": { - "version": "0.50.0-beta.5", - "resolved": "https://registry.npmjs.org/mona-dish/-/mona-dish-0.50.0-beta.5.tgz", - "integrity": "sha512-bHwiNBB9Xt2rzh3Azllo5EyGSuWYInI4H3H/U3LDqkUFT3A6q2t9RsNiiR2BegulYWj/n6WHFgDLe1GZok/Gsg==", + "version": "0.50.0-beta.6", + "resolved": "https://registry.npmjs.org/mona-dish/-/mona-dish-0.50.0-beta.6.tgz", + "integrity": "sha512-V5m21Gjx3Z0wTF78eFaMQqSMeAqnCJ5nGjo4tB5ULwbP2dLv597qNOLkZHyxvKFxy+mGXb21f5pNpMyuQGm2SA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5886,7 +5878,6 @@ "integrity": "sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -7820,7 +7811,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -8004,8 +7994,7 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tsx": { "version": "4.22.4", @@ -8156,7 +8145,6 @@ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8337,7 +8325,6 @@ "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", @@ -8491,7 +8478,6 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.4.tgz", "integrity": "sha512-GqDPGZN9bRqKBTkp4aWkobDDHMsrXKoGSdOH56smIri8qR0JG8gfL8/v/f/OZR3/OKXjG8uwJbFVhKm/FNU/UA==", "dev": true, - "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", @@ -8953,7 +8939,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, - "peer": true, "requires": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -9193,7 +9178,6 @@ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, - "peer": true, "requires": {} }, "@csstools/css-syntax-patches-for-csstree": { @@ -9207,8 +9191,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", - "dev": true, - "peer": true + "dev": true }, "@discoveryjs/json-ext": { "version": "1.1.0", @@ -10267,7 +10250,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz", "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", "dev": true, - "peer": true, "requires": { "undici-types": ">=7.24.0 <7.24.7" } @@ -10531,8 +10513,7 @@ "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "peer": true + "dev": true }, "acorn-import-phases": { "version": "1.0.4", @@ -10562,7 +10543,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, - "peer": true, "requires": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -10825,7 +10805,6 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, - "peer": true, "requires": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -12484,7 +12463,6 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", "dev": true, - "peer": true, "requires": { "@asamuzakjp/css-color": "^5.1.11", "@asamuzakjp/dom-selector": "^7.1.1", @@ -12516,12 +12494,12 @@ "dev": true }, "jsf.js_next_gen": { - "version": "4.1.0-beta.19", - "resolved": "https://registry.npmjs.org/jsf.js_next_gen/-/jsf.js_next_gen-4.1.0-beta.19.tgz", - "integrity": "sha512-vxEOlC1O3YmKq6NM4RWj2LAS2/O5Qk3GQE168b7yJigB4bjL7ftDcTtTrIz7nbDMmosFCP7YSBGL/0nnEfTW8A==", + "version": "4.1.0-beta.20", + "resolved": "https://registry.npmjs.org/jsf.js_next_gen/-/jsf.js_next_gen-4.1.0-beta.20.tgz", + "integrity": "sha512-0Q4ldnQ8G8FEnZTT0/mv/TXAts+qniQsGDxLzLalA8SO+wN+LnEuHJQ0w3gmIFrPbkvHALpqSCK+K0mhVxto8g==", "dev": true, "requires": { - "mona-dish": "0.50.0-beta.5" + "mona-dish": "0.50.0-beta.6" } }, "json-schema-traverse": { @@ -12849,9 +12827,9 @@ } }, "mona-dish": { - "version": "0.50.0-beta.5", - "resolved": "https://registry.npmjs.org/mona-dish/-/mona-dish-0.50.0-beta.5.tgz", - "integrity": "sha512-bHwiNBB9Xt2rzh3Azllo5EyGSuWYInI4H3H/U3LDqkUFT3A6q2t9RsNiiR2BegulYWj/n6WHFgDLe1GZok/Gsg==", + "version": "0.50.0-beta.6", + "resolved": "https://registry.npmjs.org/mona-dish/-/mona-dish-0.50.0-beta.6.tgz", + "integrity": "sha512-V5m21Gjx3Z0wTF78eFaMQqSMeAqnCJ5nGjo4tB5ULwbP2dLv597qNOLkZHyxvKFxy+mGXb21f5pNpMyuQGm2SA==", "dev": true, "requires": { "token": "^0.1.0" @@ -12948,7 +12926,6 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-18.0.0.tgz", "integrity": "sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==", "dev": true, - "peer": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -14305,8 +14282,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "peer": true + "dev": true } } }, @@ -14417,8 +14393,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "peer": true + "dev": true }, "tsx": { "version": "4.22.4", @@ -14521,8 +14496,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "dev": true, - "peer": true + "dev": true }, "uc.micro": { "version": "2.1.0", @@ -14639,7 +14613,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", "dev": true, - "peer": true, "requires": { "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", @@ -14740,7 +14713,6 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.4.tgz", "integrity": "sha512-GqDPGZN9bRqKBTkp4aWkobDDHMsrXKoGSdOH56smIri8qR0JG8gfL8/v/f/OZR3/OKXjG8uwJbFVhKm/FNU/UA==", "dev": true, - "peer": true, "requires": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", diff --git a/api/src/client/package.json b/api/src/client/package.json index 2b11d75fc..e9b84c919 100644 --- a/api/src/client/package.json +++ b/api/src/client/package.json @@ -28,7 +28,7 @@ "global-jsdom": "^29.0.0", "html-webpack-plugin": "^5.6.7", "jsdom": "^29.1.1", - "jsf.js_next_gen": "4.1.0-beta.19", + "jsf.js_next_gen": "4.1.0-beta.20", "mocha": "^11.7.6", "nise": "^6.1.5", "npm-check-updates": "^22.2.3", diff --git a/api/src/client/typescript/mona_dish/DomQuery.ts b/api/src/client/typescript/mona_dish/DomQuery.ts index b76e8f6d4..7d6614b6c 100644 --- a/api/src/client/typescript/mona_dish/DomQuery.ts +++ b/api/src/client/typescript/mona_dish/DomQuery.ts @@ -1937,8 +1937,18 @@ export class DomQuery implements IDomQuery, IStreamDataSource, Iterabl static setCaretPosition(ctrl: any, pos: number) { ctrl?.focus ? ctrl?.focus() : null; // the selection range is our caret position - - ctrl?.setSelectionRange ? ctrl?.setSelectionRange(pos, pos) : null; + // + // setSelectionRange exists on every HTMLInputElement, but the DOM spec + // mandates that calling it on input types which do not support text + // selection (checkbox, radio, button, file, ...) throws an + // InvalidStateError. Hence a plain existence check is not enough; we + // additionally swallow the error so the focus above still takes effect + // (silent fail as documented). + try { + ctrl?.setSelectionRange ? ctrl?.setSelectionRange(pos, pos) : null; + } catch (e) { + // input type does not support a caret/selection -> nothing to set + } } /**