Deprecate the following obsolete functions and properties:
* `keyman.helpURL`
* `keyman.util.rgba`
* `keyman.util.toFloat`
* `keyman.util.toNumber`
* `keyman.util.toNzString`
Use correct language for code blocks in Keyman Engine for Web
documentation.
Test-bot: skip
The `loaduserinterface` and `unloaduserinterface` events were
incompletely implemented, and the documentation was incomplete. This
change:
1. ensures `loaduserinterface` is called any time a UI is set, either
during initialization or when the property is set later.
2. ensures `unloaduserinterface` is called immediately before a UI is
shutdown.
3. updates documentation
4. removes misleading commented code in kmwuifloat.ts
Test-bot: skip
KeymanWeb has long had `keyman.build` and `keyman.version`. Neither of
these properties expose the full version string, and consumers are
forced to manipulate them to get a partial version string.
This change deprecates both these properties, and introduces a new
`keyman.versionInfo` property, which returns an object with all the
version information, most importantly `full`.
Update documentation and add a unit test for this, following the unit
test pattern established throughout Keyman of a unit test filename
matching the implementation class. The `KeymanEngineBase` class is a
little difficult to instantiate so this unit test module currently has
a minimal instantiation which provides enough to fulfill the one
included test.
Test-bot: skip
refactor(web): improve naming of `_SetTargetDir` function
`_SetTargetDir` deals with setting the text direction of the target, not the target directory. This change mainly renames the private function to `setTargetTextDirection`.
`currentKeyboardSrcTextStore` can return `null` if the global
`textStore` should be used. This change reflects this in the return
type.
Build-bot: skip build:web
Test-bot: skip
`_SetTargetDir` deals with setting the text direction of the target,
not the target directory. This change mainly renames the private function
to `setTargetTextDirection`.
Build-bot: skip build:web
Test-bot: skip
chore(web): update help links to use latest version
This updates three in-code help links to point to `current-version` instead of an outdated version page.
This change works around the problem where third-party cookies are
blocked when using the keymanweb bookmark by ignoring the exception.
The cookie is used to store a previous state; if we ignore the exception
the user will always get the initial state of the keyboard, but at
least the bookmark is usable.
Fixes: #keymanapp/r.keymanweb.com/9
Build-bot: skip build:web
Test-bot: skip
After review, it is better to do the sync of the model banner in
KeymanWeb `set osk()` than in the client of the API. The client should
be able to assign a new OSK and have it "just work" without needing to
attach things to it.
Fixes: #15217
For Keyman Developer Server, add app.webmanifest so that it can be saved
to the home screen; other pages should not require this.
Fixes: #16172
Test-bot: skip
The variable name `keymanweb` used in the UI modules is confusing
because `KeymanWeb` also exists and points to something else. Rename to
`keyman` which just mirrors `window.keyman`.
Also fixup type declaration for toolbar `lastDismissalCallback`, which
did not match the assigned type.
Fixes: #16168
Test-bot: skip
Ensure that the IME interface methods are all defined for both browser
and webview modes. Deprecate 'Element' methods and replace with
'TextStore' to clarify return type. Add deprecation flags where needed
and update documentation accordingly.
Fixes: #16144
This bypasses any need to modify KMW keyboard loading (say, via .fetch), though it does require a number of collateral changes to be made in order for CORS, etc to be satisfied.
Build-bot: skip build:ios
fix(web): fix `KeyboardStub.validateForCustomKeyboard`
This change fixes a misleading error message in `validateForCustomKeyboard` - `KR` is not the region as the error implies - furthermore it doesn't make sense to check `KR` since it is the optional [keyboard registration function](https://help.keyman.com/developer/engine/web/18.0/reference/interface/registerKeyboard), so this change removes it.
chore(web): remove outdated `*_load.js` files
This change removes unused `*_load.js` files and inlines the code from `laokeys_load.js`. Current Keyman versions no longer produce _load.js files when compiling a keyboard, so these files were pretty outdated.
docs(web): remove unnecessary mentioning of Keyman 17 from docs
Some pages were mentioning Keyman 17 although the content applies to newer versions as well. This change therefore removes the version number from those places.
This change removes unused `*_load.js` files and inlines the code from
`laokeys_load.js`. Current Keyman versions no longer produce _load.js
files when compiling a keyboard, so these files were pretty outdated.
Build-bot: skip build:web
Test-bot: skip
Some pages were mentioning Keyman 17 although the content applies to
newer versions as well. This change therefore removes the version
number from those places.
Build-bot: skip
Test-bot: skip
chore(web): improve the KeymanWeb integration documentation
- replace use of `kmw` with `keyman`
- unify pattern to load keyboards: do it in `keyman.init().then()` instead of in the document `onload`
Part-of: keymanapp/keyman.com#449