Commit graph

75 commits

Author SHA1 Message Date
Joshua A. Horton
5f2c884b25 change(web): globeHint has separate stylesheet 2022-11-17 10:42:02 +07:00
Joshua Horton
c690ed727a
Merge pull request #7395 from keymanapp/fix/web/touch-inputmode-preservation
fix(web): better element inputmode management 📴
2022-10-17 10:19:12 +07:00
Joshua A. Horton
15e4e3745c chore(web): PR cleanup per review 2022-10-17 08:28:46 +07:00
Joshua A. Horton
f80fec1280 fix(web): must attach before saving inputmode 2022-10-14 10:58:30 +07:00
Joshua A. Horton
773a619ccf chore(web): null catches on observer toggle methods 2022-10-10 14:15:54 +07:00
Joshua A. Horton
ce6c05a2fb fix(web): inputMode masking on control enablement, not just attachment 2022-10-10 09:54:48 +07:00
Joshua A. Horton
5acb8f2ec1 fix(web): touch-drag selection 2022-10-07 09:10:30 +07:00
Joshua A. Horton
089077d86d chore(web): minor cleanup 2022-10-04 12:52:00 +07:00
Joshua A. Horton
482e743313 feat(web): adds mutationobserver to detect inputmode change, stores setting 2022-10-04 12:44:24 +07:00
Joshua A. Horton
37f50e1b34 fix(web): element detachment on touch devices 2022-10-04 12:33:13 +07:00
Joshua A. Horton
a5c8293d27 chore(web): addresses some PR review concerns 2022-10-04 09:40:52 +07:00
Joshua A. Horton
ccea30e9c4 fix(web): fully drops simulated-element touch handlers 2022-09-29 08:17:54 +07:00
Joshua A. Horton
3218b9a9f3 fix(web): fixes touch-based focusing issues with OSK interactions 2022-09-29 08:17:52 +07:00
Joshua A. Horton
366efe0e34 feat(web): enables non-design-mode iframes for touch 2022-09-29 08:17:50 +07:00
Joshua A. Horton
64037c0832 feat(web): content editable editing for touch 2022-09-29 08:17:49 +07:00
Joshua A. Horton
fe585b88af chore(web): removal of 'kmw_ip' checks, references 2022-09-29 08:17:47 +07:00
Joshua A. Horton
dfca726cf1 chore(web): fully removes touch-alias stuff 2022-09-29 08:17:45 +07:00
Joshua A. Horton
7bf29cecfd change(web): disconnects touch alias hooks, adds .inputMode 2022-09-29 08:17:44 +07:00
Marc Durdin
3977ffda2f fix(web): remove spurious log "No keyboard stubs exist"
This error has been logged for every start of Keyman Engine for Web in
embedded contexts, but nothing bad ever happens. It does not really seem
to be anything we need to worry about. (It may be that the
`setDefaultKeyboard()` call will never return true, but it is still
harmless in any case.)
2022-07-05 15:36:21 +10:00
jahorton
082d96a605 chore(web): roots MSevent refs 2022-05-31 09:11:19 +07:00
jahorton
0abf33829a chore(web): roots out _IsIEEditableIframe 2022-05-31 09:11:17 +07:00
jahorton
0df5ff44b6 change(web): removes mspointerevent refs 2022-05-31 08:27:15 +07:00
Marc Durdin
fcf78bcd94 chore: merge master into branch 2022-05-27 13:11:23 +10:00
jahorton
56b4c5ac50 fix(web): caret position when page is scrolled 2022-04-20 15:28:35 -05:00
Marc Durdin
4d94786852 chore(web): replace lerna with npm workspaces and ts projects
Fixes #6320.

Part 1 of moving from lerna to a simpler, maintained monorepo solution,
using TypeScript Projects and NPM Workspaces.

There is more work to be done here. At this point, KeymanWeb builds and
runs without errors, but the built file is substantially different,
mostly in include order.

Using TypeScript Projects, we move away from the need to run build
scripts in various locations for almost all the Typescript modules.

TODO: Embedded versions and tests have not been verified.

TODO: developer/server is not yet verified.

TODO: developer/js (needs a rename!) is not yet verified.

TODO: Currently, the predictive-text folder needs refactoring to move
the construction of the worker wrapper out of the Predictive Text build
and into the final assembly of keymanweb.js (as it should be valid to
run it as a separate .js anyway).

TODO: Most of the `<reference>` paths need to be re-verified. Ideally
there should be no references outside the current module for any given
.ts.

TODO: The embedded vs browser vs node (headless) builds should be tidied
up for consistency so that it's obvious what depends on what. This is
currently messiest in the predictive-text folder, where the output names
diverge from the filenames and the various files are mixed in the same
folder (as evidenced by the exclusions listed in each tsconfig.json).

