Commit graph

221 commits

Author SHA1 Message Date
Eberhard Beilharz
fe3e02cf9e
feat(web): implement getting properties of KMXKeyboard 2025-03-01 17:18:31 +01:00
Eberhard Beilharz
f43950143a
chore: Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-01-30 15:11:23 +01:00
Joshua Horton
e97cd3094f fix(web): disabled correction state should prevent predictive corrections
Fixes: #12214
2025-01-29 10:12:53 +07:00
Eberhard Beilharz
51c25d7826
Merge pull request #12938 from keymanapp/chore/merge-master-into-web-core
chore: merge master into web-core 🎼
2025-01-20 17:37:03 +01:00
Joshua Horton
0d0c339f67
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-01-17 11:37:51 +07:00
Eberhard Beilharz
08b261c0d3
feat(web): add Keyboard and KMXKeyboard classes
The `Keyboard` class can be either a JS or KMX keyboard. Also make use
of the `Keyboard` class where it makes sense and add TODOs in the places
that still need to be implemented for KMX keyboard support.
2025-01-14 16:43:20 +01:00
Eberhard Beilharz
bd724a574e
refactor(web): rename KeyboardProcessor class to JSKeyboardProcessor
Also rename file `keyboardProcessor.ts` to `jsKeyboardProcessor.ts`.
2025-01-14 15:35:30 +01:00
Eberhard Beilharz
62cd0d6509
refactor(web): rename KeyboardInterface class to JSKeyboardInterface
Also rename file from `kbdInterface.ts` to `jsKeyboardInterface.ts`.
2025-01-14 15:35:29 +01:00
Eberhard Beilharz
d82fa81ef6
refactor(web): rename JS Keyboard class to JSKeyboard 2025-01-14 15:35:28 +01:00
Eberhard Beilharz
a13981ebc9
feat(web): fix test failures
Several tests failed because of async issues, so I went through where
we should wait and didn't.
2025-01-14 11:27:52 +01:00
Eberhard Beilharz
94cf821a4d
feat(web): add KeymanWeb API for auto-correct
Part-of: #12203
2025-01-06 17:41:22 +01:00
Eberhard Beilharz
a072171ec8
feat(web): load .kmx keyboard from blob
This change adds the web side of loading a .kmx keyboard from a
blob. It also replaces the `CoreProcessor` class with `CoreFactory`
that allows to directly use the methods defined in WASM without
having to add another wrapper for each method.
2024-12-20 18:01:42 +01:00
Marc Durdin
e6cf6186c2 chore: Merge remote-tracking branch 'origin/epic/web-core' into chore/merge-master-into-web-core 2024-12-05 15:04:11 +07:00
Marc Durdin
b10634eb97 refactor(common): move all lexical model types into LexicalModelTypes container
Many of the types had very generic names (e.g. `Configuration`), and as
the types are now exported from `@keymanapp/common-types`, this was
unhelpful.

For units with many references, I used TypeScript's import-equals to
reduce the change impact. For units with only a few references, I added
the `LexicalModelTypes.` prefix to the references in source.

(Best reference I could find for import-equals: b722fa4e49)

