Commit graph

205 commits

Author SHA1 Message Date
jahorton
b2eca8b7c4 docs(common/models): addresses PR concerns 2022-04-29 09:42:34 -05:00
jahorton
73d4b0982f docs(web): credited the text generator 2022-04-20 15:10:21 -05:00
jahorton
1c394c2744 change(web): further clarifies performCaretSearch 2022-04-20 13:03:32 -05:00
jahorton
931cf73e90 feat(web): touch-alias optimization test page 2022-04-20 12:28:16 -05:00
Joshua Horton
1ff699d221
Merge pull request #6535 from keymanapp/fix/web/5730-keyboardchange-event-promise-wait
fix(web): keyboardchange event should defer until successful
2022-04-19 20:50:09 -05:00
jahorton
189e6a77d9 change(web): implements PR suggestions, includes test-page-UI-code move 2022-04-19 09:41:46 -05:00
jahorton
1f2fca1fd1 change(web): new logging also mentions active kbd 2022-04-18 10:25:05 -05:00
jahorton
1ab61293f6 feat(web): Promise API test page enhancements 2022-04-18 09:13:25 -05:00
jahorton
af34ed36b8 change(web): minor refactor of Promise API test page 2022-04-18 08:24:29 -05:00
Joshua A. Horton
53cd3b1b71 change(web): re-renaming the test kbd 2022-04-13 18:32:10 -05:00
Joshua A. Horton
46efaa46a2 fix(web): test page link forward slash 2022-04-12 09:31:00 -05:00
Joshua A. Horton
00aede48e1 fix(web): test page model pathing issue on CI test setup 2022-04-12 09:04:03 -05:00
Joshua A. Horton
a7abc3ad23 fix(web): adds new test page to testing index 2022-04-12 08:52:22 -05:00
Joshua A. Horton
5e52ed4d2d change(web): renamed+moved 'vowel hater' test kbd 2022-04-12 08:30:09 -05:00
Joshua A. Horton
6c484a12b5 fix(web): patches changes from code suggestion 2022-04-12 08:15:50 -05:00
Joshua Horton
226be15de3
chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-04-12 08:11:34 -05:00
Joshua A. Horton
cc9d59209d feat(web): added 'y'-based test behavior 2022-04-11 14:16:11 -05:00
Joshua A. Horton
83b1cf4471 docs(web): more details on test kbd 2022-04-11 13:29:51 -05:00
Joshua A. Horton
d3b149455c feat(web): PR test resources 2022-04-11 13:29:51 -05:00
Marc Durdin
49eb062c65 feat(web): prediction casing follows current layer
Fixes #6455.

This involved adding an extra hint to the data passed into the lexical
model layer, being the CasingForm that the current layer wants to use.

Given there are several entry points to the lexical model layer, this
meant a few places where we needed to check the current layer.

I refactored the very long function `InputProcessor.processKeyEvent` to
extract out the `buildAlternates` function. There should be no
functional changes to the `buildAlternates` code. But it makes
`processKeyEvent` significantly easier to read.
2022-04-08 16:14:01 +10:00
Marc Durdin
e616900cad
Revert "feat(web): prediction casing follows current layer" 2022-04-08 14:50:32 +10:00
Marc Durdin
b7ce99480f feat(web): prediction casing follows current layer
Fixes #6455.

This involved adding an extra hint to the data passed into the lexical
model layer, being the CasingForm that the current layer wants to use.

Given there are several entry points to the lexical model layer, this
meant a few places where we needed to check the current layer.

I refactored the very long function `InputProcessor.processKeyEvent` to
extract out the `buildAlternates` function. There should be no
functional changes to the `buildAlternates` code. But it makes
`processKeyEvent` significantly easier to read.
2022-04-01 16:20:50 +11:00
Marc Durdin
d63bd4edde chore(web): rebuild obolo_chwerty keyboard 2022-03-17 20:47:00 +11:00
Marc Durdin
1038379c41
Merge pull request #6351 from keymanapp/fix/web/caps-state-tracking-for-touch
fix(web): caps state tracking for touch
2022-03-15 10:04:45 +11:00
Marc Durdin
e1e82aacce fix(web): add test keyboards 2022-03-10 13:33:21 +11:00
Marc Durdin
272c1f0d1c fix(web): subkey touch position after scroll
Fixes #5964.

It seems that the test for subkey position was incorrect when the
document had been scrolled. Removing the test for `fixed` positioning
resolves the issue.
2022-03-08 17:27:16 +11:00
Marc Durdin
6e9969b27c
Merge pull request #6272 from keymanapp/fix/web/5853-selection-not-working
fix(web): properly handle selection 🎢
2022-03-01 08:08:02 +11:00
Marc Durdin
7273028192 chore(web): add unit test for selection and matching rule 2022-02-25 15:06:11 +11:00
Marc Durdin
bf2270aa69 chore(web): add smp tests for text selection 2022-02-24 15:59:16 +11:00
Marc Durdin
4bcfe37432 chore: add khmer_angkor to web test pages 2022-02-23 15:13:02 +11:00
Marc Durdin
6315d61ad9 chore(web): note chrome mobile emulation req
For android-harness, it must run in Chrome mobile emulation.
2022-02-23 08:30:59 +11:00
Marc Durdin
6cd0f5d49a chore: add web_context_tests keyboard 2022-02-22 10:41:42 +11:00
Marc Durdin
c1c6c8ac84 feat(android): Android web-based test harness
This small harness simulates the Android app. I used it to try and
dig deeper into the interactions with selected text in #5853.