TODO: `npm install` should be removed from most build scripts and
instead `npm ci` (#6196) should be run only once from the top-level
folder for any given build. I've had eliminated side-effects from the
`install` action for npm, which makes it easier to reason about state.

TODO: verify_npm_setup and related functions can probably be eliminated.

TODO: most of the build scripts should be largely eliminated for web.

TODO: several ts projects use inconsistent output folders.

TODO: it may be possible to generate a .d.ts for models/types so that
we can use a consistent reference for those as well.

TODO: build.sh, tsconfig.json should always be in the module's top-level
folder, not in a subfolder such as src (e.g. see input-processor/src,
keyboard-processor/src, web/source).

TODO: resources/web-environment should be in common/web.

TODO: other js node_modules imports should be wrapped like es6-shim.

TODO: fix up the publish code for npm modules

TODO: eliminate version numbers from package.json if possible?

Whew, that's most of the stuff I noticed!
2022-04-12 21:02:33 +10:00
Marc Durdin
0c0bb420b5
Merge pull request #5963 from keymanapp/feat/web/3621-newcontext-group
feat(web): Start of Sentence support - part 1 🕊
2022-01-17 12:04:29 +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
e98930dedb
Merge branch 'master' into fix/web/5779-font-scaling-in-osk 2021-11-29 09:12:15 +11:00
Marc Durdin
45821fcb1b fix(web): adjust tablet font scaling
This makes two corrections:

1. Removed an obsolete test for screen size based on dpi, which is
   unreliable, meant that we had been treating many Android tablets as
   phones (domManager.ts).
2. Font scale for Android tablets had some incorrect assumptions around
   keyboard height and devicePixelRatio, which I was able to simplify
   into a fixed ratio, and was much better across all devices I
   tested (however, all emulated in Chrome).
2021-11-29 08:56:41 +11:00
Marc Durdin
bbbf1afce7 feat(web): basic support for newContext
Relates to #3621.

Adds basic support for `begin newContext`.
2021-11-23 15:00:47 +11:00
Marc Durdin
c2c7e00e94 fix(web): reset scroll anchor on touchend
Fixes #5313.
2021-11-17 10:37:01 +11:00
Darcy Wong
9136933c9e fix(web): Check parent element is defined before assigning 2021-11-02 11:22:08 +07:00
jahorton
09f4aed77e chore(web): Merge branch 'refactor/web/active-element-integrations' into refactor/web/osk-activation-and-visibility 2021-09-21 09:59:46 +07:00
jahorton
a6289f4f0f fix(web): detaches base-page touch handlers on shutdown 2021-09-21 09:55:11 +07:00
jahorton
b452092765 refactor(web): base page touch-handlers 2021-09-21 09:43:34 +07:00
jahorton
a1516d194d fix(web): focus-timer preserves activation on Android 2021-09-21 09:23:11 +07:00
jahorton
09de360789 fix(web): missed bits of last commit, adds some polish 2021-09-17 15:02:43 +07:00
jahorton
8826bec8fe fix(web): incorporates some review suggestions 2021-09-17 14:58:18 +07:00
jahorton
ffc381fcb6 chore(web): Merge branch 'refactor/web/active-element-integrations' into refactor/web/osk-activation-and-visibility 2021-09-17 08:38:49 +07:00
jahorton
430b636b22 fix(web): independent keyboard & touch-focus management 2021-09-15 10:28:58 +07:00
jahorton
29a8e3ad63 chore(web): extra sanity check for activeTarget management 2021-09-03 13:34:46 +07:00
jahorton
e8afd71491 refactor(web): _Show -> present(), presentAtPosition() 2021-09-01 09:44:34 +07:00
jahorton
f070df079d refactor(web): osk._Hide -> osk.startHide 2021-09-01 09:44:34 +07:00
jahorton
ffef7c2bd4 chore(web): mild cleanup 2021-09-01 09:44:31 +07:00
jahorton
fe797fe657 refactor(web): osk now controls own display state 2021-09-01 09:44:30 +07:00
jahorton
5cbb3cfeeb refactor(web): OSK view activeTarget, lastActiveTarget no longer tied to DOMManager 2021-09-01 09:44:29 +07:00
jahorton
7fd62c51f4 refactor(web): centralizes element-oriented OSK display logic, polish for prior commits 2021-09-01 09:44:02 +07:00
jahorton
6971f09c4d refactor(web): activeElement, lastActiveElement as properties 2021-09-01 09:44:01 +07:00
jahorton
c0e48e649a refactor(web): OSK connection to active element 2021-09-01 09:44:00 +07:00
jahorton
1c0f596ee7 chore(web): reverts unneeded changes 2021-08-25 11:53:31 +07:00