Compare commits

...

175 Commits

Author SHA1 Message Date
Francisco Hodge
0541693901 Build update 2019-08-11 20:28:04 -04:00
Francisco Hodge
cb598712c6 npm update 2019-08-11 20:24:37 -04:00
Francisco Hodge
020aa04894 Types update 2019-08-11 20:24:12 -04:00
Francisco Hodge
618800f455 Tests update 2019-08-11 20:23:59 -04:00
Francisco Hodge
74bb07d46a Added ButtonTheme/ButtonAttributes demo 2019-08-11 20:23:42 -04:00
Francisco Hodge
f158a603c9 Added buttonAttributes option. Improved buttonTheme handling. Cleanup. Fixes #196 2019-08-11 20:21:21 -04:00
Francisco Hodge
23da05ee60 Build update 2019-08-11 00:15:13 -04:00
Francisco Hodge
331687de5b Added types for caretPosition 2019-08-11 00:08:30 -04:00
dependabot-preview[bot]
1ac8bf00ef Merge pull request #195 from hodgef/dependabot/npm_and_yarn/react-16.9.0 2019-08-10 10:03:34 +00:00
dependabot-preview[bot]
eb68681f2a Bump react from 16.8.6 to 16.9.0
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.8.6 to 16.9.0.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.9.0/packages/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:58:30 +00:00
dependabot-preview[bot]
312c9db7f7 Merge pull request #193 from hodgef/dependabot/npm_and_yarn/react-dev-utils-9.0.2 2019-08-10 09:56:18 +00:00
dependabot-preview[bot]
7317ae147e Merge pull request #190 from hodgef/dependabot/npm_and_yarn/babel-preset-react-app-9.0.1 2019-08-10 09:51:33 +00:00
dependabot-preview[bot]
a4c0b824ea Merge pull request #194 from hodgef/dependabot/npm_and_yarn/eslint-plugin-react-hooks-1.7.0 2019-08-10 09:51:25 +00:00
dependabot-preview[bot]
a23b1ab6cd Bump react-dev-utils from 9.0.1 to 9.0.2
Bumps [react-dev-utils](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-dev-utils) from 9.0.1 to 9.0.2.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-dev-utils@9.0.2/packages/react-dev-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:49:05 +00:00
dependabot-preview[bot]
485ae27dad Merge pull request #191 from hodgef/dependabot/npm_and_yarn/sass-loader-7.2.0 2019-08-10 09:46:59 +00:00
dependabot-preview[bot]
ed9c0744bd Merge pull request #192 from hodgef/dependabot/npm_and_yarn/webpack-dev-server-3.8.0 2019-08-10 09:41:10 +00:00
dependabot-preview[bot]
bc24494ec1 Bump eslint-plugin-react-hooks from 1.6.1 to 1.7.0
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:34:43 +00:00
dependabot-preview[bot]
9952ecd8be Merge pull request #189 from hodgef/dependabot/npm_and_yarn/file-loader-4.2.0 2019-08-10 09:32:35 +00:00
dependabot-preview[bot]
419ca818a1 Merge pull request #188 from hodgef/dependabot/npm_and_yarn/babel-plugin-named-asset-import-0.3.3 2019-08-10 09:31:40 +00:00
dependabot-preview[bot]
cab2599dd1 Bump babel-preset-react-app from 9.0.0 to 9.0.1
Bumps [babel-preset-react-app](https://github.com/facebook/create-react-app/tree/HEAD/packages/babel-preset-react-app) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/babel-preset-react-app@9.0.1/packages/babel-preset-react-app)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:30:15 +00:00
dependabot-preview[bot]
c59251694d Merge pull request #187 from hodgef/dependabot/npm_and_yarn/css-loader-3.2.0 2019-08-10 09:28:05 +00:00
dependabot-preview[bot]
e333ebacde Merge pull request #186 from hodgef/dependabot/npm_and_yarn/react-app-polyfill-1.0.2 2019-08-10 09:27:16 +00:00
dependabot-preview[bot]
71b5af63b8 Bump sass-loader from 7.1.0 to 7.2.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.1.0...v7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:25:57 +00:00
dependabot-preview[bot]
a24bcc4775 Merge pull request #185 from hodgef/dependabot/npm_and_yarn/style-loader-1.0.0 2019-08-10 09:23:35 +00:00
dependabot-preview[bot]
fa984e93e8 Bump webpack-dev-server from 3.7.2 to 3.8.0
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.7.2 to 3.8.0.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.7.2...v3.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:20:46 +00:00
dependabot-preview[bot]
42be0e3f86 Bump file-loader from 4.1.0 to 4.2.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.1.0...v4.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:17:28 +00:00
dependabot-preview[bot]
e59afc0b0c Merge pull request #184 from hodgef/dependabot/npm_and_yarn/react-dom-16.9.0 2019-08-10 09:17:19 +00:00
dependabot-preview[bot]
96eaa2c1d3 Bump babel-plugin-named-asset-import from 0.3.2 to 0.3.3
Bumps [babel-plugin-named-asset-import](https://github.com/facebook/create-react-app/tree/HEAD/packages/babel-plugin-named-asset-import) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/babel-plugin-named-asset-import@0.3.3/packages/babel-plugin-named-asset-import)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:17:03 +00:00
dependabot-preview[bot]
983d27c11c Bump css-loader from 3.1.0 to 3.2.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.1.0...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:15:55 +00:00
dependabot-preview[bot]
cb67a69f9d Bump react-app-polyfill from 1.0.1 to 1.0.2
Bumps [react-app-polyfill](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-app-polyfill) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-app-polyfill@1.0.2/packages/react-app-polyfill)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:15:12 +00:00
dependabot-preview[bot]
abc03918be Bump style-loader from 0.23.1 to 1.0.0
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 0.23.1 to 1.0.0.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v0.23.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:14:21 +00:00
dependabot-preview[bot]
8029e1fce9 Bump react-dom from 16.8.6 to 16.9.0
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.8.6 to 16.9.0.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.9.0/packages/react-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-10 09:13:36 +00:00
dependabot-preview[bot]
946fdbb417 Merge pull request #181 from hodgef/dependabot/npm_and_yarn/resolve-1.12.0 2019-08-03 09:47:25 +00:00
dependabot-preview[bot]
f5ceef195e Bump resolve from 1.11.1 to 1.12.0
Bumps [resolve](https://github.com/browserify/resolve) from 1.11.1 to 1.12.0.
- [Release notes](https://github.com/browserify/resolve/releases)
- [Commits](https://github.com/browserify/resolve/compare/v1.11.1...v1.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-03 09:36:40 +00:00
dependabot-preview[bot]
82ad303159 Merge pull request #182 from hodgef/dependabot/npm_and_yarn/terser-webpack-plugin-1.4.1 2019-08-03 09:36:03 +00:00
dependabot-preview[bot]
75d8167fad Merge pull request #183 from hodgef/dependabot/npm_and_yarn/uglifyjs-webpack-plugin-2.2.0 2019-08-03 09:34:38 +00:00
dependabot-preview[bot]
32af9739be Merge pull request #180 from hodgef/dependabot/npm_and_yarn/eslint-plugin-flowtype-3.13.0 2019-08-03 09:26:34 +00:00
dependabot-preview[bot]
89c8e39d0c Bump terser-webpack-plugin from 1.3.0 to 1.4.1
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 1.3.0 to 1.4.1.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v1.3.0...v1.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-03 09:24:21 +00:00
dependabot-preview[bot]
434215cdef Bump uglifyjs-webpack-plugin from 2.1.3 to 2.2.0
Bumps [uglifyjs-webpack-plugin](https://github.com/webpack-contrib/uglifyjs-webpack-plugin) from 2.1.3 to 2.2.0.
- [Release notes](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/compare/v2.1.3...v2.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-03 09:24:03 +00:00
dependabot-preview[bot]
e513c8b49a Merge pull request #179 from hodgef/dependabot/npm_and_yarn/webpack-4.39.1 2019-08-03 09:21:58 +00:00
dependabot-preview[bot]
6fa48db14e Bump eslint-plugin-flowtype from 3.10.4 to 3.13.0
Bumps [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype) from 3.10.4 to 3.13.0.
- [Release notes](https://github.com/gajus/eslint-plugin-flowtype/releases)
- [Commits](https://github.com/gajus/eslint-plugin-flowtype/compare/v3.10.4...v3.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-03 09:14:03 +00:00
dependabot-preview[bot]
d29f82e1ed Bump webpack from 4.38.0 to 4.39.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.38.0 to 4.39.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.38.0...v4.39.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-03 09:13:09 +00:00
Francisco Hodge
4b77a07565 Build update 2019-07-31 21:04:51 -04:00
dependabot-preview[bot]
4af477f749 Merge pull request #178 from hodgef/dependabot/npm_and_yarn/typescript-eslint/parser-1.13.0 2019-07-27 09:34:56 +00:00
dependabot-preview[bot]
f9439493d2 Merge pull request #177 from hodgef/dependabot/npm_and_yarn/semver-6.3.0 2019-07-27 09:28:58 +00:00
dependabot-preview[bot]
c23ff225c0 Bump @typescript-eslint/parser from 1.12.0 to 1.13.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.13.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-27 09:28:05 +00:00
dependabot-preview[bot]
cda4e404f5 Merge pull request #176 from hodgef/dependabot/npm_and_yarn/copy-webpack-plugin-5.0.4 2019-07-27 09:26:03 +00:00
dependabot-preview[bot]
f2c4d2d3df Merge pull request #175 from hodgef/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-1.13.0 2019-07-27 09:24:03 +00:00
dependabot-preview[bot]
dd73ebaaa9 Merge pull request #173 from hodgef/dependabot/npm_and_yarn/eslint-plugin-react-7.14.3 2019-07-27 09:21:51 +00:00
dependabot-preview[bot]
7e2f5ac61d Merge pull request #174 from hodgef/dependabot/npm_and_yarn/webpack-4.38.0 2019-07-27 09:20:26 +00:00
dependabot-preview[bot]
988871a5f8 Bump semver from 6.2.0 to 6.3.0
Bumps [semver](https://github.com/npm/node-semver) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.2.0...v6.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-27 09:16:55 +00:00
dependabot-preview[bot]
d79cf5a591 Bump copy-webpack-plugin from 5.0.3 to 5.0.4
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.0.3 to 5.0.4.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v5.0.3...v5.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-27 09:15:48 +00:00
dependabot-preview[bot]
d8745a31c7 Bump @typescript-eslint/eslint-plugin from 1.12.0 to 1.13.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.13.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-27 09:15:02 +00:00
dependabot-preview[bot]
2888562b65 Bump webpack from 4.36.1 to 4.38.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.36.1 to 4.38.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.36.1...v4.38.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-27 09:14:14 +00:00
dependabot-preview[bot]
83367c56cd Bump eslint-plugin-react from 7.14.2 to 7.14.3
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.14.2 to 7.14.3.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.2...v7.14.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-27 09:13:28 +00:00
dependabot-preview[bot]
258d410dee Merge pull request #168 from hodgef/dependabot/npm_and_yarn/babel/core-7.5.5 2019-07-20 10:04:16 +00:00
dependabot-preview[bot]
2b06589259 Merge pull request #167 from hodgef/dependabot/npm_and_yarn/html-webpack-plugin-4.0.0-beta.8 2019-07-20 10:01:15 +00:00
dependabot-preview[bot]
f83b592a61 Merge pull request #165 from hodgef/dependabot/npm_and_yarn/url-loader-2.1.0 2019-07-20 10:00:54 +00:00
dependabot-preview[bot]
7a2fc73ac3 Merge pull request #170 from hodgef/dependabot/npm_and_yarn/mini-css-extract-plugin-0.8.0 2019-07-20 09:55:06 +00:00
dependabot-preview[bot]
ae70a518e5 Merge pull request #169 from hodgef/dependabot/npm_and_yarn/css-loader-3.1.0 2019-07-20 09:54:43 +00:00
dependabot-preview[bot]
5f5ba69277 Bump @babel/core from 7.5.4 to 7.5.5
Bumps [@babel/core](https://github.com/babel/babel) from 7.5.4 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.4...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:50:15 +00:00
dependabot-preview[bot]
f08e9d1031 Merge pull request #166 from hodgef/dependabot/npm_and_yarn/svgr/webpack-4.3.2 2019-07-20 09:48:11 +00:00
dependabot-preview[bot]
dbd4d3d7d2 Merge pull request #164 from hodgef/dependabot/npm_and_yarn/babel/plugin-proposal-class-properties-7.5.5 2019-07-20 09:45:57 +00:00
dependabot-preview[bot]
d8a350ae01 Merge pull request #163 from hodgef/dependabot/npm_and_yarn/babel/runtime-7.5.5 2019-07-20 09:41:30 +00:00
dependabot-preview[bot]
ce50ab2c4e Merge pull request #162 from hodgef/dependabot/npm_and_yarn/babel/preset-env-7.5.5 2019-07-20 09:35:12 +00:00
dependabot-preview[bot]
f16a3c7eff Bump html-webpack-plugin from 4.0.0-beta.7 to 4.0.0-beta.8
Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 4.0.0-beta.7 to 4.0.0-beta.8.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:35:05 +00:00
dependabot-preview[bot]
35cede2de1 Merge pull request #161 from hodgef/dependabot/npm_and_yarn/file-loader-4.1.0 2019-07-20 09:32:49 +00:00
dependabot-preview[bot]
d05bdd600b Bump url-loader from 2.0.1 to 2.1.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v2.0.1...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:25:46 +00:00
dependabot-preview[bot]
c4ebf1ada0 Merge pull request #160 from hodgef/dependabot/npm_and_yarn/webpack-4.36.1 2019-07-20 09:23:34 +00:00
dependabot-preview[bot]
fa7b7c0f59 Bump mini-css-extract-plugin from 0.7.0 to 0.8.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.7.0...v0.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:22:25 +00:00
dependabot-preview[bot]
3188c5859d Bump css-loader from 3.0.0 to 3.1.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:21:43 +00:00
dependabot-preview[bot]
c9cb6cfbb3 Bump @svgr/webpack from 4.3.1 to 4.3.2
Bumps [@svgr/webpack](https://github.com/smooth-code/svgr) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/smooth-code/svgr/releases)
- [Changelog](https://github.com/smooth-code/svgr/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smooth-code/svgr/compare/v4.3.1...v4.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:19:14 +00:00
dependabot-preview[bot]
fdee26e841 Merge pull request #159 from hodgef/dependabot/npm_and_yarn/eslint-plugin-import-2.18.2 2019-07-20 09:19:13 +00:00
dependabot-preview[bot]
1384b6e0ff Bump @babel/plugin-proposal-class-properties from 7.5.0 to 7.5.5
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.5.0 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:17:50 +00:00
dependabot-preview[bot]
36163aceec Bump @babel/runtime from 7.5.4 to 7.5.5
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.5.4 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.4...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:17:10 +00:00
dependabot-preview[bot]
80919dd755 Bump @babel/preset-env from 7.5.4 to 7.5.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.4 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.4...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:16:24 +00:00
dependabot-preview[bot]
2197bb3abc Bump file-loader from 4.0.0 to 4.1.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.0.0...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:15:38 +00:00
dependabot-preview[bot]
3a7088ec20 Bump webpack from 4.35.3 to 4.36.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.3 to 4.36.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.3...v4.36.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:14:37 +00:00
dependabot-preview[bot]
cba9754672 Bump eslint-plugin-import from 2.18.0 to 2.18.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.0 to 2.18.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-20 09:13:56 +00:00
Francisco Hodge
d4e9f51182 Return button in onKeyReleased method. Tests updated. Fixes #145 2019-07-14 11:55:03 -04:00
Francisco Hodge
8ba6f879d0 Code optimization, added onKeyReleased. Fixes #144, #145 2019-07-14 11:27:18 -04:00
dependabot-preview[bot]
b0a7748351 Merge pull request #149 from hodgef/dependabot/npm_and_yarn/babel/runtime-7.5.4 2019-07-13 09:52:06 +00:00
dependabot-preview[bot]
9f42786deb Bump @babel/runtime from 7.5.1 to 7.5.4
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.5.1 to 7.5.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.1...v7.5.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:48:07 +00:00
dependabot-preview[bot]
910a9f5292 Merge pull request #152 from hodgef/dependabot/npm_and_yarn/typescript-eslint/parser-1.12.0 2019-07-13 09:45:55 +00:00
dependabot-preview[bot]
3ad37394f2 Merge pull request #150 from hodgef/dependabot/npm_and_yarn/webpack-4.35.3 2019-07-13 09:44:40 +00:00
dependabot-preview[bot]
2bc496e370 Merge pull request #153 from hodgef/dependabot/npm_and_yarn/babel/core-7.5.4 2019-07-13 09:37:36 +00:00
dependabot-preview[bot]
f6104e214f Merge pull request #151 from hodgef/dependabot/npm_and_yarn/babel/preset-env-7.5.4 2019-07-13 09:33:40 +00:00
dependabot-preview[bot]
26ce879b3a Bump @typescript-eslint/parser from 1.11.0 to 1.12.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.12.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:31:03 +00:00
dependabot-preview[bot]
4b68c236e2 Bump webpack from 4.35.2 to 4.35.3
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.2 to 4.35.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.2...v4.35.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:30:53 +00:00
dependabot-preview[bot]
04705619a4 Merge pull request #148 from hodgef/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-1.12.0 2019-07-13 09:28:51 +00:00
dependabot-preview[bot]
ab1facf287 Merge pull request #147 from hodgef/dependabot/npm_and_yarn/html-webpack-plugin-4.0.0-beta.7 2019-07-13 09:24:26 +00:00
dependabot-preview[bot]
30c95a8264 Bump @babel/core from 7.5.0 to 7.5.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.5.0 to 7.5.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:20:13 +00:00
dependabot-preview[bot]
07ac2fef5a Bump @babel/preset-env from 7.5.0 to 7.5.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.0 to 7.5.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:18:45 +00:00
dependabot-preview[bot]
665a120a0b Merge pull request #146 from hodgef/dependabot/npm_and_yarn/postcss-preset-env-6.7.0 2019-07-13 09:17:43 +00:00
dependabot-preview[bot]
be69873219 Bump @typescript-eslint/eslint-plugin from 1.11.0 to 1.12.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.12.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:16:39 +00:00
dependabot-preview[bot]
a5281dba1c Bump html-webpack-plugin from 4.0.0-beta.5 to 4.0.0-beta.7
Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 4.0.0-beta.5 to 4.0.0-beta.7.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:15:58 +00:00
dependabot-preview[bot]
72733e57be Bump postcss-preset-env from 6.6.0 to 6.7.0
Bumps [postcss-preset-env](https://github.com/csstools/postcss-preset-env) from 6.6.0 to 6.7.0.
- [Release notes](https://github.com/csstools/postcss-preset-env/releases)
- [Changelog](https://github.com/csstools/postcss-preset-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-preset-env/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-13 09:15:11 +00:00
dependabot-preview[bot]
ea84c35e32 Merge pull request #143 from hodgef/dependabot/npm_and_yarn/lodash-4.17.14 2019-07-10 23:19:46 +00:00
dependabot-preview[bot]
bb36b32e5b [Security] Bump lodash from 4.17.11 to 4.17.14
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-10 23:17:04 +00:00
dependabot-preview[bot]
a44cca5ee9 Merge pull request #142 from hodgef/dependabot/npm_and_yarn/lodash.template-4.5.0 2019-07-10 20:46:04 +00:00
dependabot-preview[bot]
c9ec9716b7 [Security] Bump lodash.template from 4.4.0 to 4.5.0
Bumps [lodash.template](https://github.com/lodash/lodash) from 4.4.0 to 4.5.0. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.4.0...4.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-10 20:43:19 +00:00
Francisco Hodge
c49d6f858b Build update 2019-07-08 00:31:15 -04:00
Francisco Hodge
d4e54508f5 Removing active css styling for hg-button 2019-07-07 23:39:52 -04:00
dependabot-preview[bot]
b64a0383dc Merge pull request #140 from hodgef/dependabot/npm_and_yarn/babel/plugin-proposal-class-properties-7.5.0 2019-07-06 09:49:20 +00:00
dependabot-preview[bot]
d5adc5025c Merge pull request #138 from hodgef/dependabot/npm_and_yarn/semver-6.2.0 2019-07-06 09:48:47 +00:00
dependabot-preview[bot]
d39a2804cb Merge pull request #139 from hodgef/dependabot/npm_and_yarn/eslint-plugin-jsx-a11y-6.2.3 2019-07-06 09:46:44 +00:00
dependabot-preview[bot]
09c1f8b56a Merge pull request #141 from hodgef/dependabot/npm_and_yarn/svgr/webpack-4.3.1 2019-07-06 09:40:05 +00:00
dependabot-preview[bot]
dc01ad5e3a Bump @babel/plugin-proposal-class-properties from 7.4.4 to 7.5.0
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.4.4 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:37:20 +00:00
dependabot-preview[bot]
c3a565fd20 Bump semver from 6.1.2 to 6.2.0
Bumps [semver](https://github.com/npm/node-semver) from 6.1.2 to 6.2.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.1.2...v6.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:37:18 +00:00
dependabot-preview[bot]
3cf2764001 Merge pull request #137 from hodgef/dependabot/npm_and_yarn/babel/core-7.5.0 2019-07-06 09:35:07 +00:00
dependabot-preview[bot]
fe3a012f7f Merge pull request #136 from hodgef/dependabot/npm_and_yarn/babel/runtime-7.5.1 2019-07-06 09:32:33 +00:00
dependabot-preview[bot]
70cb19f1ef Bump eslint-plugin-jsx-a11y from 6.2.1 to 6.2.3
Bumps [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y) from 6.2.1 to 6.2.3.
- [Release notes](https://github.com/evcohen/eslint-plugin-jsx-a11y/releases)
- [Changelog](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md)
- [Commits](https://github.com/evcohen/eslint-plugin-jsx-a11y/compare/v6.2.1...v6.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:28:16 +00:00
dependabot-preview[bot]
316647bdac Merge pull request #135 from hodgef/dependabot/npm_and_yarn/eslint-loader-2.2.1 2019-07-06 09:26:11 +00:00
dependabot-preview[bot]
8e07afda65 Merge pull request #134 from hodgef/dependabot/npm_and_yarn/webpack-4.35.2 2019-07-06 09:21:20 +00:00
dependabot-preview[bot]
25f81ab1c7 Bump @svgr/webpack from 4.3.0 to 4.3.1
Bumps [@svgr/webpack](https://github.com/smooth-code/svgr) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/smooth-code/svgr/releases)
- [Changelog](https://github.com/smooth-code/svgr/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smooth-code/svgr/compare/v4.3.0...v4.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:19:12 +00:00
dependabot-preview[bot]
78f578f787 Merge pull request #133 from hodgef/dependabot/npm_and_yarn/babel/preset-env-7.5.0 2019-07-06 09:16:41 +00:00
dependabot-preview[bot]
692f773c31 Bump @babel/core from 7.4.5 to 7.5.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:15:59 +00:00
dependabot-preview[bot]
b95670e8c4 Bump @babel/runtime from 7.4.5 to 7.5.1
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.4.5 to 7.5.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:15:21 +00:00
dependabot-preview[bot]
c4c1e8b181 Bump eslint-loader from 2.1.2 to 2.2.1
Bumps [eslint-loader](https://github.com/webpack-contrib/eslint-loader) from 2.1.2 to 2.2.1.
- [Release notes](https://github.com/webpack-contrib/eslint-loader/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-loader/compare/2.1.2...v2.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:14:39 +00:00
dependabot-preview[bot]
9e8b28b124 Bump webpack from 4.35.0 to 4.35.2
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.0 to 4.35.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.0...v4.35.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:14:00 +00:00
dependabot-preview[bot]
665262bf93 Bump @babel/preset-env from 7.4.5 to 7.5.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-06 09:13:22 +00:00
dependabot-preview[bot]
5830c34263 Merge pull request #127 from hodgef/dependabot/npm_and_yarn/eslint-plugin-react-hooks-1.6.1 2019-06-29 09:52:43 +00:00
dependabot-preview[bot]
458e7be599 Merge pull request #129 from hodgef/dependabot/npm_and_yarn/@typescript-eslint/eslint-plugin-1.11.0 2019-06-29 09:48:42 +00:00
dependabot-preview[bot]
9e96f186c8 Bump eslint-plugin-react-hooks from 1.6.0 to 1.6.1
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:46:46 +00:00
dependabot-preview[bot]
f2169a4cd0 Merge pull request #126 from hodgef/dependabot/npm_and_yarn/eslint-plugin-react-7.14.2 2019-06-29 09:44:40 +00:00
dependabot-preview[bot]
003d44325c Merge pull request #130 from hodgef/dependabot/npm_and_yarn/semver-6.1.2 2019-06-29 09:36:56 +00:00
dependabot-preview[bot]
e193745029 Bump @typescript-eslint/eslint-plugin from 1.10.2 to 1.11.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 1.10.2 to 1.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.11.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:34:47 +00:00
dependabot-preview[bot]
dfa4686be6 Merge pull request #128 from hodgef/dependabot/npm_and_yarn/@typescript-eslint/parser-1.11.0 2019-06-29 09:32:33 +00:00
dependabot-preview[bot]
9618f96c2b Merge pull request #125 from hodgef/dependabot/npm_and_yarn/url-loader-2.0.1 2019-06-29 09:28:48 +00:00
dependabot-preview[bot]
7f0cf50d79 Bump eslint-plugin-react from 7.13.0 to 7.14.2
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.13.0 to 7.14.2.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.13.0...v7.14.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:27:38 +00:00
dependabot-preview[bot]
7d501807ff Merge pull request #124 from hodgef/dependabot/npm_and_yarn/eslint-plugin-import-2.18.0 2019-06-29 09:26:33 +00:00
dependabot-preview[bot]
891d3a4daf Merge pull request #123 from hodgef/dependabot/npm_and_yarn/fs-extra-8.1.0 2019-06-29 09:25:36 +00:00
dependabot-preview[bot]
a5451f73fa Merge pull request #122 from hodgef/dependabot/npm_and_yarn/optimize-css-assets-webpack-plugin-5.0.3 2019-06-29 09:22:33 +00:00
dependabot-preview[bot]
9d94f0a802 Bump semver from 6.1.1 to 6.1.2
Bumps [semver](https://github.com/npm/node-semver) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.1.1...v6.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:19:57 +00:00
dependabot-preview[bot]
d5bdb3e917 Bump @typescript-eslint/parser from 1.10.2 to 1.11.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 1.10.2 to 1.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.11.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:18:34 +00:00
dependabot-preview[bot]
b0722f6871 Merge pull request #121 from hodgef/dependabot/npm_and_yarn/is-wsl-2.1.0 2019-06-29 09:16:16 +00:00
dependabot-preview[bot]
2865389267 Bump url-loader from 2.0.0 to 2.0.1
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v2.0.0...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:16:09 +00:00
dependabot-preview[bot]
a3cfb8e104 Bump eslint-plugin-import from 2.17.3 to 2.18.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.17.3 to 2.18.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.17.3...v2.18.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:15:11 +00:00
dependabot-preview[bot]
f7cc244eb6 Bump fs-extra from 8.0.1 to 8.1.0
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 8.0.1 to 8.1.0.
- [Release notes](https://github.com/jprichardson/node-fs-extra/releases)
- [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jprichardson/node-fs-extra/commits/8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:14:24 +00:00
dependabot-preview[bot]
e11c8c4aa0 Bump optimize-css-assets-webpack-plugin from 5.0.1 to 5.0.3
Bumps [optimize-css-assets-webpack-plugin](https://github.com/NMFR/optimize-css-assets-webpack-plugin) from 5.0.1 to 5.0.3.
- [Release notes](https://github.com/NMFR/optimize-css-assets-webpack-plugin/releases)
- [Commits](https://github.com/NMFR/optimize-css-assets-webpack-plugin/compare/v5.0.1...v5.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:13:45 +00:00
dependabot-preview[bot]
71b3a70b33 Bump is-wsl from 2.0.0 to 2.1.0
Bumps [is-wsl](https://github.com/sindresorhus/is-wsl) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/sindresorhus/is-wsl/releases)
- [Commits](https://github.com/sindresorhus/is-wsl/compare/v2.0.0...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-29 09:12:59 +00:00
Francisco Hodge
64a63db2f3 Build update 2019-06-22 11:14:41 -04:00
Francisco Hodge
0f6da50b34 npm update 2019-06-22 11:07:37 -04:00
dependabot-preview[bot]
990efcda62 Merge pull request #118 from hodgef/dependabot/npm_and_yarn/webpack-dev-server-3.7.2 2019-06-22 09:29:43 +00:00
dependabot-preview[bot]
5954dec8a3 Merge pull request #119 from hodgef/dependabot/npm_and_yarn/eslint-plugin-flowtype-3.10.4 2019-06-22 09:25:43 +00:00
dependabot-preview[bot]
5566c09cba Merge pull request #117 from hodgef/dependabot/npm_and_yarn/babel-eslint-10.0.2 2019-06-22 09:20:40 +00:00
dependabot-preview[bot]
b9f8e95a15 Bump webpack-dev-server from 3.7.1 to 3.7.2
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.7.1 to 3.7.2.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.7.1...v3.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-22 09:18:52 +00:00
dependabot-preview[bot]
205004f4b3 Merge pull request #116 from hodgef/dependabot/npm_and_yarn/webpack-4.35.0 2019-06-22 09:16:52 +00:00
dependabot-preview[bot]
7adfe713a3 Bump eslint-plugin-flowtype from 3.10.3 to 3.10.4
Bumps [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype) from 3.10.3 to 3.10.4.
- [Release notes](https://github.com/gajus/eslint-plugin-flowtype/releases)
- [Commits](https://github.com/gajus/eslint-plugin-flowtype/compare/v3.10.3...v3.10.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-22 09:15:56 +00:00
dependabot-preview[bot]
c715499007 Bump babel-eslint from 10.0.1 to 10.0.2
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.1...v10.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-22 09:13:58 +00:00
dependabot-preview[bot]
da36eddc43 Bump webpack from 4.34.0 to 4.35.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.34.0 to 4.35.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.34.0...v4.35.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-22 09:13:15 +00:00
dependabot-preview[bot]
d73ecb2e59 Merge pull request #111 from hodgef/dependabot/npm_and_yarn/webpack-4.34.0 2019-06-15 09:42:52 +00:00
dependabot-preview[bot]
4b93c7def2 Bump webpack from 4.33.0 to 4.34.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.33.0 to 4.34.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.33.0...v4.34.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 09:38:51 +00:00
dependabot-preview[bot]
9f8eaf5fb8 Merge pull request #110 from hodgef/dependabot/npm_and_yarn/@typescript-eslint/parser-1.10.2 2019-06-15 09:36:49 +00:00
dependabot-preview[bot]
5002fb8ae5 Merge pull request #108 from hodgef/dependabot/npm_and_yarn/css-loader-3.0.0 2019-06-15 09:29:59 +00:00
dependabot-preview[bot]
bfd6774fdc Merge pull request #112 from hodgef/dependabot/npm_and_yarn/eslint-plugin-flowtype-3.10.3 2019-06-15 09:27:22 +00:00
dependabot-preview[bot]
8f334ea429 Bump @typescript-eslint/parser from 1.9.0 to 1.10.2
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 1.9.0 to 1.10.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.10.2/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 09:23:26 +00:00
dependabot-preview[bot]
780a097ac8 Merge pull request #109 from hodgef/dependabot/npm_and_yarn/@typescript-eslint/eslint-plugin-1.10.2 2019-06-15 09:21:18 +00:00
dependabot-preview[bot]
90efb5bb08 Bump css-loader from 2.1.1 to 3.0.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 2.1.1 to 3.0.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v2.1.1...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 09:17:36 +00:00
dependabot-preview[bot]
5b20248ac5 Bump eslint-plugin-flowtype from 3.9.1 to 3.10.3
Bumps [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype) from 3.9.1 to 3.10.3.
- [Release notes](https://github.com/gajus/eslint-plugin-flowtype/releases)
- [Commits](https://github.com/gajus/eslint-plugin-flowtype/compare/v3.9.1...v3.10.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 09:16:45 +00:00
dependabot-preview[bot]
fc137e4a31 Merge pull request #107 from hodgef/dependabot/npm_and_yarn/postcss-normalize-8.0.1 2019-06-15 09:15:15 +00:00
dependabot-preview[bot]
356a71c006 Bump @typescript-eslint/eslint-plugin from 1.9.0 to 1.10.2
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 1.9.0 to 1.10.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.10.2/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 09:14:24 +00:00
dependabot-preview[bot]
e0093fc64a Bump postcss-normalize from 7.0.0 to 8.0.1
Bumps [postcss-normalize](https://github.com/csstools/postcss-normalize) from 7.0.0 to 8.0.1.
- [Release notes](https://github.com/csstools/postcss-normalize/releases)
- [Changelog](https://github.com/csstools/postcss-normalize/blob/master/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-normalize/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 09:12:54 +00:00
Francisco Hodge
a2fb28a88b Build update 2019-06-13 18:40:54 -04:00
Francisco Hodge
539fa0fffd npm update 2019-06-13 18:34:45 -04:00
dependabot-preview[bot]
fa40e7a5cf Merge pull request #103 from hodgef/dependabot/npm_and_yarn/webpack-dev-server-3.7.1 2019-06-08 09:26:40 +00:00
dependabot-preview[bot]
d61813102e Merge pull request #106 from hodgef/dependabot/npm_and_yarn/prettier-1.18.2 2019-06-08 09:24:49 +00:00
dependabot-preview[bot]
1d543bb8ea Merge pull request #105 from hodgef/dependabot/npm_and_yarn/pnp-webpack-plugin-1.5.0 2019-06-08 09:22:44 +00:00
dependabot-preview[bot]
8b95cb0c93 Merge pull request #104 from hodgef/dependabot/npm_and_yarn/file-loader-4.0.0 2019-06-08 09:20:41 +00:00
dependabot-preview[bot]
b82136f248 Bump webpack-dev-server from 3.5.1 to 3.7.1
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.5.1 to 3.7.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.5.1...v3.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-08 09:17:36 +00:00
dependabot-preview[bot]
ccb952f6c5 Bump prettier from 1.17.1 to 1.18.2
Bumps [prettier](https://github.com/prettier/prettier) from 1.17.1 to 1.18.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.17.1...1.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-08 09:15:32 +00:00
dependabot-preview[bot]
d387d7a37c Merge pull request #102 from hodgef/dependabot/npm_and_yarn/url-loader-2.0.0 2019-06-08 09:15:28 +00:00
dependabot-preview[bot]
f3665eeea3 Bump pnp-webpack-plugin from 1.4.3 to 1.5.0
Bumps [pnp-webpack-plugin](https://github.com/arcanis/pnp-webpack-plugin) from 1.4.3 to 1.5.0.
- [Release notes](https://github.com/arcanis/pnp-webpack-plugin/releases)
- [Commits](https://github.com/arcanis/pnp-webpack-plugin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-08 09:14:46 +00:00
dependabot-preview[bot]
1facc21b0a Bump file-loader from 3.0.1 to 4.0.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 3.0.1 to 4.0.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v3.0.1...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-08 09:14:03 +00:00
dependabot-preview[bot]
1d9be6dae5 Bump url-loader from 1.1.2 to 2.0.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 1.1.2 to 2.0.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v1.1.2...v2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-08 09:12:40 +00:00
31 changed files with 3103 additions and 1777 deletions

View File

@@ -1,6 +1,6 @@
/*!
*
* simple-keyboard v2.23.0
* simple-keyboard v2.25.0
* https://github.com/hodgef/simple-keyboard
*
* Copyright (c) Francisco Hodge (https://github.com/hodgef)
@@ -8,5 +8,5 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/body,html{margin:0;padding:0}.simple-keyboard{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;overflow:hidden;touch-action:manipulation}.simple-keyboard .hg-row{display:flex}.simple-keyboard .hg-row:not(:last-child){margin-bottom:5px}.simple-keyboard .hg-row .hg-button-container,.simple-keyboard .hg-row .hg-button:not(:last-child){margin-right:5px}.simple-keyboard .hg-row>div:last-child{margin-right:0}.simple-keyboard .hg-row .hg-button-container{display:flex}.simple-keyboard .hg-button{display:inline-block;flex-grow:1;cursor:pointer}.simple-keyboard .hg-button span{pointer-events:none}.simple-keyboard.hg-theme-default{background-color:rgba(0,0,0,.1);padding:5px;border-radius:5px}.simple-keyboard.hg-theme-default .hg-button{box-shadow:0 0 3px -1px rgba(0,0,0,.3);height:40px;border-radius:5px;box-sizing:border-box;padding:5px;background:#fff;border-bottom:1px solid #b5b5b5;cursor:pointer;display:flex;align-items:center;justify-content:center}.simple-keyboard button.hg-button{border-width:0;outline:0;font-size:inherit}.simple-keyboard.hg-theme-default:not(.hg-touch-events) .hg-button:active{background:#e4e4e4}.simple-keyboard.hg-theme-default.hg-layout-numeric .hg-button{width:33.3%;height:60px;align-items:center;display:flex;justify-content:center}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadadd,.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadenter{height:85px}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpad0{width:105px}.simple-keyboard.hg-theme-default .hg-button.hg-button-com{max-width:85px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn.hg-button-at{max-width:45px}.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton{background:rgba(5,25,70,.53);color:#fff}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn=".com"]{max-width:82px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn="@"]{max-width:60px}
*/body,html{margin:0;padding:0}.simple-keyboard{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;overflow:hidden;touch-action:manipulation}.simple-keyboard .hg-row{display:flex}.simple-keyboard .hg-row:not(:last-child){margin-bottom:5px}.simple-keyboard .hg-row .hg-button-container,.simple-keyboard .hg-row .hg-button:not(:last-child){margin-right:5px}.simple-keyboard .hg-row>div:last-child{margin-right:0}.simple-keyboard .hg-row .hg-button-container{display:flex}.simple-keyboard .hg-button{display:inline-block;flex-grow:1;cursor:pointer}.simple-keyboard .hg-button span{pointer-events:none}.simple-keyboard.hg-theme-default{background-color:rgba(0,0,0,.1);padding:5px;border-radius:5px}.simple-keyboard.hg-theme-default .hg-button{box-shadow:0 0 3px -1px rgba(0,0,0,.3);height:40px;border-radius:5px;box-sizing:border-box;padding:5px;background:#fff;border-bottom:1px solid #b5b5b5;cursor:pointer;display:flex;align-items:center;justify-content:center}.simple-keyboard button.hg-button{border-width:0;outline:0;font-size:inherit}.simple-keyboard.hg-theme-default.hg-layout-numeric .hg-button{width:33.3%;height:60px;align-items:center;display:flex;justify-content:center}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadadd,.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadenter{height:85px}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpad0{width:105px}.simple-keyboard.hg-theme-default .hg-button.hg-button-com{max-width:85px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn.hg-button-at{max-width:45px}.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton{background:rgba(5,25,70,.53);color:#fff}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn=".com"]{max-width:82px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn="@"]{max-width:60px}
/*# sourceMappingURL=index.css.map */

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
/*!
*
* simple-keyboard v2.23.0 (Non-minified build)
* simple-keyboard v2.25.0 (Non-minified build)
* https://github.com/hodgef/simple-keyboard
*
* Copyright (c) Francisco Hodge (https://github.com/hodgef)
@@ -8,4 +8,4 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/body,html{margin:0;padding:0}.simple-keyboard{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;overflow:hidden;touch-action:manipulation}.simple-keyboard .hg-row{display:flex}.simple-keyboard .hg-row:not(:last-child){margin-bottom:5px}.simple-keyboard .hg-row .hg-button-container,.simple-keyboard .hg-row .hg-button:not(:last-child){margin-right:5px}.simple-keyboard .hg-row>div:last-child{margin-right:0}.simple-keyboard .hg-row .hg-button-container{display:flex}.simple-keyboard .hg-button{display:inline-block;flex-grow:1;cursor:pointer}.simple-keyboard .hg-button span{pointer-events:none}.simple-keyboard.hg-theme-default{background-color:rgba(0,0,0,.1);padding:5px;border-radius:5px}.simple-keyboard.hg-theme-default .hg-button{box-shadow:0 0 3px -1px rgba(0,0,0,.3);height:40px;border-radius:5px;box-sizing:border-box;padding:5px;background:#fff;border-bottom:1px solid #b5b5b5;cursor:pointer;display:flex;align-items:center;justify-content:center}.simple-keyboard button.hg-button{border-width:0;outline:0;font-size:inherit}.simple-keyboard.hg-theme-default:not(.hg-touch-events) .hg-button:active{background:#e4e4e4}.simple-keyboard.hg-theme-default.hg-layout-numeric .hg-button{width:33.3%;height:60px;align-items:center;display:flex;justify-content:center}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadadd,.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadenter{height:85px}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpad0{width:105px}.simple-keyboard.hg-theme-default .hg-button.hg-button-com{max-width:85px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn.hg-button-at{max-width:45px}.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton{background:rgba(5,25,70,.53);color:#fff}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn=".com"]{max-width:82px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn="@"]{max-width:60px}
*/body,html{margin:0;padding:0}.simple-keyboard{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;overflow:hidden;touch-action:manipulation}.simple-keyboard .hg-row{display:flex}.simple-keyboard .hg-row:not(:last-child){margin-bottom:5px}.simple-keyboard .hg-row .hg-button-container,.simple-keyboard .hg-row .hg-button:not(:last-child){margin-right:5px}.simple-keyboard .hg-row>div:last-child{margin-right:0}.simple-keyboard .hg-row .hg-button-container{display:flex}.simple-keyboard .hg-button{display:inline-block;flex-grow:1;cursor:pointer}.simple-keyboard .hg-button span{pointer-events:none}.simple-keyboard.hg-theme-default{background-color:rgba(0,0,0,.1);padding:5px;border-radius:5px}.simple-keyboard.hg-theme-default .hg-button{box-shadow:0 0 3px -1px rgba(0,0,0,.3);height:40px;border-radius:5px;box-sizing:border-box;padding:5px;background:#fff;border-bottom:1px solid #b5b5b5;cursor:pointer;display:flex;align-items:center;justify-content:center}.simple-keyboard button.hg-button{border-width:0;outline:0;font-size:inherit}.simple-keyboard.hg-theme-default.hg-layout-numeric .hg-button{width:33.3%;height:60px;align-items:center;display:flex;justify-content:center}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadadd,.simple-keyboard.hg-theme-default .hg-button.hg-button-numpadenter{height:85px}.simple-keyboard.hg-theme-default .hg-button.hg-button-numpad0{width:105px}.simple-keyboard.hg-theme-default .hg-button.hg-button-com{max-width:85px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn.hg-button-at{max-width:45px}.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton{background:rgba(5,25,70,.53);color:#fff}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn=".com"]{max-width:82px}.simple-keyboard.hg-theme-default .hg-button.hg-standardBtn[data-skbtn="@"]{max-width:60px}

25
build/index.d.ts vendored
View File

@@ -10,6 +10,12 @@ declare module 'simple-keyboard' {
buttons: string;
}
interface KeyboardButtonAttributes {
attribute: string;
value: string;
buttons: string;
}
interface KeyboardOptions {
/**
* Modify the keyboard layout.
@@ -41,6 +47,11 @@ declare module 'simple-keyboard' {
*/
buttonTheme?: KeyboardButtonTheme[];
/**
* A prop to add your own attributes to one or several buttons.
*/
buttonAttributes?: KeyboardButtonAttributes[];
/**
* Runs a `console.log` every time a key is pressed. Displays the buttons pressed and the current input.
*/
@@ -133,6 +144,11 @@ declare module 'simple-keyboard' {
*/
onKeyPress?: (button: string) => any;
/**
* Executes the callback function on key release.
*/
onKeyReleased?: (button: string) => any;
/**
* Executes the callback function on input change. Returns the current input's string.
*/
@@ -167,6 +183,10 @@ declare module 'simple-keyboard' {
class Keyboard {
constructor(selector: string, options: KeyboardOptions);
constructor(options: KeyboardOptions);
/**
* Options
*/
options: KeyboardOptions;
/**
@@ -174,6 +194,11 @@ declare module 'simple-keyboard' {
*/
utilities?: any;
/**
* caretPosition
*/
caretPosition?: number;
/**
* Adds/Modifies an entry to the `buttonTheme`. Basically a way to add a class to a button.
* @param {string} buttons List of buttons to select (separated by a space).

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

2712
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "simple-keyboard",
"version": "2.23.0",
"version": "2.25.0",
"description": "On-screen Javascript Virtual Keyboard",
"main": "build/index.js",
"types": "build/index.d.ts",
@@ -40,48 +40,48 @@
],
"license": "MIT",
"devDependencies": {
"@babel/core": "7.4.5",
"@babel/core": "7.5.5",
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/preset-env": "^7.4.4",
"@babel/preset-react": "^7.0.0",
"@babel/runtime": "^7.4.4",
"@svgr/webpack": "4.3.0",
"@typescript-eslint/eslint-plugin": "1.9.0",
"@typescript-eslint/parser": "1.9.0",
"babel-eslint": "10.0.1",
"@babel/runtime": "7.5.4",
"@svgr/webpack": "4.3.2",
"@typescript-eslint/eslint-plugin": "1.13.0",
"@typescript-eslint/parser": "1.13.0",
"babel-eslint": "10.0.2",
"babel-jest": "24.8.0",
"babel-loader": "8.0.6",
"babel-plugin-named-asset-import": "^0.3.2",
"babel-preset-react-app": "^9.0.0",
"case-sensitive-paths-webpack-plugin": "2.2.0",
"copy-webpack-plugin": "^5.0.3",
"css-loader": "2.1.1",
"css-loader": "3.2.0",
"dotenv": "8.0.0",
"dotenv-expand": "5.1.0",
"eslint": "^5.16.0",
"eslint-config-react-app": "^4.0.1",
"eslint-loader": "2.1.2",
"eslint-plugin-flowtype": "3.9.1",
"eslint-plugin-import": "2.17.3",
"eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-react": "7.13.0",
"eslint-loader": "2.2.1",
"eslint-plugin-flowtype": "3.13.0",
"eslint-plugin-import": "2.18.2",
"eslint-plugin-jsx-a11y": "6.2.3",
"eslint-plugin-react": "7.14.3",
"eslint-plugin-react-hooks": "^1.5.0",
"file-loader": "3.0.1",
"fs-extra": "8.0.1",
"html-webpack-plugin": "4.0.0-beta.5",
"file-loader": "4.2.0",
"fs-extra": "8.1.0",
"html-webpack-plugin": "4.0.0-beta.8",
"identity-obj-proxy": "3.0.0",
"is-wsl": "^2.0.0",
"jest": "24.8.0",
"jest-environment-jsdom-fourteen": "0.1.0",
"jest-resolve": "24.8.0",
"jest-watch-typeahead": "0.3.1",
"mini-css-extract-plugin": "0.7.0",
"optimize-css-assets-webpack-plugin": "5.0.1",
"pnp-webpack-plugin": "1.4.3",
"mini-css-extract-plugin": "0.8.0",
"optimize-css-assets-webpack-plugin": "5.0.3",
"pnp-webpack-plugin": "1.5.0",
"postcss-flexbugs-fixes": "4.1.0",
"postcss-loader": "3.0.0",
"postcss-normalize": "7.0.0",
"postcss-preset-env": "6.6.0",
"postcss-normalize": "8.0.1",
"postcss-preset-env": "6.7.0",
"postcss-safe-parser": "4.0.1",
"prettier": "^1.17.0",
"prettier-webpack-plugin": "^1.2.0",
@@ -89,15 +89,15 @@
"react-app-polyfill": "^1.0.1",
"react-dev-utils": "^9.0.1",
"react-dom": "^16.8.6",
"resolve": "1.11.1",
"sass-loader": "7.1.0",
"semver": "6.1.1",
"style-loader": "0.23.1",
"terser-webpack-plugin": "1.3.0",
"resolve": "1.12.0",
"sass-loader": "7.2.0",
"semver": "6.3.0",
"style-loader": "1.0.0",
"terser-webpack-plugin": "1.4.1",
"uglifyjs-webpack-plugin": "^2.1.2",
"url-loader": "1.1.2",
"webpack": "4.33.0",
"webpack-dev-server": "3.5.1",
"url-loader": "2.1.0",
"webpack": "4.39.1",
"webpack-dev-server": "3.8.0",
"webpack-manifest-plugin": "2.0.4",
"workbox-webpack-plugin": "4.3.1"
},
@@ -126,7 +126,7 @@
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}",
"!src/lib/index.js",
"!src/**/index.js",
"!src/utils/**",
"!src/**/*.d.ts",
"!**/tests/**"

View File

@@ -23,8 +23,6 @@
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root">
<div class="simple-keyboard"></div>
</div>
<div id="root"></div>
</body>
</html>

View File

@@ -1,87 +0,0 @@
import Keyboard from "../lib";
import "./css/App.css";
/**
* simple-keyboard demo
*/
class App {
/**
* Instantiates the demo class
*/
constructor() {
document.addEventListener("DOMContentLoaded", this.onDOMLoaded);
/**
* Default input name
* @type {string}
*/
this.layoutName = "default";
}
/**
* Executed when the DOM is ready
*/
onDOMLoaded = () => {
/**
* Creates a new simple-keyboard instance
*/
this.keyboard = new Keyboard({
debug: true,
layoutName: this.layoutName,
onChange: input => this.onChange(input),
onKeyPress: button => this.onKeyPress(button),
newLineOnEnter: true,
physicalKeyboardHighlight: true
});
/**
* Adding preview (demo only)
*/
document.querySelector(".simple-keyboard").insertAdjacentHTML(
"beforebegin",
`
<div class="simple-keyboard-preview">
<textarea class="input"></textarea>
</div>
`
);
document.querySelector(".input").addEventListener("input", event => {
this.keyboard.setInput(event.target.value);
});
};
/**
* Handles shift functionality
*/
handleShiftButton = () => {
let layoutName = this.layoutName;
let shiftToggle = (this.layoutName =
layoutName === "default" ? "shift" : "default");
this.keyboard.setOptions({
layoutName: shiftToggle
});
};
/**
* Called when simple-keyboard input has changed
*/
onChange = input => {
document.querySelector(".input").value = input;
};
/**
* Called when a simple-keyboard key is pressed
*/
onKeyPress = button => {
console.log("Button pressed", button);
/**
* Shift functionality
*/
if (button === "{lock}" || button === "{shift}") this.handleShiftButton();
};
}
export default App;

55
src/demo/BasicDemo.js Normal file
View File

@@ -0,0 +1,55 @@
import Keyboard from "../lib";
import "./css/BasicDemo.css";
const setDOM = () => {
document.querySelector("#root").innerHTML = `
<input class="input" placeholder="Tap on the virtual keyboard to start" />
<div class="simple-keyboard"></div>
`;
};
class Demo {
constructor() {
setDOM();
/**
* Demo Start
*/
this.keyboard = new Keyboard({
onChange: input => this.onChange(input),
onKeyPress: button => this.onKeyPress(button)
});
/**
* Update simple-keyboard when input is changed directly
*/
document.querySelector(".input").addEventListener("input", event => {
this.keyboard.setInput(event.target.value);
});
}
onChange(input) {
document.querySelector(".input").value = input;
console.log("Input changed", input);
}
onKeyPress(button) {
console.log("Button pressed", button);
/**
* If you want to handle the shift and caps lock buttons
*/
if (button === "{shift}" || button === "{lock}") this.handleShift();
}
handleShift() {
let currentLayout = this.keyboard.options.layoutName;
let shiftToggle = currentLayout === "default" ? "shift" : "default";
this.keyboard.setOptions({
layoutName: shiftToggle
});
}
}
export default Demo;

View File

@@ -0,0 +1,73 @@
import Keyboard from "../lib";
import "./css/ButtonThemeDemo.css";
const setDOM = () => {
document.querySelector("#root").innerHTML = `
<input class="input" placeholder="Tap on the virtual keyboard to start" />
<div class="simple-keyboard"></div>
`;
};
class Demo {
constructor() {
setDOM();
/**
* Demo Start
*/
this.keyboard = new Keyboard({
theme: "hg-theme-default my-theme",
onChange: input => this.onChange(input),
onKeyPress: button => this.onKeyPress(button),
buttonTheme: [
{
class: "my-button",
buttons: "{enter} {bksp} q Q"
},
{
class: "my-button-outline",
buttons: "q Q b B"
}
],
buttonAttributes: [
{
attribute: "aria-label",
value: "bee",
buttons: "b B"
}
]
});
/**
* Update simple-keyboard when input is changed directly
*/
document.querySelector(".input").addEventListener("input", event => {
this.keyboard.setInput(event.target.value);
});
}
onChange(input) {
document.querySelector(".input").value = input;
console.log("Input changed", input);
}
onKeyPress(button) {
console.log("Button pressed", button);
/**
* If you want to handle the shift and caps lock buttons
*/
if (button === "{shift}" || button === "{lock}") this.handleShift();
}
handleShift() {
let currentLayout = this.keyboard.options.layoutName;
let shiftToggle = currentLayout === "default" ? "shift" : "default";
this.keyboard.setOptions({
layoutName: shiftToggle
});
}
}
export default Demo;

View File

@@ -0,0 +1,157 @@
import Keyboard from "../lib";
import "./css/FullKeyboardDemo.css";
const setDOM = () => {
document.querySelector("#root").innerHTML = `
<input class="input" placeholder="Tap on the virtual keyboard to start" />
<div class="keyboardContainer">
<div class="simple-keyboard-main"></div>
<div class="controlArrows">
<div class="simple-keyboard-control"></div>
<div class="simple-keyboard-arrows"></div>
</div>
<div class="numPad">
<div class="simple-keyboard-numpad"></div>
<div class="simple-keyboard-numpadEnd"></div>
</div>
</div>
`;
};
class Demo {
constructor() {
setDOM();
/**
* Demo Start
*/
let commonKeyboardOptions = {
onChange: input => this.onChange(input),
onKeyPress: button => this.onKeyPress(button),
theme: "simple-keyboard hg-theme-default hg-layout-default",
physicalKeyboardHighlight: true,
syncInstanceInputs: true,
mergeDisplay: true,
debug: true
};
this.keyboard = new Keyboard(".simple-keyboard-main", {
...commonKeyboardOptions,
/**
* Layout by:
* Sterling Butters (https://github.com/SterlingButters)
*/
layout: {
default: [
"{escape} {f1} {f2} {f3} {f4} {f5} {f6} {f7} {f8} {f9} {f10} {f11} {f12}",
"` 1 2 3 4 5 6 7 8 9 0 - = {backspace}",
"{tab} q w e r t y u i o p [ ] \\",
"{capslock} a s d f g h j k l ; ' {enter}",
"{shiftleft} z x c v b n m , . / {shiftright}",
"{controlleft} {altleft} {metaleft} {space} {metaright} {altright}"
],
shift: [
"{escape} {f1} {f2} {f3} {f4} {f5} {f6} {f7} {f8} {f9} {f10} {f11} {f12}",
"~ ! @ # $ % ^ & * ( ) _ + {backspace}",
"{tab} Q W E R T Y U I O P { } |",
'{capslock} A S D F G H J K L : " {enter}',
"{shiftleft} Z X C V B N M < > ? {shiftright}",
"{controlleft} {altleft} {metaleft} {space} {metaright} {altright}"
]
},
display: {
"{escape}": "esc ⎋",
"{tab}": "tab ⇥",
"{backspace}": "backspace ⌫",
"{enter}": "enter ↵",
"{capslock}": "caps lock ⇪",
"{shiftleft}": "shift ⇧",
"{shiftright}": "shift ⇧",
"{controlleft}": "ctrl ⌃",
"{controlright}": "ctrl ⌃",
"{altleft}": "alt ⌥",
"{altright}": "alt ⌥",
"{metaleft}": "cmd ⌘",
"{metaright}": "cmd ⌘"
}
});
this.keyboardControlPad = new Keyboard(".simple-keyboard-control", {
...commonKeyboardOptions,
layout: {
default: [
"{prtscr} {scrolllock} {pause}",
"{insert} {home} {pageup}",
"{delete} {end} {pagedown}"
]
}
});
this.keyboardArrows = new Keyboard(".simple-keyboard-arrows", {
...commonKeyboardOptions,
layout: {
default: ["{arrowup}", "{arrowleft} {arrowdown} {arrowright}"]
}
});
this.keyboardNumPad = new Keyboard(".simple-keyboard-numpad", {
...commonKeyboardOptions,
layout: {
default: [
"{numlock} {numpaddivide} {numpadmultiply}",
"{numpad7} {numpad8} {numpad9}",
"{numpad4} {numpad5} {numpad6}",
"{numpad1} {numpad2} {numpad3}",
"{numpad0} {numpaddecimal}"
]
}
});
this.keyboardNumPadEnd = new Keyboard(".simple-keyboard-numpadEnd", {
...commonKeyboardOptions,
layout: {
default: ["{numpadsubtract}", "{numpadadd}", "{numpadenter}"]
}
});
document.querySelector(".input").addEventListener("input", event => {
let input = document.querySelector(".input").value;
this.keyboard.setInput(input);
});
}
onChange(input) {
document.querySelector(".input").value = input;
this.keyboard.setInput(input);
console.log("Input changed", input);
}
onKeyPress(button) {
console.log("Button pressed", button);
/**
* If you want to handle the shift and caps lock buttons
*/
if (
button === "{shift}" ||
button === "{shiftleft}" ||
button === "{shiftright}" ||
button === "{capslock}"
)
this.handleShift();
}
handleShift() {
let currentLayout = this.keyboard.options.layoutName;
let shiftToggle = currentLayout === "default" ? "shift" : "default";
this.keyboard.setOptions({
layoutName: shiftToggle
});
}
}
export default Demo;

View File

@@ -1,33 +0,0 @@
#root {
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue",
Helvetica, Arial, "Lucida Grande", sans-serif;
max-width: 850px;
margin: 0 auto;
padding-top: 20px;
}
#root .simple-keyboard-preview {
background: rgba(0, 0, 0, 0.8);
border: 20px solid rgba(0, 0, 0, 0.1);
height: 200px;
border-top-right-radius: 5px;
border-top-left-radius: 5px;
padding: 10px;
box-sizing: border-box;
}
#root .input {
color: rgba(255, 255, 255, 0.9);
background: transparent;
border: none;
outline: none;
font-family: monospace;
width: 100%;
height: 100%;
font-size: 18px;
}
.simple-keyboard.hg-layout-custom {
border-top-left-radius: 0px;
border-top-right-radius: 0px;
}

View File

@@ -0,0 +1,12 @@
input {
width: 100%;
height: 100px;
padding: 20px;
font-size: 20px;
border: none;
box-sizing: border-box;
}
.simple-keyboard {
max-width: 850px;
}

View File

@@ -0,0 +1,26 @@
input {
width: 100%;
height: 100px;
padding: 20px;
font-size: 20px;
border: none;
box-sizing: border-box;
}
.simple-keyboard {
max-width: 850px;
}
.simple-keyboard.my-theme .hg-button.my-button {
background: blue;
color: white;
}
.simple-keyboard.my-theme .hg-button[aria-label] {
background: black;
color: white;
}
.simple-keyboard.my-theme .hg-button.my-button-outline {
border: 2px solid red;
}

View File

@@ -0,0 +1,132 @@
input {
width: 100%;
height: 100px;
padding: 20px;
font-size: 20px;
border: none;
box-sizing: border-box;
}
.keyboardContainer {
display: flex;
background-color: rgba(0, 0, 0, 0.1);
justify-content: center;
width: 1024px;
border-radius: 5px;
}
.simple-keyboard.hg-theme-default {
display: inline-block;
}
.simple-keyboard-main.simple-keyboard {
width: 640px;
min-width: 640px;
background: none;
}
.simple-keyboard-main.simple-keyboard .hg-row:first-child {
margin-bottom: 10px;
}
.simple-keyboard-arrows.simple-keyboard {
align-self: flex-end;
background: none;
}
.simple-keyboard .hg-button.selectedButton {
background: rgba(5, 25, 70, 0.53);
color: white;
}
.simple-keyboard .hg-button.emptySpace {
pointer-events: none;
background: none;
border: none;
box-shadow: none;
}
.simple-keyboard-arrows .hg-row {
justify-content: center;
}
.simple-keyboard-arrows .hg-button {
width: 50px;
flex-grow: 0;
justify-content: center;
display: flex;
align-items: center;
}
.controlArrows {
display: flex;
align-items: center;
justify-content: space-between;
flex-flow: column;
}
.simple-keyboard-control.simple-keyboard {
background: none;
}
.simple-keyboard-control.simple-keyboard .hg-row:first-child {
margin-bottom: 10px;
}
.simple-keyboard-control .hg-button {
width: 50px;
flex-grow: 0;
justify-content: center;
display: flex;
align-items: center;
}
.numPad {
display: flex;
align-items: flex-end;
}
.simple-keyboard-numpad.simple-keyboard {
background: none;
}
.simple-keyboard-numpad.simple-keyboard {
width: 160px;
}
.simple-keyboard-numpad.simple-keyboard .hg-button {
width: 50px;
justify-content: center;
display: flex;
align-items: center;
}
.simple-keyboard-numpadEnd.simple-keyboard {
width: 50px;
background: none;
margin: 0;
padding: 5px 5px 5px 0;
}
.simple-keyboard-numpadEnd.simple-keyboard .hg-button {
align-items: center;
justify-content: center;
display: flex;
}
.simple-keyboard-numpadEnd .hg-button.hg-standardBtn.hg-button-plus {
height: 85px;
}
.simple-keyboard-numpadEnd.simple-keyboard .hg-button.hg-button-enter {
height: 85px;
}
.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton {
background: rgba(5, 25, 70, 0.53);
color: white;
}
.hg-button.hg-functionBtn.hg-button-space {
width: 350px;
}

3
src/demo/css/index.css Normal file
View File

@@ -0,0 +1,3 @@
#root {
padding: 0px 40px;
}

View File

@@ -1,6 +1,18 @@
import App from "./App";
import "./css/index.css";
/**
* Initializing demo
* Demos
*/
new App();
import BasicDemo from "./BasicDemo";
//import FullKeyboardDemo from "./FullKeyboardDemo";
//import ButtonThemeDemo from "./ButtonThemeDemo";
/**
* Selected demo
*/
const SELECTED_DEMO = BasicDemo;
/**
* Bootstrap
*/
new SELECTED_DEMO();

View File

@@ -1,20 +1,18 @@
import TestUtility from '../../utils/TestUtility';
import Index from '../index';
import App from '../App';
import BasicDemo from '../BasicDemo';
let testUtil = new TestUtility();
it('Demo will load', () => {
testUtil.setDOM();
let demo = new App();
let demo = new BasicDemo();
});
it('Demo onDOMLoaded will work', () => {
testUtil.setDOM();
let demo = new App();
demo.onDOMLoaded();
let demo = new BasicDemo();
expect(demo.keyboard).toBeTruthy();
});
@@ -22,8 +20,7 @@ it('Demo onDOMLoaded will work', () => {
it('Demo onChange will work', () => {
testUtil.setDOM();
let demo = new App();
demo.onDOMLoaded();
let demo = new BasicDemo();
demo.onChange("test");
@@ -33,8 +30,7 @@ it('Demo onChange will work', () => {
it('Demo onChange will work', () => {
testUtil.setDOM();
let demo = new App();
demo.onDOMLoaded();
let demo = new BasicDemo();
demo.keyboard.getButtonElement("q").onclick();
@@ -44,8 +40,7 @@ it('Demo onChange will work', () => {
it('Demo input change will work', () => {
testUtil.setDOM();
let demo = new App();
demo.onDOMLoaded();
let demo = new BasicDemo();
document.body.querySelector('.input').value = "test";
document.body.querySelector('.input').dispatchEvent(new Event('input'));
@@ -56,8 +51,7 @@ it('Demo input change will work', () => {
it('Demo handleShiftButton will work', () => {
testUtil.setDOM();
let demo = new App();
demo.onDOMLoaded();
let demo = new BasicDemo();
demo.keyboard.getButtonElement("{shift}")[0].onclick();
expect(demo.keyboard.options.layoutName).toBe("shift");

View File

@@ -0,0 +1,77 @@
import TestUtility from '../../utils/TestUtility';
import ButtonThemeDemo from '../ButtonThemeDemo';
let testUtil = new TestUtility();
it('Demo will load', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
});
it('Demo onDOMLoaded will work', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
expect(demo.keyboard).toBeTruthy();
});
it('Demo onChange will work', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
demo.onChange("test");
expect(document.body.querySelector('.input').value).toBe("test");
});
it('Demo onChange will work', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
demo.keyboard.getButtonElement("q").onclick();
expect(document.body.querySelector('.input').value).toBe("q");
});
it('Demo input change will work', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
document.body.querySelector('.input').value = "test";
document.body.querySelector('.input').dispatchEvent(new Event('input'));
expect(demo.keyboard.getInput()).toBe("test");
});
it('Demo handleShiftButton will work', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
demo.keyboard.getButtonElement("{shift}")[0].onclick();
expect(demo.keyboard.options.layoutName).toBe("shift");
demo.keyboard.getButtonElement("{shift}")[0].onclick();
expect(demo.keyboard.options.layoutName).toBe("default");
});
it('Demo buttons will have proper attributes and classes', () => {
testUtil.setDOM();
let demo = new ButtonThemeDemo();
let buttonDOM = demo.keyboard.getButtonElement("b");
console.log("buttonDOM", buttonDOM.outerHTML);
let hasAttribute = buttonDOM.hasAttribute("aria-label");
expect(hasAttribute).toBeTruthy();
let hasClass = buttonDOM.classList.contains("my-button-outline");
expect(hasClass).toBeTruthy();
});

View File

@@ -0,0 +1,62 @@
import TestUtility from '../../utils/TestUtility';
import FullKeyboardDemo from '../FullKeyboardDemo';
let testUtil = new TestUtility();
it('Demo will load', () => {
testUtil.setDOM();
let demo = new FullKeyboardDemo();
});
it('Demo onDOMLoaded will work', () => {
testUtil.setDOM();
let demo = new FullKeyboardDemo();
expect(demo.keyboard).toBeTruthy();
});
it('Demo onChange will work', () => {
testUtil.setDOM();
let demo = new FullKeyboardDemo();
demo.onChange("test");
expect(document.body.querySelector('.input').value).toBe("test");
});
it('Demo onChange will work', () => {
testUtil.setDOM();
let demo = new FullKeyboardDemo();
demo.keyboard.getButtonElement("q").onclick();
expect(document.body.querySelector('.input').value).toBe("q");
});
it('Demo input change will work', () => {
testUtil.setDOM();
let demo = new FullKeyboardDemo();
document.body.querySelector('.input').value = "test";
document.body.querySelector('.input').dispatchEvent(new Event('input'));
expect(demo.keyboard.getInput()).toBe("test");
expect(demo.keyboardNumPad.getInput()).toBe("test");
});
it('Demo handleShiftButton will work', () => {
testUtil.setDOM();
let demo = new FullKeyboardDemo();
demo.keyboard.getButtonElement("{shiftleft}").onclick();
expect(demo.keyboard.options.layoutName).toBe("shift");
demo.keyboard.getButtonElement("{shiftright}").onclick();
expect(demo.keyboard.options.layoutName).toBe("default");
});

View File

@@ -10,6 +10,12 @@ declare module 'simple-keyboard' {
buttons: string;
}
interface KeyboardButtonAttributes {
attribute: string;
value: string;
buttons: string;
}
interface KeyboardOptions {
/**
* Modify the keyboard layout.
@@ -41,6 +47,11 @@ declare module 'simple-keyboard' {
*/
buttonTheme?: KeyboardButtonTheme[];
/**
* A prop to add your own attributes to one or several buttons.
*/
buttonAttributes?: KeyboardButtonAttributes[];
/**
* Runs a `console.log` every time a key is pressed. Displays the buttons pressed and the current input.
*/
@@ -133,6 +144,11 @@ declare module 'simple-keyboard' {
*/
onKeyPress?: (button: string) => any;
/**
* Executes the callback function on key release.
*/
onKeyReleased?: (button: string) => any;
/**
* Executes the callback function on input change. Returns the current input's string.
*/
@@ -167,6 +183,10 @@ declare module 'simple-keyboard' {
class Keyboard {
constructor(selector: string, options: KeyboardOptions);
constructor(options: KeyboardOptions);
/**
* Options
*/
options: KeyboardOptions;
/**
@@ -174,6 +194,11 @@ declare module 'simple-keyboard' {
*/
utilities?: any;
/**
* caretPosition
*/
caretPosition?: number;
/**
* Adds/Modifies an entry to the `buttonTheme`. Basically a way to add a class to a button.
* @param {string} buttons List of buttons to select (separated by a space).

View File

@@ -78,10 +78,6 @@ html {
font-size: inherit;
}
.simple-keyboard.hg-theme-default:not(.hg-touch-events) .hg-button:active {
background: #e4e4e4;
}
.simple-keyboard.hg-theme-default.hg-layout-numeric .hg-button {
width: 33.3%;
height: 60px;

View File

@@ -27,7 +27,16 @@ class SimpleKeyboard {
/**
* Initializing Utilities
*/
this.utilities = new Utilities(this);
this.utilities = new Utilities({
getOptions: this.getOptions,
getCaretPosition: this.getCaretPosition,
dispatch: this.dispatch
});
/**
* Caret position
*/
this.caretPosition = null;
/**
* Processing options
@@ -42,6 +51,7 @@ class SimpleKeyboard {
* @property {boolean} mergeDisplay By default, when you set the display property, you replace the default one. This setting merges them instead.
* @property {string} theme A prop to add your own css classes to the keyboard wrapper. You can add multiple classes separated by a space.
* @property {Array} buttonTheme A prop to add your own css classes to one or several buttons.
* @property {Array} buttonAttributes A prop to add your own attributes to one or several buttons.
* @property {boolean} debug Runs a console.log every time a key is pressed. Displays the buttons pressed and the current input.
* @property {boolean} newLineOnEnter Specifies whether clicking the “ENTER” button will input a newline (\n) or not.
* @property {boolean} tabCharOnTab Specifies whether clicking the “TAB” button will input a tab character (\t) or not.
@@ -66,6 +76,7 @@ class SimpleKeyboard {
* @property {boolean} useMouseEvents Opt out of PointerEvents handling, falling back to the prior mouse event logic.
* @property {function} destroy Clears keyboard listeners and DOM elements.
* @property {boolean} disableButtonHold Disable button hold action.
* @property {function} onKeyReleased Executes the callback function on key release.
*/
this.options = options;
this.options.layoutName = this.options.layoutName || "default";
@@ -112,16 +123,7 @@ class SimpleKeyboard {
this.buttonElements = {};
/**
* Rendering keyboard
*/
if (this.keyboardDOM) this.render();
else {
console.warn(`"${keyboardDOMQuery}" was not found in the DOM.`);
throw new Error("KEYBOARD_DOM_ERROR");
}
/**
* Saving instance
* Simple-keyboard Instances
* This enables multiple simple-keyboard support with easier management
*/
if (!window["SimpleKeyboardInstances"])
@@ -131,10 +133,31 @@ class SimpleKeyboard {
this.utilities.camelCase(this.keyboardDOMClass)
] = this;
/**
* Instance vars
*/
this.allKeyboardInstances = window["SimpleKeyboardInstances"];
this.currentInstanceName = this.utilities.camelCase(this.keyboardDOMClass);
this.keyboardInstanceNames = Object.keys(window["SimpleKeyboardInstances"]);
this.isFirstKeyboardInstance =
this.keyboardInstanceNames[0] === this.currentInstanceName;
/**
* Physical Keyboard support
*/
this.physicalKeyboardInterface = new PhysicalKeyboard(this);
this.physicalKeyboard = new PhysicalKeyboard({
dispatch: this.dispatch,
getOptions: this.getOptions
});
/**
* Rendering keyboard
*/
if (this.keyboardDOM) this.render();
else {
console.warn(`"${keyboardDOMQuery}" was not found in the DOM.`);
throw new Error("KEYBOARD_DOM_ERROR");
}
/**
* Modules
@@ -143,6 +166,12 @@ class SimpleKeyboard {
this.loadModules();
}
/**
* Getters
*/
getOptions = () => this.options;
getCaretPosition = () => this.caretPosition;
/**
* Handles clicks made to keyboard buttons
* @param {string} button The button's layout name.
@@ -167,7 +196,6 @@ class SimpleKeyboard {
let updatedInput = this.utilities.getUpdatedInput(
button,
this.input[this.options.inputName],
this.options,
this.caretPosition
);
@@ -185,7 +213,7 @@ class SimpleKeyboard {
*/
if (
this.options.maxLength &&
this.utilities.handleMaxLength(this.input, this.options, updatedInput)
this.utilities.handleMaxLength(this.input, updatedInput)
) {
return false;
}
@@ -193,7 +221,6 @@ class SimpleKeyboard {
this.input[this.options.inputName] = this.utilities.getUpdatedInput(
button,
this.input[this.options.inputName],
this.options,
this.caretPosition,
true
);
@@ -269,9 +296,15 @@ class SimpleKeyboard {
/**
* Handles button mouseup
*/
handleButtonMouseUp() {
handleButtonMouseUp(button) {
this.isMouseHold = false;
if (this.holdInteractionTimeout) clearTimeout(this.holdInteractionTimeout);
/**
* Calling onKeyReleased
*/
if (button && typeof this.options.onKeyReleased === "function")
this.options.onKeyReleased(button);
}
/**
@@ -584,33 +617,63 @@ class SimpleKeyboard {
}
/**
* Retrieves the current cursor position within a input or textarea (if any)
* Handles simple-keyboard event listeners
*/
handleCaret() {
setEventListeners() {
/**
* Only first instance should insall the caret handling events
* Only first instance should set the event listeners
*/
this.caretPosition = null;
let simpleKeyboardInstances = window["SimpleKeyboardInstances"];
if (
(simpleKeyboardInstances &&
Object.keys(simpleKeyboardInstances)[0] ===
this.utilities.camelCase(this.keyboardDOMClass)) ||
!simpleKeyboardInstances
) {
if (this.isFirstKeyboardInstance || !this.allKeyboardInstances) {
if (this.options.debug) {
console.log(`Caret handling started (${this.keyboardDOMClass})`);
}
document.addEventListener("keyup", this.caretEventHandler);
document.addEventListener("mouseup", this.caretEventHandler);
document.addEventListener("touchend", this.caretEventHandler);
/**
* Event Listeners
*/
document.addEventListener("keyup", this.handleKeyUp);
document.addEventListener("keydown", this.handleKeyDown);
document.addEventListener("mouseup", this.handleMouseUp);
document.addEventListener("touchend", this.handleTouchEnd);
}
}
/**
* Called by {@link handleCaret} when an event that warrants a cursor position update is triggered
* Event Handler: KeyUp
*/
handleKeyUp(event) {
this.caretEventHandler(event);
if (this.options.physicalKeyboardHighlight) {
this.physicalKeyboard.handleHighlightKeyUp(event);
}
}
/**
* Event Handler: KeyDown
*/
handleKeyDown(event) {
if (this.options.physicalKeyboardHighlight) {
this.physicalKeyboard.handleHighlightKeyDown(event);
}
}
/**
* Event Handler: MouseUp
*/
handleMouseUp(event) {
this.caretEventHandler(event);
}
/**
* Event Handler: TouchEnd
*/
handleTouchEnd(event) {
this.caretEventHandler(event);
}
/**
* Called by {@link setEventListeners} when an event that warrants a cursor position update is triggered
*/
caretEventHandler(event) {
let targetTagName;
@@ -657,9 +720,10 @@ class SimpleKeyboard {
/**
* Remove listeners
*/
document.removeEventListener("keyup", this.caretEventHandler);
document.removeEventListener("mouseup", this.caretEventHandler);
document.removeEventListener("touchend", this.caretEventHandler);
document.removeEventListener("keyup", this.handleKeyUp);
document.removeEventListener("keydown", this.handleKeyDown);
document.removeEventListener("mouseup", this.handleMouseUp);
document.removeEventListener("touchend", this.handleTouchEnd);
/**
* Clear DOM
@@ -670,47 +734,62 @@ class SimpleKeyboard {
/**
* Process buttonTheme option
*/
getButtonTheme() {
let buttonThemesParsed = {};
getButtonThemeClasses(button) {
let buttonTheme = this.options.buttonTheme;
let buttonClasses = [];
this.options.buttonTheme.forEach(themeObj => {
if (themeObj.buttons && themeObj.class) {
let themeButtons;
if (Array.isArray(buttonTheme)) {
buttonTheme.forEach(themeObj => {
if (
themeObj.class &&
typeof themeObj.class === "string" &&
(themeObj.buttons && typeof themeObj.buttons === "string")
) {
let themeObjClasses = themeObj.class.split(" ");
let themeObjButtons = themeObj.buttons.split(" ");
if (typeof themeObj.buttons === "string") {
themeButtons = themeObj.buttons.split(" ");
if (themeObjButtons.includes(button)) {
buttonClasses = [...buttonClasses, ...themeObjClasses];
}
} else {
console.warn(
`Incorrect "buttonTheme". Please check the documentation.`,
themeObj
);
}
});
}
if (themeButtons) {
themeButtons.forEach(themeButton => {
let themeParsed = buttonThemesParsed[themeButton];
return buttonClasses;
}
// If the button has already been added
if (themeParsed) {
// Making sure we don't add duplicate classes, even when buttonTheme has duplicates
if (
!this.utilities.countInArray(
themeParsed.split(" "),
themeObj.class
)
) {
buttonThemesParsed[themeButton] = `${themeParsed} ${
themeObj.class
}`;
}
} else {
buttonThemesParsed[themeButton] = themeObj.class;
}
});
/**
* Process buttonAttributes option
*/
setDOMButtonAttributes(button, callback) {
let buttonAttributes = this.options.buttonAttributes;
if (Array.isArray(buttonAttributes)) {
buttonAttributes.forEach(attrObj => {
if (
attrObj.attribute &&
typeof attrObj.attribute === "string" &&
(attrObj.value && typeof attrObj.value === "string") &&
(attrObj.buttons && typeof attrObj.buttons === "string")
) {
let attrObjButtons = attrObj.buttons.split(" ");
if (attrObjButtons.includes(button)) {
callback(attrObj.attribute, attrObj.value);
}
} else {
console.warn(
`Incorrect "buttonAttributes". Please check the documentation.`,
attrObj
);
}
} else {
console.warn(
`buttonTheme row is missing the "buttons" or the "class". Please check the documentation.`
);
}
});
return buttonThemesParsed;
});
}
}
onTouchDeviceDetected() {
@@ -763,9 +842,9 @@ class SimpleKeyboard {
}
/**
* Caret handling
* setEventListeners
*/
this.handleCaret();
this.setEventListeners();
if (typeof this.options.onInit === "function") this.options.onInit();
}
@@ -788,6 +867,7 @@ class SimpleKeyboard {
* Notify about PointerEvents usage
*/
if (
this.isFirstKeyboardInstance &&
this.utilities.pointerEventsSupported() &&
!this.options.useTouchEvents &&
!this.options.useMouseEvents
@@ -922,9 +1002,7 @@ class SimpleKeyboard {
*/
let containerDOM = document.createElement("div");
containerDOM.className += "hg-button-container";
let containerUID = `${
this.options.layoutName
}-r${rowIndex}c${arrIndex}`;
let containerUID = `${this.options.layoutName}-r${rowIndex}c${arrIndex}`;
containerDOM.setAttribute("data-skUID", containerUID);
/**
@@ -999,19 +1077,10 @@ class SimpleKeyboard {
let useMouseEvents = this.options.useMouseEvents || false;
let disableRowButtonContainers = this.options.disableRowButtonContainers;
/**
* Account for buttonTheme, if set
*/
let buttonThemesParsed = Array.isArray(this.options.buttonTheme)
? this.getButtonTheme()
: {};
/**
* Adding themeClass, layoutClass to keyboardDOM
*/
this.keyboardDOM.className += ` ${this.options.theme} ${layoutClass} ${
this.keyboardPluginClasses
} ${useTouchEventsClass}`;
this.keyboardDOM.className += ` ${this.options.theme} ${layoutClass} ${this.keyboardPluginClasses} ${useTouchEventsClass}`;
/**
* Iterating through each row
@@ -1072,7 +1141,6 @@ class SimpleKeyboard {
* Processing button options
*/
let fctBtnClass = this.utilities.getButtonClass(button);
let buttonThemeClass = buttonThemesParsed[button];
let buttonDisplayName = this.utilities.getButtonDisplayName(
button,
this.options.display,
@@ -1084,9 +1152,19 @@ class SimpleKeyboard {
*/
let buttonType = this.options.useButtonTag ? "button" : "div";
let buttonDOM = document.createElement(buttonType);
buttonDOM.className += `hg-button ${fctBtnClass}${
buttonThemeClass ? " " + buttonThemeClass : ""
}`;
buttonDOM.className += `hg-button ${fctBtnClass}`;
/**
* Adding buttonTheme
*/
buttonDOM.classList.add(...this.getButtonThemeClasses(button));
/**
* Adding buttonAttributes
*/
this.setDOMButtonAttributes(button, (attribute, value) => {
buttonDOM.setAttribute(attribute, value);
});
/**
* Handle button click event
@@ -1104,10 +1182,8 @@ class SimpleKeyboard {
this.handleButtonClicked(button);
this.handleButtonMouseDown(button, e);
};
buttonDOM.onpointerup = e => {
this.handleButtonMouseUp();
};
buttonDOM.onpointercancel = e => this.handleButtonMouseUp();
buttonDOM.onpointerup = () => this.handleButtonMouseUp(button);
buttonDOM.onpointercancel = () => this.handleButtonMouseUp(button);
} else {
/**
* Fallback for browsers not supporting PointerEvents
@@ -1120,8 +1196,8 @@ class SimpleKeyboard {
this.handleButtonClicked(button);
this.handleButtonMouseDown(button, e);
};
buttonDOM.ontouchend = e => this.handleButtonMouseUp();
buttonDOM.ontouchcancel = e => this.handleButtonMouseUp();
buttonDOM.ontouchend = () => this.handleButtonMouseUp(button);
buttonDOM.ontouchcancel = () => this.handleButtonMouseUp(button);
} else {
/**
* Handle mouse events
@@ -1130,9 +1206,8 @@ class SimpleKeyboard {
this.isMouseHold = false;
this.handleButtonClicked(button);
};
buttonDOM.onmousedown = e => {
this.handleButtonMouseDown(button, e);
};
buttonDOM.onmousedown = e => this.handleButtonMouseDown(button, e);
buttonDOM.onmouseup = () => this.handleButtonMouseUp(button);
}
}
@@ -1148,11 +1223,6 @@ class SimpleKeyboard {
let buttonUID = `${this.options.layoutName}-r${rIndex}b${bIndex}`;
buttonDOM.setAttribute("data-skBtnUID", buttonUID);
/**
* Adding display label
*/
buttonDOM.setAttribute("data-displayLabel", buttonDisplayName);
/**
* Adding button label to button
*/
@@ -1214,8 +1284,8 @@ class SimpleKeyboard {
/**
* Handling ontouchend, ontouchcancel
*/
document.ontouchend = e => this.handleButtonMouseUp();
document.ontouchcancel = e => this.handleButtonMouseUp();
document.ontouchend = () => this.handleButtonMouseUp();
document.ontouchcancel = () => this.handleButtonMouseUp();
} else if (!useTouchEvents) {
/**
* Handling mouseup

View File

@@ -1242,4 +1242,87 @@ it('Keyboard disableButtonHold will work', () => {
});
expect(keyboard.options.disableButtonHold).toBe(true);
});
it('Keyboard caretEventHandler will be triggered on mouseup and ontouchend', () => {
testUtil.setDOM();
let keyboard = new Keyboard({
disableCaretPositioning: true
});
keyboard.caretPosition = 6;
document.dispatchEvent(new MouseEvent('mouseup', {
target: {
tagName: "input"
}
}));
expect(keyboard.caretPosition).toBe(null);
keyboard.setOptions({
disableCaretPositioning: false
})
keyboard.caretPosition = 10;
document.dispatchEvent(new TouchEvent('touchend', {
target: {
tagName: "input"
}
}));
expect(keyboard.caretPosition).toBe(10);
});
it('Keyboard onKeyReleased will work', () => {
testUtil.setDOM();
let pressed = false;
let firedTimes = 0;
let buttonPressed;
let keyboard = new Keyboard({
onKeyReleased: button => {
pressed = true;
buttonPressed = button;
firedTimes++;
},
debug: true
});
keyboard.getButtonElement("q").onpointerdown();
keyboard.getButtonElement("q").onpointerup();
expect(pressed).toBeTruthy();
expect(firedTimes).toBe(1);
expect(buttonPressed).toBe("q");
});
it('Keyboard buttonAttribute will work', () => {
testUtil.setDOM();
let keyboard = new Keyboard({
buttonAttributes: [
{
attribute: "aria-label",
value: "bee",
buttons: "b B"
}
]
});
});
it('Keyboard buttonAttribute will warn about invalid entries', () => {
testUtil.setDOM();
let keyboard = new Keyboard({
buttonAttributes: [
{
attribute: false,
value: null
}
]
});
});

View File

@@ -1,3 +1,5 @@
import Utilities from "../services/Utilities";
/**
* Physical Keyboard Service
*/
@@ -5,66 +7,47 @@ class PhysicalKeyboard {
/**
* Creates an instance of the PhysicalKeyboard service
*/
constructor(simpleKeyboardInstance) {
constructor({ dispatch, getOptions }) {
/**
* @type {object} A simple-keyboard instance
*/
this.simpleKeyboardInstance = simpleKeyboardInstance;
this.dispatch = dispatch;
this.getOptions = getOptions;
/**
* Bindings
*/
this.initKeyboardListener = this.initKeyboardListener.bind(this);
this.getSimpleKeyboardLayoutKey = this.getSimpleKeyboardLayoutKey.bind(
this
);
/**
* Initialize key listeners
*/
this.initKeyboardListener();
Utilities.bindMethods(PhysicalKeyboard, this);
}
/**
* Initializes key event listeners
*/
initKeyboardListener() {
// Adding button style on keydown
document.addEventListener("keydown", event => {
if (this.simpleKeyboardInstance.options.physicalKeyboardHighlight) {
let buttonPressed = this.getSimpleKeyboardLayoutKey(event);
handleHighlightKeyDown(event) {
let options = this.getOptions();
let buttonPressed = this.getSimpleKeyboardLayoutKey(event);
this.simpleKeyboardInstance.dispatch(instance => {
let buttonDOM =
instance.getButtonElement(buttonPressed) ||
instance.getButtonElement(`{${buttonPressed}}`);
this.dispatch(instance => {
let buttonDOM =
instance.getButtonElement(buttonPressed) ||
instance.getButtonElement(`{${buttonPressed}}`);
if (buttonDOM) {
buttonDOM.style.backgroundColor =
this.simpleKeyboardInstance.options
.physicalKeyboardHighlightBgColor || "#9ab4d0";
buttonDOM.style.color =
this.simpleKeyboardInstance.options
.physicalKeyboardHighlightTextColor || "white";
}
});
if (buttonDOM) {
buttonDOM.style.backgroundColor =
options.physicalKeyboardHighlightBgColor || "#9ab4d0";
buttonDOM.style.color =
options.physicalKeyboardHighlightTextColor || "white";
}
});
}
// Removing button style on keyup
document.addEventListener("keyup", event => {
if (this.simpleKeyboardInstance.options.physicalKeyboardHighlight) {
let buttonPressed = this.getSimpleKeyboardLayoutKey(event);
handleHighlightKeyUp(event) {
let buttonPressed = this.getSimpleKeyboardLayoutKey(event);
this.simpleKeyboardInstance.dispatch(instance => {
let buttonDOM =
instance.getButtonElement(buttonPressed) ||
instance.getButtonElement(`{${buttonPressed}}`);
this.dispatch(instance => {
let buttonDOM =
instance.getButtonElement(buttonPressed) ||
instance.getButtonElement(`{${buttonPressed}}`);
if (buttonDOM && buttonDOM.removeAttribute) {
buttonDOM.removeAttribute("style");
}
});
if (buttonDOM && buttonDOM.removeAttribute) {
buttonDOM.removeAttribute("style");
}
});
}

View File

@@ -5,11 +5,10 @@ class Utilities {
/**
* Creates an instance of the Utility service
*/
constructor(simpleKeyboardInstance) {
/**
* @type {object} A simple-keyboard instance
*/
this.simpleKeyboardInstance = simpleKeyboardInstance;
constructor({ getOptions, getCaretPosition, dispatch }) {
this.getOptions = getOptions;
this.getCaretPosition = getCaretPosition;
this.dispatch = dispatch;
/**
* Bindings
@@ -125,11 +124,11 @@ class Utilities {
*
* @param {string} button The button's layout name
* @param {string} input The input string
* @param {object} options The simple-keyboard options object
* @param {number} caretPos The cursor's current position
* @param {boolean} moveCaret Whether to update simple-keyboard's cursor
*/
getUpdatedInput(button, input, options, caretPos, moveCaret) {
getUpdatedInput(button, input, caretPos, moveCaret) {
let options = this.getOptions();
let output = input;
if (
@@ -187,43 +186,34 @@ class Utilities {
* @param {boolean} minus Whether the cursor should be moved to the left or not.
*/
updateCaretPos(length, minus) {
let newCaretPos = this.updateCaretPosAction(
this.simpleKeyboardInstance,
length,
minus
);
let newCaretPos = this.updateCaretPosAction(length, minus);
if (this.simpleKeyboardInstance.options.syncInstanceInputs) {
this.simpleKeyboardInstance.dispatch(instance => {
instance.caretPosition = newCaretPos;
});
}
this.dispatch(instance => {
instance.caretPosition = newCaretPos;
});
}
/**
* Action method of updateCaretPos
*
* @param {object} instance The instance whose position should be updated
* @param {number} length Represents by how many characters the input should be moved
* @param {boolean} minus Whether the cursor should be moved to the left or not.
*/
updateCaretPosAction(instance, length, minus) {
updateCaretPosAction(length, minus) {
let options = this.getOptions();
let caretPosition = this.getCaretPosition();
if (minus) {
if (instance.caretPosition > 0)
instance.caretPosition = instance.caretPosition - length;
if (caretPosition > 0) caretPosition = caretPosition - length;
} else {
instance.caretPosition = instance.caretPosition + length;
caretPosition = caretPosition + length;
}
if (this.simpleKeyboardInstance.options.debug) {
console.log(
"Caret at:",
instance.caretPosition,
`(${instance.keyboardDOMClass})`
);
if (options.debug) {
console.log("Caret at:", caretPosition, `(${this.keyboardDOMClass})`);
}
return instance.caretPosition;
return caretPosition;
}
/**
@@ -263,7 +253,9 @@ class Utilities {
* @param {boolean} moveCaret Whether to update simple-keyboard's cursor
*/
removeAt(source, position, moveCaret) {
if (this.simpleKeyboardInstance.caretPosition === 0) {
let caretPosition = this.getCaretPosition();
if (caretPosition === 0) {
return source;
}
@@ -306,10 +298,10 @@ class Utilities {
* Determines whether the maxLength has been reached. This function is called when the maxLength option it set.
*
* @param {object} inputObj
* @param {object} options
* @param {string} updatedInput
*/
handleMaxLength(inputObj, options, updatedInput) {
handleMaxLength(inputObj, updatedInput) {
let options = this.getOptions();
let maxLength = options.maxLength;
let currentInput = inputObj[options.inputName];
let condition = currentInput.length === maxLength;
@@ -399,6 +391,8 @@ class Utilities {
* @param {string} string The string to transform.
*/
camelCase(string) {
if (!string) return false;
return string
.toLowerCase()
.trim()
@@ -407,16 +401,6 @@ class Utilities {
word.length ? string + word[0].toUpperCase() + word.slice(1) : string
);
}
/**
* Counts the number of duplicates in a given array
*
* @param {Array} array The haystack to search in
* @param {string} value The needle to search for
*/
countInArray(array, value) {
return array.reduce((n, x) => n + (x === value), 0);
}
}
export default Utilities;

View File

@@ -13,7 +13,7 @@ it('Keyboard mergeDisplay will work', () => {
}
});
expect(keyboard.getButtonElement("q").getAttribute("data-displaylabel")).toBe("qreplaced");
expect(keyboard.getButtonElement("q").querySelector("span").innerHTML).toBe("qreplaced");
});
it('Keyboard function buttons will work', () => {
@@ -31,7 +31,7 @@ it('Keyboard {bksp} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{bksp}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{bksp}", "test");
expect(output).toBe("tes");
});
@@ -41,7 +41,7 @@ it('Keyboard {space} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{space}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{space}", "test");
expect(output).toBe("test ");
});
@@ -51,7 +51,7 @@ it('Keyboard {tab} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{tab}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{tab}", "test");
expect(output).toBe("test\t");
});
@@ -63,7 +63,7 @@ it('Keyboard {tab} button will work with tabCharOnTab:false', () => {
tabCharOnTab: false
});
let output = keyboard.utilities.getUpdatedInput("{tab}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{tab}", "test");
expect(output).toBe("test");
});
@@ -73,7 +73,7 @@ it('Keyboard {enter} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{enter}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{enter}", "test");
expect(output).toBe("test");
});
@@ -85,7 +85,7 @@ it('Keyboard {enter} button will work with newLineOnEnter:true', () => {
newLineOnEnter: true
});
let output = keyboard.utilities.getUpdatedInput("{enter}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{enter}", "test");
expect(output).toBe("test\n");
});
@@ -96,7 +96,7 @@ it('Keyboard {numpadX} buttons will work', () => {
let keyboard = new Keyboard();
for(let i = 0;i<=9;i++){
let output = keyboard.utilities.getUpdatedInput(`{numpad${i}}`, "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput(`{numpad${i}}`, "test");
expect(output).toBe(`test${i}`);
}
});
@@ -106,7 +106,7 @@ it('Keyboard {numpaddivide} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{numpaddivide}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{numpaddivide}", "test");
expect(output).toBe("test/");
});
@@ -116,7 +116,7 @@ it('Keyboard {numpadmultiply} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{numpadmultiply}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{numpadmultiply}", "test");
expect(output).toBe("test*");
});
@@ -126,7 +126,7 @@ it('Keyboard {numpadsubtract} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{numpadsubtract}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{numpadsubtract}", "test");
expect(output).toBe("test-");
});
@@ -136,7 +136,7 @@ it('Keyboard {numpadadd} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{numpadadd}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{numpadadd}", "test");
expect(output).toBe("test+");
});
@@ -146,7 +146,7 @@ it('Keyboard {numpadadd} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{numpadadd}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{numpadadd}", "test");
expect(output).toBe("test+");
});
@@ -156,7 +156,7 @@ it('Keyboard {numpaddecimal} button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{numpaddecimal}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{numpaddecimal}", "test");
expect(output).toBe("test.");
});
@@ -172,7 +172,7 @@ it('Keyboard custom function buttons will work', () => {
}
});
let output = keyboard.utilities.getUpdatedInput("{randombuttontest}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{randombuttontest}", "test");
expect(output).toBe("test");
expect(keyboard.getButtonElement("{randombuttontest}").onclick).toBeTruthy();
@@ -183,7 +183,7 @@ it('Keyboard "{" button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("{", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("{", "test");
expect(output).toBe("test{");
});
@@ -193,7 +193,7 @@ it('Keyboard "}" button will work', () => {
let keyboard = new Keyboard();
let output = keyboard.utilities.getUpdatedInput("}", "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput("}", "test");
expect(output).toBe("test}");
});
@@ -205,7 +205,7 @@ it('Keyboard standard button will affect input', () => {
for (let i = 65; i <= 90; i++) {
let char = String.fromCharCode(i);
let output = keyboard.utilities.getUpdatedInput(char, "test", keyboard.options);
let output = keyboard.utilities.getUpdatedInput(char, "test");
expect(output).toBe(`test${char}`);
}
});
@@ -213,8 +213,9 @@ it('Keyboard standard button will affect input', () => {
it('Keyboard updateCaretPos will work with minus', () => {
testUtil.setDOM();
let keyboard = new Keyboard();
keyboard.options.syncInstanceInputs = true;
let keyboard = new Keyboard({
syncInstanceInputs: true
});
keyboard.caretPosition = 5;
keyboard.utilities.updateCaretPos(2, true);
@@ -282,7 +283,7 @@ it('Keyboard addStringAt will respect maxLength', () => {
keyboard.setInput("test");
keyboard.caretPosition = 4;
keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq")
keyboard.utilities.handleMaxLength(keyboard.input, "testq")
keyboard.utilities.addStringAt("test", "q", 4);
expect(keyboard.caretPosition).toBe(4);
@@ -297,7 +298,7 @@ it('Keyboard handleMaxLength will exit out on same updatedInput', () => {
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "test")
let output = keyboard.utilities.handleMaxLength(keyboard.input, "test")
expect(output).toBeFalsy();
});
@@ -313,7 +314,7 @@ it('Keyboard handleMaxLength will work with object maxLength', () => {
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeTruthy();
});
@@ -330,7 +331,7 @@ it('Keyboard handleMaxLength will work with object maxLength and debug', () => {
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeTruthy();
});
@@ -346,7 +347,7 @@ it('Keyboard handleMaxLength will return false if obj maxLength not reached', ()
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeFalsy();
});
@@ -361,7 +362,7 @@ it('Keyboard handleMaxLength will work without debug', () => {
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeTruthy();
});
@@ -376,7 +377,7 @@ it('Keyboard handleMaxLength will work with numeric maxLength', () => {
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeFalsy();
});
@@ -390,7 +391,7 @@ it('Keyboard handleMaxLength wont work with non numeric or object maxLength', ()
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeFalsy();
});
@@ -405,7 +406,7 @@ it('Keyboard handleMaxLength wont work with non numeric or object maxLength (wit
keyboard.setInput("test");
let output = keyboard.utilities.handleMaxLength(keyboard.input, keyboard.options, "testq");
let output = keyboard.utilities.handleMaxLength(keyboard.input, "testq");
expect(output).toBeFalsy();
});
@@ -483,4 +484,10 @@ it('Keyboard will work with custom (and weird) class', () => {
testUtil.setDOM("my--weird--class");
let keyboard = new Keyboard(".my--weird--class");
expect(keyboard.keyboardDOMClass).toBe("my--weird--class");
});
it('Keyboard camelCase will work with empty strings', () => {
testUtil.setDOM();
let keyboard = new Keyboard();
expect(keyboard.utilities.camelCase()).toBeFalsy();
});

View File

@@ -7,9 +7,14 @@ export default class TestUtility {
*/
setDOM = (divClass) => {
this.clear();
const div = document.createElement('div');
div.className += divClass || "simple-keyboard";
document.body.appendChild(div);
const wrapperDOM = document.createElement('div');
wrapperDOM.setAttribute("id", "root");
const keyboardDOM = document.createElement('div');
keyboardDOM.className = divClass || "simple-keyboard";
wrapperDOM.appendChild(keyboardDOM);
document.body.appendChild(wrapperDOM);
}
/**