It is very rough, but with some extra effort we could use this
relatively easily for some low-level testing of KeymanWeb embedded
integration.
2022-02-22 10:38:20 +11:00
Marc Durdin
96277a46a2
Merge pull request #6236 from keymanapp/dependabot/npm_and_yarn/web/testing/regression-tests/karma-6.3.14
chore(deps-dev): bump karma from 6.3.4 to 6.3.14 in /web/testing/regression-tests
2022-02-12 20:41:47 +11:00
dependabot[bot]
46d0e7dc98
chore(deps): bump follow-redirects in /web/testing/regression-tests
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.7.0 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.7.0...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 08:05:59 +00:00
dependabot[bot]
187f77a121
chore(deps-dev): bump karma in /web/testing/regression-tests
Bumps [karma](https://github.com/karma-runner/karma) from 6.3.4 to 6.3.14.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.3.4...v6.3.14)

---
updated-dependencies:
- dependency-name: karma
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-11 18:03:53 +00:00
Marc Durdin
44ddf1e9aa
Merge branch 'master' into feat/web/3620-caps-layer 2022-01-17 12:26:32 +11:00
Marc Durdin
1d92385928 chore(web): start-of-sentence in manual test pages 2021-12-09 05:59:16 +01:00
Marc Durdin
2159df10ee chore: tweak keyboard rules for full caps
Removed the 'heuristic' test as it is probably not appropriate for
testing. Removed the mobile-specific platform from the touch layout as
it did not include a caps layer (and should have been identical to the
tablet one anyway).
2021-12-02 05:11:08 +11:00
Marc Durdin
62796e3489 feat(web): Caps Layer and double-tap gesture
Fixes #3620.

Implements the Caps Lock layer support and the double-tap gesture on the
shift key to access it.

The double-tap gesture has been implemented with a view to extension to
support other multi-tap gestures in the future. However, for now, it is
limited to supporting the Shift key, if and only if the keyboard
includes a Caps layer.

The reason for this v15 limitation is that multi-tap on regular keys
would involve either rewinding the previous keystroke (the first tap),
or forcing keyboard developers to consider 'rota' style rules in their
keyboards to support the multi-tap gestures, as we need to make sure
that the first tap is accepted and processed for immediate feedback.
This needs more design, to avoid unnecessary complexity in the keyboards
and/or the rewinding of the keystroke (even though that is conceptually
supported in Keyman Engine for Web already). Basically, we don't want to
constrain the way that a keyboard author may use the multi-tap gesture
by hard-coding the rewind, but neither do we want to make all multi-tap
gestures needlessly complex to author.

The shift key (and other modifiers, potentially in future) needs special
support for multi-tap as the key that is being tapped changes with the
layer change. This is currently managed through recognising `K_SHIFT` in
the key id.

I have tried to follow the `PendingGesture` pattern for multi-tap, and
the gesture itself supports a series of taps, not just a double-tap. The
maximum time to complete the tap series is 125msec * number-of-taps, so
for a double-tap is 250msec.

The changes to support a Caps Lock layer itself were minimal; just
adding the `text.KeyboardProcessor.getStateFromLayer` function and
calling it during `KeyEvent` construction. The remaining changes relate
to the multi-tap gesture.

Minor changes:
* I moved `constructNullKeyEvent` to `KeyEvent` in order to make it
  more accessible to other classes.
* The multi-tap gesture does not have a promise to complete, so that is
  now an optional member of the `PendingGesture` interface.
2021-12-01 08:59:43 +11:00
Marc Durdin
3f35cc0bf8 chore(web): Merge branch 'master' into feat/web/3621-newcontext-group 2021-11-29 10:22:22 +11:00
Marc Durdin
066c03975f
Merge pull request #5919 from keymanapp/fix/web/5313-scrolling-anchor-reset-on-touchend
fix(web): reset scroll anchor on touchend
2021-11-24 07:10:47 +11:00
Marc Durdin
ce2aa9a166 feat(web): support for &layerChanged
Relates to #3621.

Add support for `&layerChanged` system store. This store is set to `1`
before a `begin postKeystroke`, if the keystroke it follows resulted in
a layer change, either programatically through a keyboard rule, or
through a `nextlayer` property of the touched key.
2021-11-24 06:45:20 +11:00
Marc Durdin
f5fc41712d feat(web): add support for begin postKeystroke
Relates to #3621.

This adds support for `begin postKeystroke` to KeymanWeb. This is now
close to final, apart from support for `&layerChanged`.
2021-11-23 16:56:16 +11:00
Marc Durdin
e803bed813 feat(web): start-of-sentence test keyboard
Relates to #3621.

Initial draft of keyboard to test start-of-sentence detection.
2021-11-23 10:11:10 +11:00
Marc Durdin
c2c7e00e94 fix(web): reset scroll anchor on touchend
Fixes #5313.
2021-11-17 10:37:01 +11:00
Marc Durdin
a7c050d71b fix(web): resolve unhandled exception in promise
Fixes #5353.

I made the promise usage consistent in the relevant addKeyboards
functions, instead of mixing promise and async/await style code, which
made it easier to spot the place(s) where promises had not been returned
as we needed.
2021-11-14 15:43:43 +11:00
Marc Durdin
afab4a2b56 chore(web): fixup name of oldtestvariable.js 2021-09-27 10:43:58 +10:00
Marc Durdin
1fe0cc050a chore(web): use debug versions of keyboard 2021-09-27 10:43:18 +10:00
Marc Durdin
670f20a5f7 chore(web): add baseline old version keyboard
Adds oldtestvariable.js to demonstrate old, broken behaviour with
predictive text and variable stores.
2021-09-27 10:32:53 +10:00