Commit graph

312 commits

Author SHA1 Message Date
Eberhard Beilharz
fc04e2445b
fix(web): address code review comments
Deal with `currentScript` being null/undefined.
2025-11-14 12:35:59 +01:00
Eberhard Beilharz
cb1a308418
fix(web): improve determination of default path
Browser extensions can dynamically insert scripts into a web page, so
it's possible that the last script is not what we expected, which
can cause the path to the script to be wrong. This change fixes the
determination of the default path by using the `document.currentScript`
property. It also replaces the use of the deprecated `substr` function
in those places.

Fixes: #15158
Test-bot: skip
2025-11-13 18:41:27 +01:00
Marc Durdin
2726050601 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.

Fixes: #14447
2025-08-02 13:34:29 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Marc Durdin
65158a0526 maint(common): rename shellHelperFunctions.sh to utils.inc.sh
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.

Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
2025-08-02 06:58:40 +10:00
Eberhard Beilharz
7a162942aa
refactor(web): rename base KeymanEngine to KeymanEngineBase
(cherry picked from commit bd1c610d65)
2025-05-15 16:48:10 +02:00
Eberhard Beilharz
f80b3f9c13
refactor(web): rename HardKeyboard to HardKeyboardBase 2025-05-15 16:38:12 +02:00
Joshua Horton
cb5e3035a7 chore(web): replace --ci flag with builder_is_ci_build
Fixes: #12640
2025-05-02 09:39:39 +07:00
Joshua Horton
da138b098d change(web): address app/browser linter errors 2025-04-29 11:38:08 +07:00
Joshua Horton
8a5c49c585 change(web): keyman-page-trailer -> kmw-page-trailer in order to match common prefix 2025-04-02 13:45:09 +07:00
Joshua Horton
cd322340df change(web): add unique classname to mobile-device page-trailer element
Addresses, but does not fix, #13588.

This change provides a simple classname to the page-trailer element Keyman Engine for Web adds to pages when in mobile mode.  This "page trailer" was originally added so that the on-screen keyboard does not hide important elements near the bottom of the page when visible.  That said, we have gotten site-designer complaints about it; exposing a way for site-designers to retrieve it in queries and/or customize its properties will provide a reasonable workaround for such cases.
2025-04-01 11:45:46 +07:00
Joshua Horton
5db10ea436
Merge pull request #13331 from keymanapp/fix/web/init-should-not-cookie-default
fix(web): prevent cookie-default behavior from mangling engine init
2025-02-26 09:29:54 +07:00
Joshua Horton
f3946ffc76 fix(web): prevent cookie-default behavior from mangling engine init
Fixes: #13278

The fallback default keyboard corresponding to an uninitialized cookie is `Keyboard_us:en`.   This should only occur if the site actually registers its stub before initialization - and we weren't checking/filtering for this properly.

The error itself only occurred if there _were_ stubs pre-registered before init - if none existed, the error does not result.
2025-02-24 12:37:09 +07:00
Joshua Horton
baf2150542 fix(web): properly support workerless use of Web engine
Fixes: #13262
Fixes: KEYMANWEB-COM-1VH
2025-02-20 12:06:28 +07:00
Joshua Horton
b2598e76ba chore(web): fix coverage-reporting artifact
Fixes: #13195
2025-02-12 15:56:54 +07:00
Joshua Horton
6353eccf59 fix(web): add null guard for focusing next element via keystroke
Fixes: #13011
Fixes: KEYMAN-COM-1MB
Fixes: KEYMAN-COM-1EM
2025-01-24 13:25:14 +07:00
Eberhard Beilharz
4f3a68494c
refactor(web): address code review comments 2024-10-10 09:09:17 +02:00
Eberhard Beilharz
3b9c6ef2e4
refactor(web): move KeyboardObject type to common/web/types
Fixes: #11612
2024-10-08 18:53:14 +02:00
Eberhard Beilharz
c5ded39fe0
docs(web): fix paths to several help pages 2024-09-30 18:49:43 +02:00
Eberhard Beilharz
f52a1209c8
refactor(web): merge device-detect with web/src/engine/main
This change moves `web/src/engine/device-detect/` →
`web/src/engine/main/` and renames the `Device` class to `DeviceDetector`.

Fixes: #12388
2024-09-11 16:48:15 +02:00
Eberhard Beilharz
dc66cddee5
docs(web): fix link to documentation page
The help page for `BuildVisualKeyboard` is under `core`, not `osk`.
2024-09-06 09:12:16 +02:00
Eberhard Beilharz
39f0d5b057
Merge pull request #12194 from keymanapp/refactor/web/12151_gestures
refactor(web): move `gesture-recognizer` → `gesture-processor` 🏗️
2024-08-29 09:16:42 +07:00
Joshua A. Horton
98a27925f4 chore(web): Merge branch 'master' into feat/web/utf8-charset-output 2024-08-27 10:20:25 +07:00
Joshua A. Horton
6276b1ecc3
fix(web): fixes build issue due to unreferenced --ci flag inclusion in app/browser build 2024-08-26 15:29:22 +07:00
Eberhard Beilharz
ea62ac23e7
refactor(web): move lm-workerworker-thread
Move `common/web/lm-worker/` →
`web/src/engine/predictive-text/worker-thread/`.