Fixes: #12516
2024-11-27 09:46:09 +07:00
Marc Durdin
e44e0c9feb
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2024-10-11 01:20:39 +02:00
Eberhard Beilharz
4f3a68494c
refactor(web): address code review comments 2024-10-10 09:09:17 +02:00
Eberhard Beilharz
de863c23f2
chore(core): Merge remote-tracking branch 'origin/epic/web-core' into feat/core/kbd_from_blob 2024-10-09 10:51: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
db64bad4b0
docs(web): add clarification 2024-10-08 17:39:31 +02:00
Eberhard Beilharz
df590addac
chore(web):: Merge remote-tracking branch 'origin/master' into epic/web-core 2024-10-08 15:21:25 +02:00
Eberhard Beilharz
c5ded39fe0
docs(web): fix paths to several help pages 2024-09-30 18:49:43 +02:00
Marc Durdin
9ebd1a9b0a
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2024-09-13 08:09:24 +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
c3e587193e
refactor(web): move model/types to web/types
Part-of: #12133
2024-09-09 19:59:01 +02:00
Marc Durdin
1a8d8a771b
Merge branch 'epic/web-core' into feat/web/core 2024-08-22 15:29:47 +02:00
Joshua Horton
f6c21874d7
Merge pull request #12220 from keymanapp/fix/web/disabling-fatfinger-data
fix(web): disable fat-finger data use when mayCorrect = false
2024-08-21 14:51:08 +07:00
Eberhard Beilharz
0abc250af3
feat(web): POC of Core WASM integration into Keyman Web
- add temporary function to Core for this POC
- add new CoreProcessor to access Keyman Core WASM
- add unit tests for new core processor
- add code to KeymanEngine and InputProcessor to load the new CoreProcessor
- add web server to manual tests and new action `start` to build script

This change requires the manual tests to be loaded from a web server
instead of loaded as file, because otherwise the wasm code won't be
loaded.

Currently we always load CoreProcessor. This should be improved in a future
change to only load when it is actually needed.

Part-of: #11293
2024-08-20 22:45:39 +02:00
Joshua Horton
9d9a091651
Merge pull request #12188 from keymanapp/refactor/web/drop-interface-jsproc-dependency 2024-08-20 07:01:59 +07:00
Joshua A. Horton
98d5322e51 fix(web): disable fat-finger data use when mayCorrect = false 2024-08-19 12:53:51 +07:00
Eberhard Beilharz
b9aa9ccd8c
refactor(web): move predictive-text → worker-main
This moves `common/predictive-text/` →
`web/src/engine/predictive-text/worker-main/`.

This also moves `common/test/predictive-text/` →
`web/src/test/manual/predictive-text/`. Note though that this testing
tool is still broken.

Fixes: #12134
2024-08-15 12:26:50 +02:00
Eberhard Beilharz
170ac4bb6b
refactor(web): rename package-cache → keyboard-storage
Move `web/src/engine/package-cache/` →
`web/src/engine/keyboard-storage/`.

Fixes: #12132
2024-08-15 12:26:10 +02:00
Joshua A. Horton
2938ee110b refactor(web): remove engine/interfaces dependency on engine/js-processor 2024-08-15 10:12:27 +07: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-processor → keyboard
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-processor → js-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
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
ae0d9d9e0d
chore(web): fix previous commit 2024-08-02 12:36:30 +02:00
Eberhard Beilharz
32f91d0dde
chore(web): address code review comments
- fix imports of types defined in parent directory
- move `main/src/text` → `main/src/headless`
- move `languageProcessor.ts` → parent directory
2024-08-02 11:23:42 +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
24159d680b
chore(web): move common/web/input-processor/ → web/src/engine/main/
Also:
- move `modelSpec.ts` and `PredictionContext.ts` →
  `web/src/engine/interfaces`
- move `correction.ts` and `correctionLayout.ts` to `web/src/engine/osk/`

Relates-to: #12035
Fixes: #12054
2024-08-01 20:13:21 +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
Marc Durdin
49b4b4e939
Merge pull request #12039 from keymanapp/fix/web/12038-nullish-test-for-set-osk
fix(web): add nullish test in setOsk
2024-07-31 09:38:05 +10:00
Marc Durdin
f1e065d274 fix(web): add nullish test in setOsk
Fixes: #12038
2024-07-27 06:32:11 +07:00
Joshua A. Horton
67ac0ba8fd chore(web): Revert "fix(web): OSK now checks pred-text state on init"
This reverts commit 7466b82893.
2024-07-25 12:04:40 +07:00
Joshua A. Horton
0cac134d19 fix(web): set new-context rules' device to match that of the active OSK
Fixes: #11740
2024-06-10 08:39:45 +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
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