@pie-lib/math-input 6.11.4 → 6.13.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/math-input-test.js +109 -0
- package/lib/horizontal-keypad.js +10 -4
- package/lib/index.js +11 -15
- package/lib/keypad/__tests__/index.test.js +41 -0
- package/lib/keypad/__tests__/keys-layout.test.js +15 -0
- package/lib/keypad/index.js +96 -25
- package/lib/keypad/keys-layout.js +1 -1
- package/lib/keys/__tests__/utils.test.js +60 -0
- package/lib/keys/basic-operators.js +1 -1
- package/lib/keys/chars.js +1 -1
- package/lib/keys/comparison.js +1 -1
- package/lib/keys/constants.js +1 -1
- package/lib/keys/digits.js +1 -1
- package/lib/keys/edit.js +1 -1
- package/lib/keys/exponent.js +1 -1
- package/lib/keys/fractions.js +1 -1
- package/lib/keys/geometry.js +5 -3
- package/lib/keys/grades.js +13 -1
- package/lib/keys/index.js +1 -1
- package/lib/keys/log.js +2 -2
- package/lib/keys/logic.js +1 -1
- package/lib/keys/matrices.js +1 -1
- package/lib/keys/misc.js +1 -1
- package/lib/keys/navigation.js +1 -1
- package/lib/keys/operators.js +1 -1
- package/lib/keys/statistics.js +1 -1
- package/lib/keys/sub-sup.js +1 -1
- package/lib/keys/trigonometry.js +1 -1
- package/lib/keys/utils.js +1 -1
- package/lib/keys/vars.js +1 -1
- package/lib/math-input.js +1 -1
- package/lib/mq/__tests__/input.test.js +119 -0
- package/lib/mq/__tests__/static.test.js +74 -0
- package/lib/mq/common-mq-styles.js +110 -0
- package/lib/mq/custom-elements.js +1 -1
- package/lib/mq/index.js +9 -1
- package/lib/mq/input.js +13 -11
- package/lib/mq/static.js +199 -76
- package/lib/updateSpans.js +23 -0
- package/package.json +2 -2
- package/src/__tests__/__snapshots__/math-input-test.jsx.snap +152 -0
- package/src/__tests__/math-input-test.jsx +85 -0
- package/src/horizontal-keypad.jsx +14 -1
- package/src/index.jsx +1 -10
- package/src/keypad/__tests__/__snapshots__/index.test.jsx.snap +193 -0
- package/src/keypad/__tests__/index.test.jsx +24 -0
- package/src/keypad/__tests__/keys-layout.test.js +15 -0
- package/src/keypad/index.jsx +99 -15
- package/src/keys/__tests__/utils.test.js +57 -0
- package/src/keys/geometry.js +6 -2
- package/src/keys/grades.js +11 -0
- package/src/keys/log.js +1 -1
- package/src/mq/__tests__/__snapshots__/input.test.jsx.snap +9 -0
- package/src/mq/__tests__/input.test.jsx +92 -0
- package/src/mq/__tests__/static.test.jsx +57 -0
- package/src/mq/common-mq-styles.js +105 -0
- package/src/mq/index.js +2 -1
- package/src/mq/input.jsx +22 -9
- package/src/mq/static.jsx +142 -13
- package/src/updateSpans.js +15 -0
- package/README.md +0 -27
- package/lib/horizontal-keypad.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/keypad/index.js.map +0 -1
- package/lib/keypad/keys-layout.js.map +0 -1
- package/lib/keys/basic-operators.js.map +0 -1
- package/lib/keys/chars.js.map +0 -1
- package/lib/keys/comparison.js.map +0 -1
- package/lib/keys/constants.js.map +0 -1
- package/lib/keys/digits.js.map +0 -1
- package/lib/keys/edit.js.map +0 -1
- package/lib/keys/exponent.js.map +0 -1
- package/lib/keys/fractions.js.map +0 -1
- package/lib/keys/geometry.js.map +0 -1
- package/lib/keys/grades.js.map +0 -1
- package/lib/keys/index.js.map +0 -1
- package/lib/keys/log.js.map +0 -1
- package/lib/keys/logic.js.map +0 -1
- package/lib/keys/matrices.js.map +0 -1
- package/lib/keys/misc.js.map +0 -1
- package/lib/keys/navigation.js.map +0 -1
- package/lib/keys/operators.js.map +0 -1
- package/lib/keys/statistics.js.map +0 -1
- package/lib/keys/sub-sup.js.map +0 -1
- package/lib/keys/trigonometry.js.map +0 -1
- package/lib/keys/utils.js.map +0 -1
- package/lib/keys/vars.js.map +0 -1
- package/lib/math-input.js.map +0 -1
- package/lib/mq/custom-elements.js.map +0 -1
- package/lib/mq/index.js.map +0 -1
- package/lib/mq/input.js.map +0 -1
- package/lib/mq/static.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.13.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-input@6.11.4...@pie-lib/math-input@6.13.0-beta.0) (2025-07-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/math-input
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [6.12.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-input@6.11.4...@pie-lib/math-input@6.12.0-beta.0) (2025-07-15)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/math-input
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [6.11.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-input@6.11.3...@pie-lib/math-input@6.11.4) (2023-07-04)
|
|
7
23
|
|
|
8
24
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _mathInput = require("@pie-lib/math-input");
|
|
12
|
+
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
+
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
+
|
|
17
|
+
describe('MathInput', function () {
|
|
18
|
+
var w;
|
|
19
|
+
var onChange;
|
|
20
|
+
beforeEach(function () {
|
|
21
|
+
onChange = jest.fn();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
var wrapper = function wrapper(extras) {
|
|
25
|
+
var defaults = {
|
|
26
|
+
classes: {},
|
|
27
|
+
className: 'className',
|
|
28
|
+
onChange: onChange
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
32
|
+
|
|
33
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_mathInput.MathInput, props));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
describe('snapshot', function () {
|
|
37
|
+
it('renders', function () {
|
|
38
|
+
w = wrapper();
|
|
39
|
+
expect(w).toMatchSnapshot();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('logic', function () {
|
|
43
|
+
beforeEach(function () {
|
|
44
|
+
w = wrapper();
|
|
45
|
+
w.instance().input = {
|
|
46
|
+
write: jest.fn(),
|
|
47
|
+
command: jest.fn(),
|
|
48
|
+
keystroke: jest.fn()
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
describe('keypadPress', function () {
|
|
52
|
+
it('calls input.write for latex', function () {
|
|
53
|
+
w.instance().keypadPress({
|
|
54
|
+
latex: 'latex'
|
|
55
|
+
});
|
|
56
|
+
expect(w.instance().input.write).toHaveBeenLastCalledWith('latex');
|
|
57
|
+
});
|
|
58
|
+
it('calls input.write for write', function () {
|
|
59
|
+
w.instance().keypadPress({
|
|
60
|
+
write: 'write'
|
|
61
|
+
});
|
|
62
|
+
expect(w.instance().input.write).toHaveBeenLastCalledWith('write');
|
|
63
|
+
});
|
|
64
|
+
it('calls input.command for command', function () {
|
|
65
|
+
w.instance().keypadPress({
|
|
66
|
+
command: 'cmd'
|
|
67
|
+
});
|
|
68
|
+
expect(w.instance().input.command).toHaveBeenLastCalledWith('cmd');
|
|
69
|
+
});
|
|
70
|
+
it('calls input.keystroke for keystroke', function () {
|
|
71
|
+
w.instance().keypadPress({
|
|
72
|
+
keystroke: 'k'
|
|
73
|
+
});
|
|
74
|
+
expect(w.instance().input.keystroke).toHaveBeenLastCalledWith('k');
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('changeLatex', function () {
|
|
79
|
+
it('calls onChange', function () {
|
|
80
|
+
w = wrapper();
|
|
81
|
+
w.instance().changeLatex('new-latex');
|
|
82
|
+
expect(onChange).toHaveBeenCalledWith('new-latex');
|
|
83
|
+
});
|
|
84
|
+
it('does not call onChange if it is the same as the existing latex', function () {
|
|
85
|
+
w = wrapper();
|
|
86
|
+
w.setProps({
|
|
87
|
+
latex: 'new-latex'
|
|
88
|
+
});
|
|
89
|
+
w.instance().changeLatex('new-latex');
|
|
90
|
+
expect(onChange).not.toHaveBeenCalledWith('new-latex');
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
describe('inputFocus', function () {
|
|
94
|
+
it('sets state', function () {
|
|
95
|
+
w = wrapper();
|
|
96
|
+
w.instance().inputFocus();
|
|
97
|
+
expect(w.state().focused).toBe(true);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe('inputBlur', function () {
|
|
101
|
+
it('sets state', function () {
|
|
102
|
+
w = wrapper();
|
|
103
|
+
w.instance().inputFocus();
|
|
104
|
+
w.instance().inputBlur();
|
|
105
|
+
expect(w.state().focused).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWF0aC1pbnB1dC10ZXN0LmpzeCJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInciLCJvbkNoYW5nZSIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJ3cmFwcGVyIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsImluc3RhbmNlIiwiaW5wdXQiLCJ3cml0ZSIsImNvbW1hbmQiLCJrZXlzdHJva2UiLCJrZXlwYWRQcmVzcyIsImxhdGV4IiwidG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoIiwiY2hhbmdlTGF0ZXgiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInNldFByb3BzIiwibm90IiwiaW5wdXRGb2N1cyIsInN0YXRlIiwiZm9jdXNlZCIsInRvQmUiLCJpbnB1dEJsdXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLFdBQUQsRUFBYyxZQUFNO0FBQzFCLE1BQUlDLENBQUo7QUFDQSxNQUFJQyxRQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZELElBQUFBLFFBQVEsR0FBR0UsSUFBSSxDQUFDQyxFQUFMLEVBQVg7QUFDRCxHQUZTLENBQVY7O0FBR0EsTUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFZO0FBQzFCLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxNQUFBQSxPQUFPLEVBQUUsRUFETTtBQUVmQyxNQUFBQSxTQUFTLEVBQUUsV0FGSTtBQUdmUixNQUFBQSxRQUFRLEVBQVJBO0FBSGUsS0FBakI7O0FBS0EsUUFBTVMsS0FBSyxtQ0FBUUgsUUFBUixHQUFxQkQsTUFBckIsQ0FBWDs7QUFDQSxXQUFPLG1DQUFRLGdDQUFDLG9CQUFELEVBQWVJLEtBQWYsQ0FBUixDQUFQO0FBQ0QsR0FSRDs7QUFTQVgsRUFBQUEsUUFBUSxDQUFD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S0FBSyxFQUFFO0FBQVQsT0FBWDtBQUNBcEIsTUFBQUEsQ0FBQyxDQUFDYyxRQUFGLEdBQWFRLFdBQWIsQ0FBeUIsV0FBekI7QUFDQVYsTUFBQUEsTUFBTSxDQUFDWCxRQUFELENBQU4sQ0FBaUJ3QixHQUFqQixDQUFxQkYsb0JBQXJCLENBQTBDLFdBQTFDO0FBQ0QsS0FMQyxDQUFGO0FBTUQsR0FaTyxDQUFSO0FBY0F4QixFQUFBQSxRQUFRLENBQUMsWUFBRCxFQUFlLFlBQU07QUFDM0JZLElBQUFBLEVBQUUsQ0FBQyxZQUFELEVBQWUsWUFBTTtBQUNyQlgsTUFBQUEsQ0FBQyxHQUFHSyxPQUFPLEVBQVg7QUFDQUwsTUFBQUEsQ0FBQyxDQUFDYyxRQUFGLEdBQWFZLFVBQWI7QUFDQWQsTUFBQUEsTUFBTSxDQUFDWixDQUFDLENBQUMyQixLQUFGLEdBQVVDLE9BQVgsQ0FBTixDQUEwQkMsSUFBMUIsQ0FBK0IsSUFBL0I7QUFDRCxLQUpDLENBQUY7QUFLRCxHQU5PLENBQVI7QUFPQTlCLEVBQUFBLFFBQVEsQ0FBQyxXQUFELEVBQWMsWUFBTTtBQUMxQlksSUFBQUEsRUFBRSxDQUFDLFlBQUQsRUFBZSxZQUFNO0FBQ3JCWCxNQUFBQSxDQUFDLEdBQUdLLE9BQU8sRUFBWDtBQUNBTCxNQUFBQSxDQUFDLENBQUNjLFFBQUYsR0FBYVksVUFBYjtBQUNBMUIsTUFBQUEsQ0FBQyxDQUFDYyxRQUFGLEdBQWFnQixTQUFiO0FBQ0FsQixNQUFBQSxNQUFNLENBQUNaLENBQUMsQ0FBQzJCLEtBQUYsR0FBVUMsT0FBWCxDQUFOLENBQTBCQyxJQUExQixDQUErQixLQUEvQjtBQUNELEtBTEMsQ0FBRjtBQU1ELEdBUE8sQ0FBUjtBQVFELENBaEZPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNYXRoSW5wdXQgfSBmcm9tICdAcGllLWxpYi9tYXRoLWlucHV0JztcblxuZGVzY3JpYmUoJ01hdGhJbnB1dCcsICgpID0+IHtcbiAgbGV0IHc7XG4gIGxldCBvbkNoYW5nZTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgfSk7XG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHNoYWxsb3coPE1hdGhJbnB1dCB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgdyA9IHdyYXBwZXIoKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICB3Lmluc3RhbmNlKCkuaW5wdXQgPSB7XG4gICAgICAgIHdyaXRlOiBqZXN0LmZuKCksXG4gICAgICAgIGNvbW1hbmQ6IGplc3QuZm4oKSxcbiAgICAgICAga2V5c3Ryb2tlOiBqZXN0LmZuKCksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGRlc2NyaWJlKCdrZXlwYWRQcmVzcycsICgpID0+IHtcbiAgICAgIGl0KCdjYWxscyBpbnB1dC53cml0ZSBmb3IgbGF0ZXgnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5rZXlwYWRQcmVzcyh7IGxhdGV4OiAnbGF0ZXgnIH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmlucHV0LndyaXRlKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoJ2xhdGV4Jyk7XG4gICAgICB9KTtcbiAgICAgIGl0KCdjYWxscyBpbnB1dC53cml0ZSBmb3Igd3JpdGUnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5rZXlwYWRQcmVzcyh7IHdyaXRlOiAnd3JpdGUnIH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmlucHV0LndyaXRlKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoJ3dyaXRlJyk7XG4gICAgICB9KTtcbiAgICAgIGl0KCdjYWxscyBpbnB1dC5jb21tYW5kIGZvciBjb21tYW5kJywgKCkgPT4ge1xuICAgICAgICB3Lmluc3RhbmNlKCkua2V5cGFkUHJlc3MoeyBjb21tYW5kOiAnY21kJyB9KTtcbiAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5pbnB1dC5jb21tYW5kKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoJ2NtZCcpO1xuICAgICAgfSk7XG4gICAgICBpdCgnY2FsbHMgaW5wdXQua2V5c3Ryb2tlIGZvciBrZXlzdHJva2UnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5rZXlwYWRQcmVzcyh7IGtleXN0cm9rZTogJ2snIH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmlucHV0LmtleXN0cm9rZSkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdrJyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NoYW5nZUxhdGV4JywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBvbkNoYW5nZScsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICB3Lmluc3RhbmNlKCkuY2hhbmdlTGF0ZXgoJ25ldy1sYXRleCcpO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnbmV3LWxhdGV4Jyk7XG4gICAgfSk7XG4gICAgaXQoJ2RvZXMgbm90IGNhbGwgb25DaGFuZ2UgaWYgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIGV4aXN0aW5nIGxhdGV4JywgKCkgPT4ge1xuICAgICAgdyA9IHdyYXBwZXIoKTtcbiAgICAgIHcuc2V0UHJvcHMoeyBsYXRleDogJ25ldy1sYXRleCcgfSk7XG4gICAgICB3Lmluc3RhbmNlKCkuY2hhbmdlTGF0ZXgoJ25ldy1sYXRleCcpO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS5ub3QudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ25ldy1sYXRleCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaW5wdXRGb2N1cycsICgpID0+IHtcbiAgICBpdCgnc2V0cyBzdGF0ZScsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICB3Lmluc3RhbmNlKCkuaW5wdXRGb2N1cygpO1xuICAgICAgZXhwZWN0KHcuc3RhdGUoKS5mb2N1c2VkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2lucHV0Qmx1cicsICgpID0+IHtcbiAgICBpdCgnc2V0cyBzdGF0ZScsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICB3Lmluc3RhbmNlKCkuaW5wdXRGb2N1cygpO1xuICAgICAgdy5pbnN0YW5jZSgpLmlucHV0Qmx1cigpO1xuICAgICAgZXhwZWN0KHcuc3RhdGUoKS5mb2N1c2VkKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/lib/horizontal-keypad.js
CHANGED
|
@@ -81,19 +81,23 @@ var HorizontalKeypad = /*#__PURE__*/function (_React$Component) {
|
|
|
81
81
|
var _this$props = this.props,
|
|
82
82
|
mode = _this$props.mode,
|
|
83
83
|
onFocus = _this$props.onFocus,
|
|
84
|
+
controlledKeypadMode = _this$props.controlledKeypadMode,
|
|
84
85
|
noDecimal = _this$props.noDecimal,
|
|
85
86
|
className = _this$props.className,
|
|
86
87
|
additionalKeys = _this$props.additionalKeys,
|
|
87
|
-
layoutForKeyPad = _this$props.layoutForKeyPad
|
|
88
|
+
layoutForKeyPad = _this$props.layoutForKeyPad,
|
|
89
|
+
setKeypadInteraction = _this$props.setKeypadInteraction;
|
|
88
90
|
var normalizedKeys = (0, _grades.normalizeAdditionalKeys)(additionalKeys);
|
|
89
91
|
return /*#__PURE__*/_react["default"].createElement(_keypad["default"], {
|
|
90
92
|
className: className,
|
|
93
|
+
controlledKeypadMode: controlledKeypadMode,
|
|
91
94
|
onFocus: onFocus,
|
|
92
95
|
noDecimal: noDecimal,
|
|
93
96
|
layoutForKeyPad: layoutForKeyPad,
|
|
94
97
|
additionalKeys: (0, _utils.extendKeySet)((0, _grades.keysForGrade)(mode), normalizedKeys),
|
|
95
98
|
onPress: this.keypadPress,
|
|
96
|
-
mode: mode
|
|
99
|
+
mode: mode,
|
|
100
|
+
setKeypadInteraction: setKeypadInteraction
|
|
97
101
|
});
|
|
98
102
|
}
|
|
99
103
|
}]);
|
|
@@ -103,16 +107,18 @@ var HorizontalKeypad = /*#__PURE__*/function (_React$Component) {
|
|
|
103
107
|
exports["default"] = HorizontalKeypad;
|
|
104
108
|
(0, _defineProperty2["default"])(HorizontalKeypad, "propTypes", {
|
|
105
109
|
className: _propTypes["default"].string,
|
|
110
|
+
controlledKeypadMode: _propTypes["default"].bool,
|
|
106
111
|
mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
107
112
|
layoutForKeyPad: _propTypes["default"].object,
|
|
108
113
|
onClick: _propTypes["default"].func.isRequired,
|
|
109
114
|
onFocus: _propTypes["default"].func,
|
|
110
115
|
noDecimal: _propTypes["default"].bool,
|
|
111
|
-
additionalKeys: _propTypes["default"].array
|
|
116
|
+
additionalKeys: _propTypes["default"].array,
|
|
117
|
+
setKeypadInteraction: _propTypes["default"].func
|
|
112
118
|
});
|
|
113
119
|
(0, _defineProperty2["default"])(HorizontalKeypad, "defaultProps", {
|
|
114
120
|
mode: 'scientific',
|
|
115
121
|
noDecimal: false,
|
|
116
122
|
additionalKeys: []
|
|
117
123
|
});
|
|
118
|
-
//# sourceMappingURL=
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ob3Jpem9udGFsLWtleXBhZC5qc3giXSwibmFtZXMiOlsidG9PbGRNb2RlbCIsImQiLCJjb21tYW5kIiwidmFsdWUiLCJ0eXBlIiwid3JpdGUiLCJrZXlzdHJva2UiLCJIb3Jpem9udGFsS2V5cGFkIiwiZGF0YSIsIm9uQ2xpY2siLCJwcm9wcyIsIm1vZGUiLCJvbkZvY3VzIiwiY29udHJvbGxlZEtleXBhZE1vZGUiLCJub0RlY2ltYWwiLCJjbGFzc05hbWUiLCJhZGRpdGlvbmFsS2V5cyIsImxheW91dEZvcktleVBhZCIsInNldEtleXBhZEludGVyYWN0aW9uIiwibm9ybWFsaXplZEtleXMiLCJrZXlwYWRQcmVzcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsIm9uZU9mVHlwZSIsIm51bWJlciIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiYXJyYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLENBQUQsRUFBTztBQUN4QixNQUFJQSxDQUFDLENBQUNDLE9BQU4sRUFBZTtBQUNiLFdBQU87QUFBRUMsTUFBQUEsS0FBSyxFQUFFRixDQUFDLENBQUNDLE9BQVg7QUFBb0JFLE1BQUFBLElBQUksRUFBRTtBQUExQixLQUFQO0FBQ0QsR0FGRCxNQUVPLElBQUlILENBQUMsQ0FBQ0ksS0FBTixFQUFhO0FBQ2xCLFdBQU87QUFBRUYsTUFBQUEsS0FBSyxFQUFFRixDQUFDLENBQUNJO0FBQVgsS0FBUDtBQUNELEdBRk0sTUFFQSxJQUFJSixDQUFDLENBQUNLLFNBQU4sRUFBaUI7QUFDdEIsV0FBTztBQUFFRixNQUFBQSxJQUFJLEVBQUUsUUFBUjtBQUFrQkQsTUFBQUEsS0FBSyxFQUFFRixDQUFDLENBQUNLO0FBQTNCLEtBQVA7QUFDRDtBQUNGLENBUkQ7O0lBVXFCQyxnQjs7Ozs7Ozs7Ozs7Ozs7O29HQW1CTCxVQUFDQyxJQUFELEVBQVU7QUFDdEIsVUFBUUMsT0FBUixHQUFvQixNQUFLQyxLQUF6QixDQUFRRCxPQUFSO0FBRUFBLE1BQUFBLE9BQU8sQ0FBQ1QsVUFBVSxDQUFDUSxJQUFELENBQVgsQ0FBUDtBQUNELEs7Ozs7OztXQUVELGtCQUFTO0FBQ1Asd0JBU0ksS0FBS0UsS0FUVDtBQUFBLFVBQ0VDLElBREYsZUFDRUEsSUFERjtBQUFBLFVBRUVDLE9BRkYsZUFFRUEsT0FGRjtBQUFBLFVBR0VDLG9CQUhGLGVBR0VBLG9CQUhGO0FBQUEsVUFJRUMsU0FKRixlQUlFQSxTQUpGO0FBQUEsVUFLRUMsU0FMRixlQUtFQSxTQUxGO0FBQUEsVUFNRUMsY0FORixlQU1FQSxjQU5GO0FBQUEsVUFPRUMsZUFQRixlQU9FQSxlQVBGO0FBQUEsVUFRRUMsb0JBUkYsZUFRRUEsb0JBUkY7QUFVQSxVQUFNQyxjQUFjLEdBQUcscUNBQXdCSCxjQUF4QixDQUF2QjtBQUVBLDBCQUNFLGdDQUFDLGtCQUFEO0FBQ0UsUUFBQSxTQUFTLEVBQUVELFNBRGI7QUFFRSxRQUFBLG9CQUFvQixFQUFFRixvQkFGeEI7QUFHRSxRQUFBLE9BQU8sRUFBRUQsT0FIWDtBQUlFLFFBQUEsU0FBUyxFQUFFRSxTQUpiO0FBS0UsUUFBQSxlQUFlLEVBQUVHLGVBTG5CO0FBTUUsUUFBQSxjQUFjLEVBQUUseUJBQWEsMEJBQWFOLElBQWIsQ0FBYixFQUFpQ1EsY0FBakMsQ0FObEI7QUFPRSxRQUFBLE9BQU8sRUFBRSxLQUFLQyxXQVBoQjtBQVFFLFFBQUEsSUFBSSxFQUFFVCxJQVJSO0FBU0UsUUFBQSxvQkFBb0IsRUFBRU87QUFUeEIsUUFERjtBQWFEOzs7RUFuRDJDRyxrQkFBTUMsUzs7O2lDQUEvQmYsZ0IsZUFDQTtBQUNqQlEsRUFBQUEsU0FBUyxFQUFFUSxzQkFBVUMsTUFESjtBQUVqQlgsRUFBQUEsb0JBQW9CLEVBQUVVLHNCQUFVRSxJQUZmO0FBR2pCZCxFQUFBQSxJQUFJLEVBQUVZLHNCQUFVRyxTQUFWLENBQW9CLENBQUNILHNCQUFVQyxNQUFYLEVBQW1CRCxzQkFBVUksTUFBN0IsQ0FBcEIsQ0FIVztBQUlqQlYsRUFBQUEsZUFBZSxFQUFFTSxzQkFBVUssTUFKVjtBQUtqQm5CLEVBQUFBLE9BQU8sRUFBRWMsc0JBQVVNLElBQVYsQ0FBZUMsVUFMUDtBQU1qQmxCLEVBQUFBLE9BQU8sRUFBRVcsc0JBQVVNLElBTkY7QUFPakJmLEVBQUFBLFNBQVMsRUFBRVMsc0JBQVVFLElBUEo7QUFRakJULEVBQUFBLGNBQWMsRUFBRU8sc0JBQVVRLEtBUlQ7QUFTakJiLEVBQUFBLG9CQUFvQixFQUFFSyxzQkFBVU07QUFUZixDO2lDQURBdEIsZ0Isa0JBYUc7QUFDcEJJLEVBQUFBLElBQUksRUFBRSxZQURjO0FBRXBCRyxFQUFBQSxTQUFTLEVBQUUsS0FGUztBQUdwQkUsRUFBQUEsY0FBYyxFQUFFO0FBSEksQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsga2V5c0ZvckdyYWRlLCBub3JtYWxpemVBZGRpdGlvbmFsS2V5cyB9IGZyb20gJy4va2V5cy9ncmFkZXMnO1xuaW1wb3J0IHsgZXh0ZW5kS2V5U2V0IH0gZnJvbSAnLi9rZXlzL3V0aWxzJztcbmltcG9ydCBLZXlwYWQgZnJvbSAnLi9rZXlwYWQnO1xuXG5jb25zdCB0b09sZE1vZGVsID0gKGQpID0+IHtcbiAgaWYgKGQuY29tbWFuZCkge1xuICAgIHJldHVybiB7IHZhbHVlOiBkLmNvbW1hbmQsIHR5cGU6ICdjb21tYW5kJyB9O1xuICB9IGVsc2UgaWYgKGQud3JpdGUpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogZC53cml0ZSB9O1xuICB9IGVsc2UgaWYgKGQua2V5c3Ryb2tlKSB7XG4gICAgcmV0dXJuIHsgdHlwZTogJ2N1cnNvcicsIHZhbHVlOiBkLmtleXN0cm9rZSB9O1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb3Jpem9udGFsS2V5cGFkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29udHJvbGxlZEtleXBhZE1vZGU6IFByb3BUeXBlcy5ib29sLFxuICAgIG1vZGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgICBsYXlvdXRGb3JLZXlQYWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBub0RlY2ltYWw6IFByb3BUeXBlcy5ib29sLFxuICAgIGFkZGl0aW9uYWxLZXlzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgc2V0S2V5cGFkSW50ZXJhY3Rpb246IFByb3BUeXBlcy5mdW5jLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbW9kZTogJ3NjaWVudGlmaWMnLFxuICAgIG5vRGVjaW1hbDogZmFsc2UsXG4gICAgYWRkaXRpb25hbEtleXM6IFtdLFxuICB9O1xuXG4gIGtleXBhZFByZXNzID0gKGRhdGEpID0+IHtcbiAgICBjb25zdCB7IG9uQ2xpY2sgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBvbkNsaWNrKHRvT2xkTW9kZWwoZGF0YSkpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBtb2RlLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlLFxuICAgICAgbm9EZWNpbWFsLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgYWRkaXRpb25hbEtleXMsXG4gICAgICBsYXlvdXRGb3JLZXlQYWQsXG4gICAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbixcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBub3JtYWxpemVkS2V5cyA9IG5vcm1hbGl6ZUFkZGl0aW9uYWxLZXlzKGFkZGl0aW9uYWxLZXlzKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8S2V5cGFkXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICBjb250cm9sbGVkS2V5cGFkTW9kZT17Y29udHJvbGxlZEtleXBhZE1vZGV9XG4gICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgIG5vRGVjaW1hbD17bm9EZWNpbWFsfVxuICAgICAgICBsYXlvdXRGb3JLZXlQYWQ9e2xheW91dEZvcktleVBhZH1cbiAgICAgICAgYWRkaXRpb25hbEtleXM9e2V4dGVuZEtleVNldChrZXlzRm9yR3JhZGUobW9kZSksIG5vcm1hbGl6ZWRLZXlzKX1cbiAgICAgICAgb25QcmVzcz17dGhpcy5rZXlwYWRQcmVzc31cbiAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgc2V0S2V5cGFkSW50ZXJhY3Rpb249e3NldEtleXBhZEludGVyYWN0aW9ufVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXX0=
|
package/lib/index.js
CHANGED
|
@@ -20,10 +20,18 @@ Object.defineProperty(exports, "keysForGrade", {
|
|
|
20
20
|
return _grades.keysForGrade;
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
|
-
exports.
|
|
23
|
+
exports.removeBrackets = exports.mq = void 0;
|
|
24
|
+
Object.defineProperty(exports, "updateSpans", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _updateSpans.updateSpans;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
24
30
|
|
|
25
31
|
var _grades = require("./keys/grades");
|
|
26
32
|
|
|
33
|
+
var _updateSpans = require("./updateSpans");
|
|
34
|
+
|
|
27
35
|
var keys = _interopRequireWildcard(require("./keys"));
|
|
28
36
|
|
|
29
37
|
exports.keys = keys;
|
|
@@ -62,19 +70,7 @@ exports.addBrackets = addBrackets;
|
|
|
62
70
|
|
|
63
71
|
var removeBrackets = function removeBrackets(s) {
|
|
64
72
|
return rmRightBracket(rmLeftBracket(s));
|
|
65
|
-
}; // increase the font of parallel notation
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
exports.removeBrackets = removeBrackets;
|
|
69
|
-
|
|
70
|
-
var updateSpans = function updateSpans() {
|
|
71
|
-
var spans = Array.from(document.querySelectorAll('span[mathquill-command-id]'));
|
|
72
|
-
(spans || []).forEach(function (span) {
|
|
73
|
-
if (span && span.innerText === '∥' && span.className !== 'mq-editable-field') {
|
|
74
|
-
span.style.fontSize = '32px';
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
73
|
};
|
|
78
74
|
|
|
79
|
-
exports.
|
|
80
|
-
//# sourceMappingURL=
|
|
75
|
+
exports.removeBrackets = removeBrackets;
|
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwibmFtZXMiOlsiYWRkTGVmdEJyYWNrZXQiLCJzIiwiaW5kZXhPZiIsImFkZFJpZ2h0QnJhY2tldCIsImxlbmd0aCIsInJtTGVmdEJyYWNrZXQiLCJzdWJzdHJpbmciLCJybVJpZ2h0QnJhY2tldCIsImFkZEJyYWNrZXRzIiwicmVtb3ZlQnJhY2tldHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQVVBOzs7O0FBRUE7O0FBRUE7Ozs7Ozs7O0FBWkEsSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDQyxDQUFEO0FBQUEsU0FBUUEsQ0FBQyxDQUFDQyxPQUFGLENBQVUsS0FBVixNQUFxQixDQUFyQixHQUF5QkQsQ0FBekIsZ0JBQW1DQSxDQUFuQyxDQUFSO0FBQUEsQ0FBdkI7O0FBQ0EsSUFBTUUsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDRixDQUFEO0FBQUEsU0FBUUEsQ0FBQyxDQUFDQyxPQUFGLENBQVUsS0FBVixNQUFxQkQsQ0FBQyxDQUFDRyxNQUFGLEdBQVcsQ0FBaEMsR0FBb0NILENBQXBDLGFBQTJDQSxDQUEzQyxRQUFSO0FBQUEsQ0FBeEI7O0FBQ0EsSUFBTUksYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDSixDQUFEO0FBQUEsU0FBUUEsQ0FBQyxDQUFDQyxPQUFGLENBQVUsS0FBVixNQUFxQixDQUFyQixHQUF5QkQsQ0FBQyxDQUFDSyxTQUFGLENBQVksQ0FBWixDQUF6QixHQUEwQ0wsQ0FBbEQ7QUFBQSxDQUF0Qjs7QUFDQSxJQUFNTSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNOLENBQUQ7QUFBQSxTQUFRQSxDQUFDLENBQUNDLE9BQUYsQ0FBVSxLQUFWLE1BQXFCRCxDQUFDLENBQUNHLE1BQUYsR0FBVyxDQUFoQyxHQUFvQ0gsQ0FBQyxDQUFDSyxTQUFGLENBQVksQ0FBWixFQUFlTCxDQUFDLENBQUNHLE1BQUYsR0FBVyxDQUExQixDQUFwQyxHQUFtRUgsQ0FBM0U7QUFBQSxDQUF2Qjs7QUFFQSxJQUFNTyxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDUCxDQUFEO0FBQUEsU0FBT0UsZUFBZSxDQUFDSCxjQUFjLENBQUNDLENBQUQsQ0FBZixDQUF0QjtBQUFBLENBQXBCOzs7O0FBQ0EsSUFBTVEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDUixDQUFEO0FBQUEsU0FBT00sY0FBYyxDQUFDRixhQUFhLENBQUNKLENBQUQsQ0FBZCxDQUFyQjtBQUFBLENBQXZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsga2V5c0ZvckdyYWRlIH0gZnJvbSAnLi9rZXlzL2dyYWRlcyc7XG5pbXBvcnQgeyB1cGRhdGVTcGFuc30gZnJvbSBcIi4vdXBkYXRlU3BhbnNcIjtcblxuY29uc3QgYWRkTGVmdEJyYWNrZXQgPSAocykgPT4gKHMuaW5kZXhPZignXFxcXCgnKSA9PT0gMCA/IHMgOiBgXFxcXCgke3N9YCk7XG5jb25zdCBhZGRSaWdodEJyYWNrZXQgPSAocykgPT4gKHMuaW5kZXhPZignXFxcXCknKSA9PT0gcy5sZW5ndGggLSAyID8gcyA6IGAke3N9XFxcXClgKTtcbmNvbnN0IHJtTGVmdEJyYWNrZXQgPSAocykgPT4gKHMuaW5kZXhPZignXFxcXCgnKSA9PT0gMCA/IHMuc3Vic3RyaW5nKDIpIDogcyk7XG5jb25zdCBybVJpZ2h0QnJhY2tldCA9IChzKSA9PiAocy5pbmRleE9mKCdcXFxcKScpID09PSBzLmxlbmd0aCAtIDIgPyBzLnN1YnN0cmluZygwLCBzLmxlbmd0aCAtIDIpIDogcyk7XG5cbmNvbnN0IGFkZEJyYWNrZXRzID0gKHMpID0+IGFkZFJpZ2h0QnJhY2tldChhZGRMZWZ0QnJhY2tldChzKSk7XG5jb25zdCByZW1vdmVCcmFja2V0cyA9IChzKSA9PiBybVJpZ2h0QnJhY2tldChybUxlZnRCcmFja2V0KHMpKTtcblxuaW1wb3J0ICogYXMga2V5cyBmcm9tICcuL2tleXMnO1xuXG5pbXBvcnQgSG9yaXpvbnRhbEtleXBhZCBmcm9tICcuL2hvcml6b250YWwta2V5cGFkJztcblxuaW1wb3J0ICogYXMgbXEgZnJvbSAnLi9tcSc7XG5cbmV4cG9ydCB7IGtleXNGb3JHcmFkZSwgYWRkQnJhY2tldHMsIHJlbW92ZUJyYWNrZXRzLCBrZXlzLCBIb3Jpem9udGFsS2V5cGFkLCBtcSwgdXBkYXRlU3BhbnMgfTtcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _index = require("../index");
|
|
12
|
+
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
+
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
+
|
|
17
|
+
describe('Keypad', function () {
|
|
18
|
+
var w;
|
|
19
|
+
var onChange = jest.fn();
|
|
20
|
+
|
|
21
|
+
var wrapper = function wrapper(extras) {
|
|
22
|
+
var defaults = {
|
|
23
|
+
classes: {},
|
|
24
|
+
className: 'className',
|
|
25
|
+
onChange: onChange,
|
|
26
|
+
onPress: jest.fn()
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
30
|
+
|
|
31
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.KeyPad, props));
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
describe('snapshot', function () {
|
|
35
|
+
it('renders', function () {
|
|
36
|
+
w = wrapper();
|
|
37
|
+
expect(w).toMatchSnapshot();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9rZXlwYWQvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwidyIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwid3JhcHBlciIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsIm9uUHJlc3MiLCJwcm9wcyIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxRQUFELEVBQVcsWUFBTTtBQUN2QixNQUFJQyxDQUFKO0FBQ0EsTUFBSUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUwsRUFBZjs7QUFDQSxNQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxNQUFELEVBQVk7QUFDMUIsUUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLE1BQUFBLE9BQU8sRUFBRSxFQURNO0FBRWZDLE1BQUFBLFNBQVMsRUFBRSxXQUZJO0FBR2ZQLE1BQUFBLFFBQVEsRUFBUkEsUUFIZTtBQUlmUSxNQUFBQSxPQUFPLEVBQUVQLElBQUksQ0FBQ0MsRUFBTDtBQUpNLEtBQWpCOztBQU1BLFFBQU1PLEtBQUssbUNBQVFKLFFBQVIsR0FBcUJELE1BQXJCLENBQVg7O0FBQ0EsV0FBTyxtQ0FBUSxnQ0FBQyxhQUFELEVBQVlLLEtBQVosQ0FBUixDQUFQO0FBQ0QsR0FURDs7QUFVQVgsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCWSxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEJYLE1BQUFBLENBQUMsR0FBR0ksT0FBTyxFQUFYO0FBQ0FRLE1BQUFBLE1BQU0sQ0FBQ1osQ0FBRCxDQUFOLENBQVVhLGVBQVY7QUFDRCxLQUhDLENBQUY7QUFJRCxHQUxPLENBQVI7QUFNRCxDQW5CTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgS2V5UGFkIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5kZXNjcmliZSgnS2V5cGFkJywgKCkgPT4ge1xuICBsZXQgdztcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCB3cmFwcGVyID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblByZXNzOiBqZXN0LmZuKCksXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiBzaGFsbG93KDxLZXlQYWQgey4uLnByb3BzfSAvPik7XG4gIH07XG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _keysLayout = require("../keys-layout");
|
|
4
|
+
|
|
5
|
+
var _keys = require("../../keys");
|
|
6
|
+
|
|
7
|
+
describe('keys-layout', function () {
|
|
8
|
+
describe('sortKeys', function () {
|
|
9
|
+
it('pads the rows', function () {
|
|
10
|
+
var result = (0, _keysLayout.sortKeys)([[1, 2, 3]]);
|
|
11
|
+
expect(result).toEqual([[1, undefined, undefined, undefined, undefined], [2, undefined, undefined, undefined, undefined], [3, undefined, undefined, undefined, undefined]]);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9rZXlwYWQvX190ZXN0c19fL2tleXMtbGF5b3V0LnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsInJlc3VsdCIsImV4cGVjdCIsInRvRXF1YWwiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxhQUFELEVBQWdCLFlBQU07QUFDNUJBLEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QkMsSUFBQUEsRUFBRSxDQUFDLGVBQUQsRUFBa0IsWUFBTTtBQUN4QixVQUFNQyxNQUFNLEdBQUcsMEJBQVMsQ0FBQyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxDQUFELENBQVQsQ0FBZjtBQUNBQyxNQUFBQSxNQUFNLENBQUNELE1BQUQsQ0FBTixDQUFlRSxPQUFmLENBQXVCLENBQ3JCLENBQUMsQ0FBRCxFQUFJQyxTQUFKLEVBQWVBLFNBQWYsRUFBMEJBLFNBQTFCLEVBQXFDQSxTQUFyQyxDQURxQixFQUVyQixDQUFDLENBQUQsRUFBSUEsU0FBSixFQUFlQSxTQUFmLEVBQTBCQSxTQUExQixFQUFxQ0EsU0FBckMsQ0FGcUIsRUFHckIsQ0FBQyxDQUFELEVBQUlBLFNBQUosRUFBZUEsU0FBZixFQUEwQkEsU0FBMUIsRUFBcUNBLFNBQXJDLENBSHFCLENBQXZCO0FBS0QsS0FQQyxDQUFGO0FBUUQsR0FUTyxDQUFSO0FBVUQsQ0FYTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc29ydEtleXMgfSBmcm9tICcuLi9rZXlzLWxheW91dCc7XG5pbXBvcnQgeyBiYXNlU2V0LCBjb21wYXJpc29uIH0gZnJvbSAnLi4vLi4va2V5cyc7XG5cbmRlc2NyaWJlKCdrZXlzLWxheW91dCcsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NvcnRLZXlzJywgKCkgPT4ge1xuICAgIGl0KCdwYWRzIHRoZSByb3dzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gc29ydEtleXMoW1sxLCAyLCAzXV0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChbXG4gICAgICAgIFsxLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWRdLFxuICAgICAgICBbMiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkXSxcbiAgICAgICAgWzMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZF0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/lib/keypad/index.js
CHANGED
|
@@ -43,17 +43,21 @@ var _colorManipulator = require("@material-ui/core/styles/colorManipulator");
|
|
|
43
43
|
|
|
44
44
|
var _green = _interopRequireDefault(require("@material-ui/core/colors/green"));
|
|
45
45
|
|
|
46
|
-
var
|
|
46
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
47
|
+
|
|
48
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
49
|
+
|
|
50
|
+
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
47
51
|
|
|
48
52
|
var mq = _interopRequireWildcard(require("../mq"));
|
|
49
53
|
|
|
50
54
|
var _keys = require("../keys");
|
|
51
55
|
|
|
52
|
-
var
|
|
56
|
+
var _editableHtml = require("@pie-lib/editable-html");
|
|
53
57
|
|
|
54
|
-
var
|
|
58
|
+
var _commonMqStyles = require("../mq/common-mq-styles");
|
|
55
59
|
|
|
56
|
-
var
|
|
60
|
+
var _keysLayout = require("./keys-layout");
|
|
57
61
|
|
|
58
62
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
59
63
|
|
|
@@ -91,6 +95,10 @@ var LatexButton = (0, _styles.withStyles)(function (theme) {
|
|
|
91
95
|
'& .mq-overline .mq-overline-inner': {
|
|
92
96
|
borderTop: '2px solid black'
|
|
93
97
|
},
|
|
98
|
+
'& .mq-non-leaf.mq-overline': {
|
|
99
|
+
borderTop: 'none !important' // fixing PD-4873 - in OT, it has border-top 1px and adds extra line
|
|
100
|
+
|
|
101
|
+
},
|
|
94
102
|
'& .mq-overarrow': {
|
|
95
103
|
width: '30px',
|
|
96
104
|
marginTop: '0 !important',
|
|
@@ -99,12 +107,14 @@ var LatexButton = (0, _styles.withStyles)(function (theme) {
|
|
|
99
107
|
'&.mq-arrow-both': {
|
|
100
108
|
top: '0px !important',
|
|
101
109
|
'& *': {
|
|
102
|
-
lineHeight: '1 !important'
|
|
110
|
+
lineHeight: '1 !important',
|
|
111
|
+
borderTop: 'none !important' // fixing PD-4873 - in OT, it has border-top 1px and adds extra line,
|
|
112
|
+
|
|
103
113
|
},
|
|
104
114
|
'&:before': {
|
|
105
115
|
fontSize: '80%',
|
|
106
|
-
left: 'calc(-13%)',
|
|
107
|
-
top: '-0.31em'
|
|
116
|
+
left: 'calc(-13%) !important',
|
|
117
|
+
top: '-0.31em !important'
|
|
108
118
|
},
|
|
109
119
|
'&:after': {
|
|
110
120
|
fontSize: '80% !important',
|
|
@@ -127,8 +137,8 @@ var LatexButton = (0, _styles.withStyles)(function (theme) {
|
|
|
127
137
|
},
|
|
128
138
|
'&.mq-arrow-right:before': {
|
|
129
139
|
fontSize: '80%',
|
|
130
|
-
right: 'calc(-13%)',
|
|
131
|
-
top: '-0.26em'
|
|
140
|
+
right: 'calc(-13%) !important',
|
|
141
|
+
top: '-0.26em !important'
|
|
132
142
|
},
|
|
133
143
|
'& .mq-overarrow-inner': {
|
|
134
144
|
border: 'none !important'
|
|
@@ -164,6 +174,10 @@ var LatexButton = (0, _styles.withStyles)(function (theme) {
|
|
|
164
174
|
},
|
|
165
175
|
'& .mq-overarc': {
|
|
166
176
|
borderTop: '2px solid black !important',
|
|
177
|
+
'& .mq-overline': {
|
|
178
|
+
borderTop: 'none !important' // fixing PD-4873 - in OT, it has border-top 1px and adds extra line
|
|
179
|
+
|
|
180
|
+
},
|
|
167
181
|
'& .mq-overline-inner': {
|
|
168
182
|
borderTop: 'none !important',
|
|
169
183
|
paddingTop: '0 !important'
|
|
@@ -171,7 +185,7 @@ var LatexButton = (0, _styles.withStyles)(function (theme) {
|
|
|
171
185
|
}
|
|
172
186
|
},
|
|
173
187
|
parallelButton: {
|
|
174
|
-
fontStyle: 'italic'
|
|
188
|
+
fontStyle: 'italic !important'
|
|
175
189
|
},
|
|
176
190
|
leftRightArrowButton: {
|
|
177
191
|
'& .mq-overarrow.mq-arrow-both': {
|
|
@@ -237,16 +251,18 @@ var KeyPad = /*#__PURE__*/function (_React$Component) {
|
|
|
237
251
|
|
|
238
252
|
var _super = _createSuper(KeyPad);
|
|
239
253
|
|
|
240
|
-
function KeyPad() {
|
|
254
|
+
function KeyPad(props) {
|
|
241
255
|
var _this;
|
|
242
256
|
|
|
243
257
|
(0, _classCallCheck2["default"])(this, KeyPad);
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
258
|
+
_this = _super.call(this, props);
|
|
259
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeypadInteraction", function () {
|
|
260
|
+
// Check if the setKeypadInteraction prop is available, which is used for both
|
|
261
|
+
// the language keypad and the special characters keypad
|
|
262
|
+
if (_this.props.setKeypadInteraction) {
|
|
263
|
+
_this.props.setKeypadInteraction(true);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
250
266
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "buttonClick", function (key) {
|
|
251
267
|
log('[buttonClick]', key);
|
|
252
268
|
var onPress = _this.props.onPress;
|
|
@@ -265,10 +281,59 @@ var KeyPad = /*#__PURE__*/function (_React$Component) {
|
|
|
265
281
|
|
|
266
282
|
return false;
|
|
267
283
|
});
|
|
284
|
+
_this.keypadRef = /*#__PURE__*/_react["default"].createRef();
|
|
268
285
|
return _this;
|
|
269
286
|
}
|
|
270
287
|
|
|
271
288
|
(0, _createClass2["default"])(KeyPad, [{
|
|
289
|
+
key: "componentDidMount",
|
|
290
|
+
value: function componentDidMount() {
|
|
291
|
+
var _this$keypadRef;
|
|
292
|
+
|
|
293
|
+
var keyPadElement = (_this$keypadRef = this.keypadRef) === null || _this$keypadRef === void 0 ? void 0 : _this$keypadRef.current;
|
|
294
|
+
var mainContainer = keyPadElement === null || keyPadElement === void 0 ? void 0 : keyPadElement.closest(".".concat(_editableHtml.constants.MAIN_CONTAINER_CLASS));
|
|
295
|
+
var currentToolbar = keyPadElement === null || keyPadElement === void 0 ? void 0 : keyPadElement.closest('.pie-toolbar'); // need only for math keyboard so we need also controlledKeypadMode
|
|
296
|
+
|
|
297
|
+
if (this.props.controlledKeypadMode && mainContainer && currentToolbar) {
|
|
298
|
+
var mainContainerPosition = mainContainer.getBoundingClientRect();
|
|
299
|
+
var currentToolbarPosition = currentToolbar.getBoundingClientRect();
|
|
300
|
+
var difference = mainContainerPosition.top + mainContainerPosition.height - (currentToolbarPosition.top + currentToolbarPosition.height);
|
|
301
|
+
|
|
302
|
+
if (difference < 0) {
|
|
303
|
+
var totalHeight = mainContainerPosition.height + mainContainerPosition.top - difference; // increase the height of the main container if keyboard needs it
|
|
304
|
+
|
|
305
|
+
if (mainContainer) {
|
|
306
|
+
mainContainer.style.height = "".concat(totalHeight, "px");
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (keyPadElement) {
|
|
312
|
+
keyPadElement.addEventListener('touchstart', this.handleKeypadInteraction, true);
|
|
313
|
+
keyPadElement.addEventListener('mousedown', this.handleKeypadInteraction, true);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}, {
|
|
317
|
+
key: "componentWillUnmount",
|
|
318
|
+
value: function componentWillUnmount() {
|
|
319
|
+
var _this$keypadRef2;
|
|
320
|
+
|
|
321
|
+
var keyPadElement = (_this$keypadRef2 = this.keypadRef) === null || _this$keypadRef2 === void 0 ? void 0 : _this$keypadRef2.current; // need only for math keyboard
|
|
322
|
+
|
|
323
|
+
if (this.props.controlledKeypadMode && keyPadElement) {
|
|
324
|
+
var mainContainer = keyPadElement.closest(".".concat(_editableHtml.constants.MAIN_CONTAINER_CLASS));
|
|
325
|
+
|
|
326
|
+
if (mainContainer) {
|
|
327
|
+
mainContainer.style.height = 'unset';
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
if (keyPadElement) {
|
|
332
|
+
keyPadElement.removeEventListener('touchstart', this.handleKeypadInteraction, true);
|
|
333
|
+
keyPadElement.removeEventListener('mousedown', this.handleKeypadInteraction, true);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}, {
|
|
272
337
|
key: "render",
|
|
273
338
|
value: function render() {
|
|
274
339
|
var _this2 = this;
|
|
@@ -292,6 +357,7 @@ var KeyPad = /*#__PURE__*/function (_React$Component) {
|
|
|
292
357
|
}, createCustomLayout(layoutForKeyPad));
|
|
293
358
|
|
|
294
359
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
360
|
+
ref: this.keypadRef,
|
|
295
361
|
className: (0, _classnames["default"])(classes.keys, className, classes[mode]),
|
|
296
362
|
style: style,
|
|
297
363
|
onFocus: onFocus
|
|
@@ -325,6 +391,7 @@ var KeyPad = /*#__PURE__*/function (_React$Component) {
|
|
|
325
391
|
return /*#__PURE__*/_react["default"].createElement(_Button["default"], (0, _extends2["default"])({
|
|
326
392
|
key: index
|
|
327
393
|
}, common, {
|
|
394
|
+
className: (0, _classnames["default"])(common.className, (0, _defineProperty2["default"])({}, classes.deleteButton, k.label === '⌫')),
|
|
328
395
|
"aria-label": k.ariaLabel ? k.ariaLabel : k.name || k.label
|
|
329
396
|
}), k.label);
|
|
330
397
|
} else {
|
|
@@ -347,13 +414,15 @@ exports.KeyPad = KeyPad;
|
|
|
347
414
|
(0, _defineProperty2["default"])(KeyPad, "propTypes", {
|
|
348
415
|
classes: _propTypes["default"].object.isRequired,
|
|
349
416
|
className: _propTypes["default"].string,
|
|
417
|
+
controlledKeypadMode: _propTypes["default"].bool,
|
|
350
418
|
baseSet: _propTypes["default"].array,
|
|
351
419
|
additionalKeys: _propTypes["default"].array,
|
|
352
420
|
layoutForKeyPad: _propTypes["default"].object,
|
|
353
421
|
onPress: _propTypes["default"].func.isRequired,
|
|
354
422
|
onFocus: _propTypes["default"].func,
|
|
355
423
|
noDecimal: _propTypes["default"].bool,
|
|
356
|
-
|
|
424
|
+
setKeypadInteraction: _propTypes["default"].func,
|
|
425
|
+
mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
|
|
357
426
|
});
|
|
358
427
|
(0, _defineProperty2["default"])(KeyPad, "defaultProps", {
|
|
359
428
|
baseSet: _keys.baseSet,
|
|
@@ -362,23 +431,20 @@ exports.KeyPad = KeyPad;
|
|
|
362
431
|
|
|
363
432
|
var styles = function styles(theme) {
|
|
364
433
|
return {
|
|
365
|
-
keys: {
|
|
366
|
-
'& *': {
|
|
367
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
368
|
-
},
|
|
434
|
+
keys: _objectSpread(_objectSpread({}, _commonMqStyles.commonMqKeyboardStyles), {}, {
|
|
369
435
|
width: '100%',
|
|
370
436
|
display: 'grid',
|
|
371
437
|
gridTemplateRows: 'repeat(5, minmax(40px, 60px))',
|
|
372
438
|
gridRowGap: '0px',
|
|
373
439
|
gridColumnGap: '0px',
|
|
374
440
|
gridAutoFlow: 'column'
|
|
375
|
-
},
|
|
441
|
+
}),
|
|
376
442
|
character: {
|
|
377
443
|
textTransform: 'initial !important',
|
|
378
444
|
gridTemplateRows: 'repeat(5, minmax(40px, 50px)) !important'
|
|
379
445
|
},
|
|
380
446
|
language: {
|
|
381
|
-
gridTemplateRows: 'repeat(
|
|
447
|
+
gridTemplateRows: 'repeat(4, minmax(40px, 50px)) !important',
|
|
382
448
|
'& *': {
|
|
383
449
|
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
384
450
|
}
|
|
@@ -408,6 +474,11 @@ var styles = function styles(theme) {
|
|
|
408
474
|
backgroundColor: (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.7)
|
|
409
475
|
}
|
|
410
476
|
},
|
|
477
|
+
deleteButton: {
|
|
478
|
+
'& > span': {
|
|
479
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
480
|
+
}
|
|
481
|
+
},
|
|
411
482
|
base: {},
|
|
412
483
|
operators: {
|
|
413
484
|
backgroundColor: (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.5),
|
|
@@ -438,4 +509,4 @@ var styles = function styles(theme) {
|
|
|
438
509
|
var _default = (0, _styles.withStyles)(styles)(KeyPad);
|
|
439
510
|
|
|
440
511
|
exports["default"] = _default;
|
|
441
|
-
//# sourceMappingURL=index.js.map
|
|
512
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlwYWQvaW5kZXguanN4Il0sIm5hbWVzIjpbImxvZyIsIkxhdGV4QnV0dG9uIiwidGhlbWUiLCJyb290IiwidGV4dFRyYW5zZm9ybSIsInBhZGRpbmciLCJtYXJnaW4iLCJmb250U2l6ZSIsImxhdGV4QnV0dG9uIiwicG9pbnRlckV2ZW50cyIsInRyYW5zZm9ybSIsIm1hcmdpbkJvdHRvbSIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJzZWNvbmRhcnkiLCJtYWluIiwiYm9yZGVyVG9wIiwid2lkdGgiLCJtYXJnaW5Ub3AiLCJmb250RmFtaWx5IiwidG9wIiwibGluZUhlaWdodCIsImxlZnQiLCJyaWdodCIsIm1pbkhlaWdodCIsImJvcmRlciIsImRpc3BsYXkiLCJwYWRkaW5nVG9wIiwicGFyYWxsZWxCdXR0b24iLCJmb250U3R5bGUiLCJsZWZ0UmlnaHRBcnJvd0J1dHRvbiIsInBvc2l0aW9uIiwicHJvcHMiLCJidXR0b25DbGFzcyIsImxhdGV4IiwiY2xhc3NlcyIsIm1xQ2xhc3NOYW1lIiwiTVEiLCJNYXRoUXVpbGwiLCJnZXRJbnRlcmZhY2UiLCJzcGFuIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwibWF0aEZpZWxkIiwiU3RhdGljTWF0aCIsInBhcnNlTGF0ZXgiLCJlIiwiY2xhc3NOYW1lIiwib25DbGljayIsImFyaWFMYWJlbCIsImNyZWF0ZUN1c3RvbUxheW91dCIsImxheW91dE9iaiIsImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJjb2x1bW5zIiwiZ3JpZFRlbXBsYXRlUm93cyIsInJvd3MiLCJncmlkQXV0b0Zsb3ciLCJLZXlQYWQiLCJzZXRLZXlwYWRJbnRlcmFjdGlvbiIsImtleSIsIm9uUHJlc3MiLCJiYXNlIiwiZXh0cmFzIiwidHJhbnNwb3NlZCIsIl8iLCJmbGF0dGVuIiwibm9EZWNpbWFsIiwid3JpdGUiLCJsYWJlbCIsImtleXBhZFJlZiIsIlJlYWN0IiwiY3JlYXRlUmVmIiwia2V5UGFkRWxlbWVudCIsImN1cnJlbnQiLCJtYWluQ29udGFpbmVyIiwiY2xvc2VzdCIsImNvbnN0YW50cyIsIk1BSU5fQ09OVEFJTkVSX0NMQVNTIiwiY3VycmVudFRvb2xiYXIiLCJjb250cm9sbGVkS2V5cGFkTW9kZSIsIm1haW5Db250YWluZXJQb3NpdGlvbiIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImN1cnJlbnRUb29sYmFyUG9zaXRpb24iLCJkaWZmZXJlbmNlIiwiaGVpZ2h0IiwidG90YWxIZWlnaHQiLCJzdHlsZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJoYW5kbGVLZXlwYWRJbnRlcmFjdGlvbiIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJiYXNlU2V0IiwiYWRkaXRpb25hbEtleXMiLCJsYXlvdXRGb3JLZXlQYWQiLCJvbkZvY3VzIiwibW9kZSIsIm5vQmFzZVNldCIsImtleXNXaXRob3V0QmFzZVNldCIsImluY2x1ZGVzIiwiYWxsS2V5cyIsImZsb3dLZXlzIiwic2hpZnQiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJrZXlzIiwibWFwIiwiayIsImluZGV4IiwiYnV0dG9uQ2xpY2siLCJiaW5kIiwiY29tbW9uIiwibGFiZWxCdXR0b24iLCJjYXRlZ29yeSIsImV4dHJhQ2xhc3MiLCJjb21tYSIsImRvdCIsImRpc2FibGVkIiwia2V5SXNOb3RBbGxvd2VkIiwiY29tbWFuZCIsImFjdGlvbnMiLCJleHRyYVByb3BzIiwibmFtZSIsImRlbGV0ZUJ1dHRvbiIsIkljb24iLCJpY29uIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImJvb2wiLCJhcnJheSIsImZ1bmMiLCJvbmVPZlR5cGUiLCJudW1iZXIiLCJzdHlsZXMiLCJjb21tb25NcUtleWJvYXJkU3R5bGVzIiwiZ3JpZFJvd0dhcCIsImdyaWRDb2x1bW5HYXAiLCJjaGFyYWN0ZXIiLCJsYW5ndWFnZSIsImhvbGRlciIsImJvcmRlclJhZGl1cyIsInNwYWNpbmciLCJ1bml0Iiwi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QUEsSUFBSSxFQUFFO0FBQ0p4QyxNQUFBQSxNQUFNLEVBQUU7QUFESjtBQXZFbUIsR0FBWjtBQUFBLENBQWY7O2VBNEVlLHdCQUFXbUQsTUFBWCxFQUFtQjlFLE1BQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0ljb25CdXR0b24nO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGxpZ2h0ZW4sIGZhZGUgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMvY29sb3JNYW5pcHVsYXRvcic7XG5pbXBvcnQgZ3JlZW4gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvY29sb3JzL2dyZWVuJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IE1hdGhRdWlsbCBmcm9tICdAcGllLWZyYW1ld29yay9tYXRocXVpbGwnO1xuXG5pbXBvcnQgKiBhcyBtcSBmcm9tICcuLi9tcSc7XG5pbXBvcnQgeyBiYXNlU2V0IH0gZnJvbSAnLi4va2V5cyc7XG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sJztcbmltcG9ydCB7IGNvbW1vbk1xS2V5Ym9hcmRTdHlsZXMgfSBmcm9tICcuLi9tcS9jb21tb24tbXEtc3R5bGVzJztcbmltcG9ydCB7IHNvcnRLZXlzIH0gZnJvbSAnLi9rZXlzLWxheW91dCc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOm1hdGgtaW5saW5lOmtleXBhZCcpO1xuXG5jb25zdCBMYXRleEJ1dHRvbiA9IHdpdGhTdHlsZXMoKHRoZW1lKSA9PiAoe1xuICByb290OiB7XG4gICAgdGV4dFRyYW5zZm9ybTogJ25vbmUnLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIGZvbnRTaXplOiAnMTEwJSAhaW1wb3J0YW50JyxcbiAgfSxcbiAgbGF0ZXhCdXR0b246IHtcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgdGV4dFRyYW5zZm9ybTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgJyYgLm1xLXNjYWxlZC5tcS1zcXJ0LXByZWZpeCc6IHtcbiAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEsIDAuOSkgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJiAubXEtc3VwLW9ubHkgLm1xLXN1cCc6IHtcbiAgICAgIG1hcmdpbkJvdHRvbTogJzAuOXB4ICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLWVtcHR5Jzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBgJHtmYWRlKHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW4sIDAuNCl9ICFpbXBvcnRhbnRgLFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJsaW5lIC5tcS1vdmVybGluZS1pbm5lcic6IHtcbiAgICAgIGJvcmRlclRvcDogJzJweCBzb2xpZCBibGFjaycsXG4gICAgfSxcbiAgICAnJiAubXEtbm9uLWxlYWYubXEtb3ZlcmxpbmUnOiB7XG4gICAgICBib3JkZXJUb3A6ICdub25lICFpbXBvcnRhbnQnLCAvLyBmaXhpbmcgUEQtNDg3MyAtIGluIE9ULCBpdCBoYXMgYm9yZGVyLXRvcCAxcHggYW5kIGFkZHMgZXh0cmEgbGluZVxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdyc6IHtcbiAgICAgIHdpZHRoOiAnMzBweCcsXG4gICAgICBtYXJnaW5Ub3A6ICcwICFpbXBvcnRhbnQnLFxuICAgICAgYm9yZGVyVG9wOiAnMnB4IHNvbGlkIGJsYWNrJyxcbiAgICAgIGZvbnRGYW1pbHk6ICdSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudCcsXG5cbiAgICAgICcmLm1xLWFycm93LWJvdGgnOiB7XG4gICAgICAgIHRvcDogJzBweCAhaW1wb3J0YW50JyxcbiAgICAgICAgJyYgKic6IHtcbiAgICAgICAgICBsaW5lSGVpZ2h0OiAnMSAhaW1wb3J0YW50JyxcbiAgICAgICAgICBib3JkZXJUb3A6ICdub25lICFpbXBvcnRhbnQnLCAvLyBmaXhpbmcgUEQtNDg3MyAtIGluIE9ULCBpdCBoYXMgYm9yZGVyLXRvcCAxcHggYW5kIGFkZHMgZXh0cmEgbGluZSxcbiAgICAgICAgfSxcbiAgICAgICAgJyY6YmVmb3JlJzoge1xuICAgICAgICAgIGZvbnRTaXplOiAnODAlJyxcbiAgICAgICAgICBsZWZ0OiAnY2FsYygtMTMlKSAhaW1wb3J0YW50JyxcbiAgICAgICAgICB0b3A6ICctMC4zMWVtICFpbXBvcnRhbnQnLFxuICAgICAgICB9LFxuICAgICAgICAnJjphZnRlcic6IHtcbiAgICAgICAgICBmb250U2l6ZTogJzgwJSAhaW1wb3J0YW50JyxcbiAgICAgICAgICByaWdodDogJ2NhbGMoLTEzJSkgIWltcG9ydGFudCcsXG4gICAgICAgICAgdG9wOiAnLTEuNWVtJyxcbiAgICAgICAgfSxcbiAgICAgICAgJyYubXEtZW1wdHk6YmVmb3JlJzoge1xuICAgICAgICAgIGZvbnRTaXplOiAnODAlJyxcbiAgICAgICAgICBsZWZ0OiAnY2FsYygtMTMlKScsXG4gICAgICAgICAgdG9wOiAnLTAuMjZlbScsXG4gICAgICAgIH0sXG4gICAgICAgICcmLm1xLWVtcHR5OmFmdGVyJzoge1xuICAgICAgICAgIGZvbnRTaXplOiAnODAlJyxcbiAgICAgICAgICByaWdodDogJ2NhbGMoLTEzJSknLFxuICAgICAgICAgIHRvcDogJy0wLjI2ZW0nLFxuICAgICAgICB9LFxuICAgICAgICAnJi5tcS1lbXB0eSc6IHtcbiAgICAgICAgICBtaW5IZWlnaHQ6ICcxLjRlbScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgJyYubXEtYXJyb3ctcmlnaHQ6YmVmb3JlJzoge1xuICAgICAgICBmb250U2l6ZTogJzgwJScsXG4gICAgICAgIHJpZ2h0OiAnY2FsYygtMTMlKSAhaW1wb3J0YW50JyxcbiAgICAgICAgdG9wOiAnLTAuMjZlbSAhaW1wb3J0YW50JyxcbiAgICAgIH0sXG4gICAgICAnJiAubXEtb3ZlcmFycm93LWlubmVyJzoge1xuICAgICAgICBib3JkZXI6ICdub25lICFpbXBvcnRhbnQnLFxuICAgICAgfSxcbiAgICAgICcmIC5tcS1vdmVyYXJyb3ctaW5uZXIgLm1xLW92ZXJhcnJvdy1pbm5lci1yaWdodCc6IHtcbiAgICAgICAgZGlzcGxheTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJyYgLm1xLXJvb3QtYmxvY2snOiB7XG4gICAgICBwYWRkaW5nOiAnNXB4ICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy5tcS1hcnJvdy1ib3RoLm1xLWVtcHR5OmFmdGVyJzoge1xuICAgICAgcmlnaHQ6ICctNnB4JyxcbiAgICAgIGZvbnRTaXplOiAnODAlICFpbXBvcnRhbnQnLFxuICAgICAgdG9wOiAnLTNweCcsXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93Lm1xLWFycm93LXJpZ2h0Lm1xLWVtcHR5OmJlZm9yZSc6IHtcbiAgICAgIHJpZ2h0OiAnLTVweCcsXG4gICAgICBmb250U2l6ZTogJzgwJSAhaW1wb3J0YW50JyxcbiAgICAgIHRvcDogJy0zcHgnLFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy5tcS1hcnJvdy1ib3RoLm1xLWVtcHR5OmJlZm9yZSc6IHtcbiAgICAgIGxlZnQ6ICctNnB4JyxcbiAgICAgIGZvbnRTaXplOiAnODAlICFpbXBvcnRhbnQnLFxuICAgICAgdG9wOiAnLTNweCcsXG4gICAgfSxcbiAgICAnJiAubXEtbG9uZ2Rpdi1pbm5lcic6IHtcbiAgICAgIGJvcmRlclRvcDogJzFweCBzb2xpZCAhaW1wb3J0YW50JyxcbiAgICAgIHBhZGRpbmdUb3A6ICcxLjVweCAhaW1wb3J0YW50JyxcbiAgICB9LFxuICAgICcmIC5tcS1wYXJhbGxlbG9ncmFtJzoge1xuICAgICAgbGluZUhlaWdodDogMC44NSxcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJjJzoge1xuICAgICAgYm9yZGVyVG9wOiAnMnB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQnLFxuICAgICAgJyYgLm1xLW92ZXJsaW5lJzoge1xuICAgICAgICBib3JkZXJUb3A6ICdub25lICFpbXBvcnRhbnQnLCAvLyBmaXhpbmcgUEQtNDg3MyAtIGluIE9ULCBpdCBoYXMgYm9yZGVyLXRvcCAxcHggYW5kIGFkZHMgZXh0cmEgbGluZVxuICAgICAgfSxcbiAgICAgICcmIC5tcS1vdmVybGluZS1pbm5lcic6IHtcbiAgICAgICAgYm9yZGVyVG9wOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAgICAgcGFkZGluZ1RvcDogJzAgIWltcG9ydGFudCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHBhcmFsbGVsQnV0dG9uOiB7XG4gICAgZm9udFN0eWxlOiAnaXRhbGljICFpbXBvcnRhbnQnLFxuICB9LFxuICBsZWZ0UmlnaHRBcnJvd0J1dHRvbjoge1xuICAgICcmIC5tcS1vdmVyYXJyb3cubXEtYXJyb3ctYm90aCc6IHtcbiAgICAgICcmIC5tcS1vdmVybGluZS1pbm5lcic6IHtcbiAgICAgICAgYm9yZGVyVG9wOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAgICAgcGFkZGluZ1RvcDogJzAgIWltcG9ydGFudCcsXG4gICAgICB9LFxuICAgICAgJyY6YWZ0ZXInOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUgIWltcG9ydGFudCcsXG4gICAgICAgIHRvcDogJzBweCAhaW1wb3J0YW50JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pKSgocHJvcHMpID0+IHtcbiAgbGV0IGJ1dHRvbkNsYXNzO1xuXG4gIGlmIChwcm9wcy5sYXRleCA9PT0gJ1xcXFxwYXJhbGxlbCcpIHtcbiAgICBidXR0b25DbGFzcyA9IGNsYXNzTmFtZXMocHJvcHMuY2xhc3Nlcy5sYXRleEJ1dHRvbiwgcHJvcHMubXFDbGFzc05hbWUsIHByb3BzLmNsYXNzZXMucGFyYWxsZWxCdXR0b24pO1xuICB9IGVsc2UgaWYgKHByb3BzLmxhdGV4ID09PSAnXFxcXG92ZXJsZWZ0cmlnaHRhcnJvd3tcXFxcb3ZlcmxpbmV7fX0nKSB7XG4gICAgYnV0dG9uQ2xhc3MgPSBjbGFzc05hbWVzKHByb3BzLmNsYXNzZXMubGF0ZXhCdXR0b24sIHByb3BzLm1xQ2xhc3NOYW1lLCBwcm9wcy5jbGFzc2VzLmxlZnRSaWdodEFycm93QnV0dG9uKTtcbiAgfSBlbHNlIHtcbiAgICBidXR0b25DbGFzcyA9IGNsYXNzTmFtZXMocHJvcHMuY2xhc3Nlcy5sYXRleEJ1dHRvbiwgcHJvcHMubXFDbGFzc05hbWUpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBNUSA9IE1hdGhRdWlsbC5nZXRJbnRlcmZhY2UoMik7XG4gICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICBzcGFuLmlubmVySFRNTCA9ICcnO1xuICAgIGNvbnN0IG1hdGhGaWVsZCA9IE1RLlN0YXRpY01hdGgoc3Bhbik7XG5cbiAgICBtYXRoRmllbGQucGFyc2VMYXRleChwcm9wcy5sYXRleCk7XG4gICAgbWF0aEZpZWxkLmxhdGV4KHByb3BzLmxhdGV4KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHJlY2VpdmVkIGxhdGV4IGhhcyBlcnJvcnMgLSBkbyBub3QgY3JlYXRlIGJ1dHRvblxuICAgIHJldHVybiA8PjwvPjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEJ1dHRvblxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHByb3BzLmNsYXNzZXMucm9vdCwgcHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBhcmlhLWxhYmVsPXtwcm9wcy5hcmlhTGFiZWx9XG4gICAgPlxuICAgICAgPG1xLlN0YXRpYyBjbGFzc05hbWU9e2J1dHRvbkNsYXNzfSBsYXRleD17cHJvcHMubGF0ZXh9IC8+XG4gICAgPC9CdXR0b24+XG4gICk7XG59KTtcblxuY29uc3QgY3JlYXRlQ3VzdG9tTGF5b3V0ID0gKGxheW91dE9iaikgPT4ge1xuICBpZiAobGF5b3V0T2JqKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHtsYXlvdXRPYmouY29sdW1uc30sIG1pbm1heChtaW4tY29udGVudCwgMTUwcHgpKWAsXG4gICAgICBncmlkVGVtcGxhdGVSb3dzOiBgcmVwZWF0KCR7bGF5b3V0T2JqLnJvd3N9LCBtaW5tYXgoNDBweCwgNjBweCkpYCxcbiAgICAgIGdyaWRBdXRvRmxvdzogJ2luaXRpYWwnLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY2xhc3MgS2V5UGFkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBiYXNlU2V0OiBQcm9wVHlwZXMuYXJyYXksXG4gICAgYWRkaXRpb25hbEtleXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBsYXlvdXRGb3JLZXlQYWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25QcmVzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBub0RlY2ltYWw6IFByb3BUeXBlcy5ib29sLFxuICAgIHNldEtleXBhZEludGVyYWN0aW9uOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBtb2RlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIH07XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgYmFzZVNldDogYmFzZVNldCxcbiAgICBub0RlY2ltYWw6IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMua2V5cGFkUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBrZXlQYWRFbGVtZW50ID0gdGhpcy5rZXlwYWRSZWY/LmN1cnJlbnQ7XG4gICAgY29uc3QgbWFpbkNvbnRhaW5lciA9IGtleVBhZEVsZW1lbnQ/LmNsb3Nlc3QoYC4ke2NvbnN0YW50cy5NQUlOX0NPTlRBSU5FUl9DTEFTU31gKTtcbiAgICBjb25zdCBjdXJyZW50VG9vbGJhciA9IGtleVBhZEVsZW1lbnQ/LmNsb3Nlc3QoJy5waWUtdG9vbGJhcicpO1xuXG4gICAgLy8gbmVlZCBvbmx5IGZvciBtYXRoIGtleWJvYXJkIHNvIHdlIG5lZWQgYWxzbyBjb250cm9sbGVkS2V5cGFkTW9kZVxuICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2xsZWRLZXlwYWRNb2RlICYmIG1haW5Db250YWluZXIgJiYgY3VycmVudFRvb2xiYXIpIHtcbiAgICAgIGNvbnN0IG1haW5Db250YWluZXJQb3NpdGlvbiA9IG1haW5Db250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjdXJyZW50VG9vbGJhclBvc2l0aW9uID0gY3VycmVudFRvb2xiYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBkaWZmZXJlbmNlID1cbiAgICAgICAgbWFpbkNvbnRhaW5lclBvc2l0aW9uLnRvcCArXG4gICAgICAgIG1haW5Db250YWluZXJQb3NpdGlvbi5oZWlnaHQgLVxuICAgICAgICAoY3VycmVudFRvb2xiYXJQb3NpdGlvbi50b3AgKyBjdXJyZW50VG9vbGJhclBvc2l0aW9uLmhlaWdodCk7XG4gICAgICBpZiAoZGlmZmVyZW5jZSA8IDApIHtcbiAgICAgICAgY29uc3QgdG90YWxIZWlnaHQgPSBtYWluQ29udGFpbmVyUG9zaXRpb24uaGVpZ2h0ICsgbWFpbkNvbnRhaW5lclBvc2l0aW9uLnRvcCAtIGRpZmZlcmVuY2U7XG4gICAgICAgIC8vIGluY3JlYXNlIHRoZSBoZWlnaHQgb2YgdGhlIG1haW4gY29udGFpbmVyIGlmIGtleWJvYXJkIG5lZWRzIGl0XG4gICAgICAgIGlmIChtYWluQ29udGFpbmVyKSB7XG4gICAgICAgICAgbWFpbkNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBgJHt0b3RhbEhlaWdodH1weGA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoa2V5UGFkRWxlbWVudCkge1xuICAgICAga2V5UGFkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVLZXlwYWRJbnRlcmFjdGlvbiwgdHJ1ZSk7XG4gICAgICBrZXlQYWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlS2V5cGFkSW50ZXJhY3Rpb24sIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IGtleVBhZEVsZW1lbnQgPSB0aGlzLmtleXBhZFJlZj8uY3VycmVudDtcbiAgICAvLyBuZWVkIG9ubHkgZm9yIG1hdGgga2V5Ym9hcmRcbiAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sbGVkS2V5cGFkTW9kZSAmJiBrZXlQYWRFbGVtZW50KSB7XG4gICAgICBjb25zdCBtYWluQ29udGFpbmVyID0ga2V5UGFkRWxlbWVudC5jbG9zZXN0KGAuJHtjb25zdGFudHMuTUFJTl9DT05UQUlORVJfQ0xBU1N9YCk7XG5cbiAgICAgIGlmIChtYWluQ29udGFpbmVyKSB7XG4gICAgICAgIG1haW5Db250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoa2V5UGFkRWxlbWVudCkge1xuICAgICAga2V5UGFkRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVLZXlwYWRJbnRlcmFjdGlvbiwgdHJ1ZSk7XG4gICAgICBrZXlQYWRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlS2V5cGFkSW50ZXJhY3Rpb24sIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleXBhZEludGVyYWN0aW9uID0gKCkgPT4ge1xuICAgIC8vIENoZWNrIGlmIHRoZSBzZXRLZXlwYWRJbnRlcmFjdGlvbiBwcm9wIGlzIGF2YWlsYWJsZSwgd2hpY2ggaXMgdXNlZCBmb3IgYm90aFxuICAgIC8vIHRoZSBsYW5ndWFnZSBrZXlwYWQgYW5kIHRoZSBzcGVjaWFsIGNoYXJhY3RlcnMga2V5cGFkXG4gICAgaWYgKHRoaXMucHJvcHMuc2V0S2V5cGFkSW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMucHJvcHMuc2V0S2V5cGFkSW50ZXJhY3Rpb24odHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIGJ1dHRvbkNsaWNrID0gKGtleSkgPT4ge1xuICAgIGxvZygnW2J1dHRvbkNsaWNrXScsIGtleSk7XG4gICAgY29uc3QgeyBvblByZXNzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgb25QcmVzcyhrZXkpO1xuICB9O1xuXG4gIGZsb3dLZXlzID0gKGJhc2UsIGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IHRyYW5zcG9zZWQgPSBbLi4uc29ydEtleXMoYmFzZSksIC4uLnNvcnRLZXlzKGV4dHJhcyldO1xuICAgIHJldHVybiBfLmZsYXR0ZW4odHJhbnNwb3NlZCk7XG4gIH07XG5cbiAga2V5SXNOb3RBbGxvd2VkID0gKGtleSkgPT4ge1xuICAgIGNvbnN0IHsgbm9EZWNpbWFsIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCgoa2V5LndyaXRlID09PSAnLicgJiYga2V5LmxhYmVsID09PSAnLicpIHx8IChrZXkud3JpdGUgPT09ICcsJyAmJiBrZXkubGFiZWwgPT09ICcsJykpICYmIG5vRGVjaW1hbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMsIGNsYXNzTmFtZSwgYmFzZVNldCwgYWRkaXRpb25hbEtleXMsIGxheW91dEZvcktleVBhZCwgb25Gb2N1cywgbW9kZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IG5vQmFzZVNldCA9IFsnbm9uLW5lZ2F0aXZlLWludGVnZXJzJywgJ2ludGVnZXJzJywgJ2RlY2ltYWxzJywgJ2ZyYWN0aW9ucycsICdpdGVtLWF1dGhvcmluZycsICdsYW5ndWFnZSddO1xuXG4gICAgY29uc3Qga2V5c1dpdGhvdXRCYXNlU2V0ID0gbm9CYXNlU2V0LmluY2x1ZGVzKG1vZGUpO1xuICAgIGNvbnN0IGFsbEtleXMgPSBrZXlzV2l0aG91dEJhc2VTZXRcbiAgICAgID8gdGhpcy5mbG93S2V5cyhbXSwgYWRkaXRpb25hbEtleXMgfHwgW10pXG4gICAgICA6IHRoaXMuZmxvd0tleXMoYmFzZVNldCwgYWRkaXRpb25hbEtleXMgfHwgW10pOyAvLywgLi4uc29ydEtleXMoYWRkaXRpb25hbEtleXMpXTtcblxuICAgIGNvbnN0IHNoaWZ0ID0gYWxsS2V5cy5sZW5ndGggJSA1ID8gMSA6IDA7XG4gICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICBncmlkVGVtcGxhdGVDb2x1bW5zOiBgcmVwZWF0KCR7TWF0aC5mbG9vcihhbGxLZXlzLmxlbmd0aCAvIDUpICsgc2hpZnR9LCBtaW5tYXgobWluLWNvbnRlbnQsIDE1MHB4KSlgLFxuICAgICAgLi4uY3JlYXRlQ3VzdG9tTGF5b3V0KGxheW91dEZvcktleVBhZCksXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17dGhpcy5rZXlwYWRSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLmtleXMsIGNsYXNzTmFtZSwgY2xhc3Nlc1ttb2RlXSl9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgID5cbiAgICAgICAge2FsbEtleXMubWFwKChrLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9uQ2xpY2sgPSB0aGlzLmJ1dHRvbkNsaWNrLmJpbmQodGhpcywgayk7XG5cbiAgICAgICAgICBpZiAoIWspIHtcbiAgICAgICAgICAgIHJldHVybiA8c3BhbiBrZXk9e2BlbXB0eS0ke2luZGV4fWB9IC8+O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbW1vbiA9IHtcbiAgICAgICAgICAgIG9uQ2xpY2ssXG4gICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoXG4gICAgICAgICAgICAgIGNsYXNzZXMubGFiZWxCdXR0b24sXG4gICAgICAgICAgICAgICFrZXlzV2l0aG91dEJhc2VTZXQgJiYgY2xhc3Nlc1trLmNhdGVnb3J5XSxcbiAgICAgICAgICAgICAgY2xhc3Nlc1trLmV4dHJhQ2xhc3NdLFxuICAgICAgICAgICAgICBrLmxhYmVsID09PSAnLCcgJiYgY2xhc3Nlcy5jb21tYSxcbiAgICAgICAgICAgICAgay5sYWJlbCA9PT0gJy4nICYmIGNsYXNzZXMuZG90LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmtleUlzTm90QWxsb3dlZChrKSxcbiAgICAgICAgICAgIGtleTogYCR7ay5sYWJlbCB8fCBrLmxhdGV4IHx8IGsuY29tbWFuZH0tJHtpbmRleH1gLFxuICAgICAgICAgICAgLi4uKGsuYWN0aW9ucyB8fCB7fSksXG4gICAgICAgICAgICAuLi4oay5leHRyYVByb3BzIHx8IHt9KSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKGsubGF0ZXgpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXRleEJ1dHRvblxuICAgICAgICAgICAgICAgIGxhdGV4PXtrLmxhdGV4fVxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgey4uLmNvbW1vbn1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubGF0ZXhCdXR0b259XG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPXtrLmFyaWFMYWJlbCA/IGsuYXJpYUxhYmVsIDogay5uYW1lIHx8IGsubGFiZWx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChrLmxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICB7Li4uY29tbW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjb21tb24uY2xhc3NOYW1lLCB7IFtjbGFzc2VzLmRlbGV0ZUJ1dHRvbl06IGsubGFiZWwgPT09ICfijKsnIH0pfVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2suYXJpYUxhYmVsID8gay5hcmlhTGFiZWwgOiBrLm5hbWUgfHwgay5sYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtrLmxhYmVsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IEljb24gPSBrLmljb24gPyBrLmljb24gOiAnZGl2JztcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEljb25CdXR0b24gdGFiSW5kZXg9eyctMSd9IHsuLi5jb21tb259IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT17Y2xhc3Nlcy5pY29ufSAvPlxuICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9ICh0aGVtZSkgPT4gKHtcbiAga2V5czoge1xuICAgIC4uLmNvbW1vbk1xS2V5Ym9hcmRTdHlsZXMsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgZ3JpZFRlbXBsYXRlUm93czogJ3JlcGVhdCg1LCBtaW5tYXgoNDBweCwgNjBweCkpJyxcbiAgICBncmlkUm93R2FwOiAnMHB4JyxcbiAgICBncmlkQ29sdW1uR2FwOiAnMHB4JyxcbiAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICB9LFxuICBjaGFyYWN0ZXI6IHtcbiAgICB0ZXh0VHJhbnNmb3JtOiAnaW5pdGlhbCAhaW1wb3J0YW50JyxcbiAgICBncmlkVGVtcGxhdGVSb3dzOiAncmVwZWF0KDUsIG1pbm1heCg0MHB4LCA1MHB4KSkgIWltcG9ydGFudCcsXG4gIH0sXG4gIGxhbmd1YWdlOiB7XG4gICAgZ3JpZFRlbXBsYXRlUm93czogJ3JlcGVhdCg0LCBtaW5tYXgoNDBweCwgNTBweCkpICFpbXBvcnRhbnQnLFxuICAgICcmIConOiB7XG4gICAgICBmb250RmFtaWx5OiAnUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gIH0sXG4gIGhvbGRlcjoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2NlZicsXG4gICAgYm9yZGVyUmFkaXVzOiAwLFxuICAgIHBhZGRpbmc6IGAke3RoZW1lLnNwYWNpbmcudW5pdH1weCAwICR7dGhlbWUuc3BhY2luZy51bml0fXB4IDBgLFxuICB9LFxuICBsYWJlbEJ1dHRvbjoge1xuICAgIG1pbldpZHRoOiAnYXV0bycsXG4gICAgZm9udFNpemU6ICcxNDAlICFpbXBvcnRhbnQnLFxuICAgIGJhY2tncm91bmRDb2xvcjogbGlnaHRlbih0aGVtZS5wYWxldHRlLnByaW1hcnkubGlnaHQsIDAuNSksXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGxpZ2h0ZW4odGhlbWUucGFsZXR0ZS5wcmltYXJ5LmxpZ2h0LCAwLjcpLFxuICAgIH0sXG4gICAgYm9yZGVyUmFkaXVzOiAwLFxuICB9LFxuICBsYXRleEJ1dHRvbjoge1xuICAgIG1pbldpZHRoOiAnYXV0bycsXG4gICAgYm9yZGVyUmFkaXVzOiAwLFxuICAgIGJhY2tncm91bmRDb2xvcjogbGlnaHRlbih0aGVtZS5wYWxldHRlLnByaW1hcnkubGlnaHQsIDAuNSksXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGxpZ2h0ZW4odGhlbWUucGFsZXR0ZS5wcmltYXJ5LmxpZ2h0LCAwLjcpLFxuICAgIH0sXG4gIH0sXG4gIGRlbGV0ZUJ1dHRvbjoge1xuICAgICcmID4gc3Bhbic6IHtcbiAgICAgIGZvbnRGYW1pbHk6ICdSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgfSxcbiAgYmFzZToge30sXG4gIG9wZXJhdG9yczoge1xuICAgIGJhY2tncm91bmRDb2xvcjogbGlnaHRlbih0aGVtZS5wYWxldHRlLnNlY29uZGFyeS5saWdodCwgMC41KSxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogbGlnaHRlbih0aGVtZS5wYWxldHRlLnNlY29uZGFyeS5saWdodCwgMC43KSxcbiAgICB9LFxuICB9LFxuICBjb21wYXJpc29uOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBsaWdodGVuKGdyZWVuWzUwMF0sIDAuNSksXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGxpZ2h0ZW4oZ3JlZW5bNTAwXSwgMC43KSxcbiAgICB9LFxuICB9LFxuICBjb21tYToge1xuICAgIGZvbnRTaXplOiAnMjAwJSAhaW1wb3J0YW50JyxcbiAgICBsaW5lSGVpZ2h0OiAnMTAwJScsXG4gIH0sXG4gIGRvdDoge1xuICAgIGZvbnRTaXplOiAnMjAwJSAhaW1wb3J0YW50JyxcbiAgICBsaW5lSGVpZ2h0OiAnMTAwJScsXG4gIH0sXG4gIGljb246IHtcbiAgICBoZWlnaHQ6ICczMHB4JyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoS2V5UGFkKTtcbiJdfQ==
|