Fixes: #12148
2024-08-16 08:35:20 +02:00
Eberhard Beilharz
170ac4bb6b
refactor(web): rename package-cachekeyboard-storage
Move `web/src/engine/package-cache/` →
`web/src/engine/keyboard-storage/`.

Fixes: #12132
2024-08-15 12:26:10 +02:00
Eberhard Beilharz
89abdbd64c
refactor(web): move some files around
- move `outputTarget.ts` → `js-processor`
- move `deadkeys.ts` → `js-processor`
- move `stringDivergence.ts` → `js-processor`
- split `Mock` into `mock.ts`
- create `keyboard/outputTarget.interface.ts`
2024-08-14 19:06:32 +02:00
Eberhard Beilharz
73aa5afee3
Merge branch 'refactor/web/12067_js-processor' into refactor/web/12110_keyboard 2024-08-13 18:43:58 +02:00
Eberhard Beilharz
dedc18e156
refactor(web): move some files around
- move `systemStore.ts` → `js-processor`
- move `keyEventSource.interface.ts` → `osk`
- move `defaultRules.ts` → back to `keyboard-processor`
- in `KeyboardProcessor` pass `ruleBehavior` as parameter to `forAny`,
  looks like that accidentally got omitted previously

Addresses code review comments.
2024-08-13 18:26:00 +02:00
Eberhard Beilharz
46ecfd4466
refactor(web): move remaining parts of keyboard-processorkeyboard
move parts of `common/web/keyboard-processor/` →
`web/src/engine/keyboard/`.

Fixes: #12110
2024-08-12 19:40:15 +02:00
Eberhard Beilharz
c09c895333
refactor(web): move parts of keyboard-processorjs-processor
Move parts of `common/web/keyboard-processor/` →
`web/src/engine/js-processor/`.

Note this temporarily disable tests for keyboard-processor which depend on
js-processor, until #12110 is fixed.

Fixes: #12067
2024-08-08 18:25:03 +02:00
Joshua A. Horton
6f1d4374e9 feat(web): enable utf8 charset encoding for the build artifacts 2024-08-07 10:05:53 +07:00
Eberhard Beilharz
ebd2bf423a
Merge pull request #12072 from keymanapp/change/web/8146_moveCodes2
refactor(web): refactor and harmonize constants 🏗️
2024-08-06 09:06:31 +02:00
Eberhard Beilharz
2c2acbe863
refactor(web): refactor and harmonize constants
Note that this adds the keyCodes > 50000 to `USVirtualKeyCodes`.

Fixes: #8146
2024-08-01 20:36:43 +02:00
Eberhard Beilharz
ab5df20eef
chore(web): move web/src/engine/paths/web/src/engine/interfaces/
Fixes: #12035
2024-07-31 20:06:02 +02:00
Eberhard Beilharz
1389d40965
Merge branch 'master' into change/web/11878_remove-es5 2024-07-31 15:28:38 +02:00
Joshua A. Horton
cf47d5021b chore(web): Revert "change(web): initializes OSK with keyboard if available during init"
This reverts commit 4b1394a54f.
2024-07-25 12:08:32 +07:00
Eberhard Beilharz
afe25eda24
change(web): remove support for es5
Fixes: #11878
2024-07-04 20:49:30 +02:00
Joshua A. Horton
8bc7da101e fix(web): defer keyboard activation requests made during engine initialization 2024-06-06 09:42:25 +07:00
Joshua Horton
c3277c5fdf
Merge pull request #11464 from keymanapp/chore/web/final-config-flag-fixes
chore(web): finalize web/ project parity with base-repo TS config settings (aside from JS version target) 🔩
2024-06-03 15:16:35 +07:00
Joshua Horton
c858824d81
Merge pull request #11463 from keymanapp/chore/web/strict-func-types
chore(web): enforce strict function types in web/ 🔩
2024-06-03 15:16:19 +07:00
Joshua A. Horton
d2987ac26f chore(web): Merge branch 'chore/web/partial-config-cleanup' into chore/web/remove-no-implicit-any 2024-06-03 11:57:33 +07:00
Joshua Horton
321ded4776
Merge pull request #11460 from keymanapp/chore/web/remove-unused-locals
chore(web): removes unused locals, imports, and private fields 🔩
2024-05-30 15:50:45 +07:00
Joshua Horton
dbee817d80
Merge pull request #11459 from keymanapp/chore/web/fix-implicit-this
chore(web): fixes implicit-this cases 🔩
2024-05-30 15:50:24 +07:00
Joshua Horton
a3c8daa218
Merge pull request #11414 from keymanapp/chore/web/update-typescript
chore(web): updates TypeScript version to 5.4.5
2024-05-30 14:03:48 +07:00
Joshua Horton
c5f8ca66bf
Merge pull request #11470 from keymanapp/fix/web/error-without-neighbor
fix(web): fixes error on tab, enter when only a single input element is on the page
2024-05-30 13:59:17 +07:00
Joshua A. Horton
7e1571d382 chore(web): the final push for config-flag parity for web/ 2024-05-29 10:57:41 +07:00
Joshua A. Horton
a94c5115a8 chore(web): enforces strict function types in web/ 2024-05-29 10:46:32 +07:00
Joshua A. Horton
6591c61eeb chore(web): enforces noImplicitAny for app/browser and app/webview 2024-05-29 10:43:11 +07:00
Joshua A. Horton
0b05766efb chore(web): removes web/ unused locals 2024-05-29 09:24:32 +07:00