@pie-lib/math-toolbar 1.11.31-next.134 → 1.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__/editor-and-pad.test.js +37 -0
- package/lib/__tests__/index.test.js +41 -0
- package/lib/__tests__/math-preview.test.js +42 -0
- package/lib/done-button.js +1 -1
- package/lib/editor-and-pad.js +27 -105
- package/lib/index.js +17 -6
- package/lib/math-preview.js +104 -89
- package/lib/utils.js +21 -0
- package/package.json +4 -4
- package/src/__tests__/__snapshots__/editor-and-pad.test.js.snap +31 -0
- package/src/__tests__/__snapshots__/index.test.js.snap +30 -0
- package/src/__tests__/__snapshots__/math-preview.test.js.snap +23 -0
- package/src/__tests__/editor-and-pad.test.js +25 -0
- package/src/__tests__/index.test.js +28 -0
- package/src/__tests__/math-preview.test.js +31 -0
- package/src/editor-and-pad.jsx +22 -121
- package/src/index.jsx +13 -2
- package/src/math-preview.jsx +56 -82
- package/src/utils.js +11 -0
- package/lib/done-button.js.map +0 -1
- package/lib/editor-and-pad.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/math-preview.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
|
+
# [1.13.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.11.30...@pie-lib/math-toolbar@1.13.0-beta.0) (2025-07-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/math-toolbar
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.12.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.11.30...@pie-lib/math-toolbar@1.12.0-beta.0) (2025-07-15)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/math-toolbar
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [1.11.30](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.11.29...@pie-lib/math-toolbar@1.11.30) (2023-07-04)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @pie-lib/math-toolbar
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1,37 @@
|
|
|
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 _editorAndPad = require("../editor-and-pad");
|
|
8
|
+
|
|
9
|
+
var _enzyme = require("enzyme");
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
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('snapshot', function () {
|
|
18
|
+
var wrapper;
|
|
19
|
+
var onBlur = jest.fn();
|
|
20
|
+
beforeAll(function () {
|
|
21
|
+
wrapper = function wrapper(extras) {
|
|
22
|
+
var defaults = {
|
|
23
|
+
classes: {},
|
|
24
|
+
classNames: {},
|
|
25
|
+
onBlur: onBlur
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
29
|
+
|
|
30
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_editorAndPad.EditorAndPad, props));
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
it('renders', function () {
|
|
34
|
+
expect(wrapper()).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZWRpdG9yLWFuZC1wYWQudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIndyYXBwZXIiLCJvbkJsdXIiLCJqZXN0IiwiZm4iLCJiZWZvcmVBbGwiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWVzIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekIsTUFBSUMsT0FBSjtBQUNBLE1BQUlDLE1BQU0sR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQWI7QUFFQUMsRUFBQUEsU0FBUyxDQUFDLFlBQU07QUFDZEosSUFBQUEsT0FBTyxHQUFHLGlCQUFDSyxNQUFELEVBQVk7QUFDcEIsVUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLFFBQUFBLE9BQU8sRUFBRSxFQURNO0FBRWZDLFFBQUFBLFVBQVUsRUFBRSxFQUZHO0FBR2ZQLFFBQUFBLE1BQU0sRUFBTkE7QUFIZSxPQUFqQjs7QUFLQSxVQUFNUSxLQUFLLG1DQUFRSCxRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUVBLGFBQU8sbUNBQVEsZ0NBQUMsMEJBQUQsRUFBa0JJLEtBQWxCLENBQVIsQ0FBUDtBQUNELEtBVEQ7QUFVRCxHQVhRLENBQVQ7QUFhQUMsRUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCQyxJQUFBQSxNQUFNLENBQUNYLE9BQU8sRUFBUixDQUFOLENBQWtCWSxlQUFsQjtBQUNELEdBRkMsQ0FBRjtBQUdELENBcEJPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JBbmRQYWQgfSBmcm9tICcuLi9lZGl0b3ItYW5kLXBhZCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgbGV0IHdyYXBwZXI7XG4gIGxldCBvbkJsdXIgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICB3cmFwcGVyID0gKGV4dHJhcykgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICBjbGFzc05hbWVzOiB7fSxcbiAgICAgICAgb25CbHVyLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxFZGl0b3JBbmRQYWQgey4uLnByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -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 _index = require("../index");
|
|
8
|
+
|
|
9
|
+
var _enzyme = require("enzyme");
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
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('snapshot', function () {
|
|
18
|
+
var wrapper;
|
|
19
|
+
beforeAll(function () {
|
|
20
|
+
wrapper = function wrapper(extras) {
|
|
21
|
+
var defaults = {
|
|
22
|
+
classes: {},
|
|
23
|
+
controlledKeypad: true,
|
|
24
|
+
showKeypad: true
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
28
|
+
|
|
29
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.RawPureToolbar, props));
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
it('renders with DONE button if hideDoneButton is not defined', function () {
|
|
33
|
+
expect(wrapper()).toMatchSnapshot();
|
|
34
|
+
});
|
|
35
|
+
it('renders without DONE button if hideDoneButton value is true', function () {
|
|
36
|
+
expect(wrapper({
|
|
37
|
+
hideDoneButton: true
|
|
38
|
+
})).toMatchSnapshot();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIndyYXBwZXIiLCJiZWZvcmVBbGwiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjb250cm9sbGVkS2V5cGFkIiwic2hvd0tleXBhZCIsInByb3BzIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJoaWRlRG9uZUJ1dHRvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekIsTUFBSUMsT0FBSjtBQUVBQyxFQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNkRCxJQUFBQSxPQUFPLEdBQUcsaUJBQUNFLE1BQUQsRUFBWTtBQUNwQixVQUFNQyxRQUFRLEdBQUc7QUFDZkMsUUFBQUEsT0FBTyxFQUFFLEVBRE07QUFFZkMsUUFBQUEsZ0JBQWdCLEVBQUUsSUFGSDtBQUdmQyxRQUFBQSxVQUFVLEVBQUU7QUFIRyxPQUFqQjs7QUFLQSxVQUFNQyxLQUFLLG1DQUFRSixRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUVBLGFBQU8sbUNBQVEsZ0NBQUMscUJBQUQsRUFBb0JLLEtBQXBCLENBQVIsQ0FBUDtBQUNELEtBVEQ7QUFVRCxHQVhRLENBQVQ7QUFhQUMsRUFBQUEsRUFBRSxDQUFDLDJEQUFELEVBQThELFlBQU07QUFDcEVDLElBQUFBLE1BQU0sQ0FBQ1QsT0FBTyxFQUFSLENBQU4sQ0FBa0JVLGVBQWxCO0FBQ0QsR0FGQyxDQUFGO0FBSUFGLEVBQUFBLEVBQUUsQ0FBQyw2REFBRCxFQUFnRSxZQUFNO0FBQ3RFQyxJQUFBQSxNQUFNLENBQUNULE9BQU8sQ0FBQztBQUFFVyxNQUFBQSxjQUFjLEVBQUU7QUFBbEIsS0FBRCxDQUFSLENBQU4sQ0FBMENELGVBQTFDO0FBQ0QsR0FGQyxDQUFGO0FBR0QsQ0F2Qk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJhd1B1cmVUb29sYmFyIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5kZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgICBjbGFzc2VzOiB7fSxcbiAgICAgICAgY29udHJvbGxlZEtleXBhZDogdHJ1ZSxcbiAgICAgICAgc2hvd0tleXBhZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuXG4gICAgICByZXR1cm4gc2hhbGxvdyg8UmF3UHVyZVRvb2xiYXIgey4uLnByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aCBET05FIGJ1dHRvbiBpZiBoaWRlRG9uZUJ1dHRvbiBpcyBub3QgZGVmaW5lZCcsICgpID0+IHtcbiAgICBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBET05FIGJ1dHRvbiBpZiBoaWRlRG9uZUJ1dHRvbiB2YWx1ZSBpcyB0cnVlJywgKCkgPT4ge1xuICAgIGV4cGVjdCh3cmFwcGVyKHsgaGlkZURvbmVCdXR0b246IHRydWUgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
8
|
+
|
|
9
|
+
var _enzyme = require("enzyme");
|
|
10
|
+
|
|
11
|
+
var _mathPreview = _interopRequireDefault(require("../math-preview"));
|
|
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('snapshot', function () {
|
|
18
|
+
var wrapper;
|
|
19
|
+
beforeAll(function () {
|
|
20
|
+
wrapper = function wrapper(extras) {
|
|
21
|
+
var defaults = {
|
|
22
|
+
node: {
|
|
23
|
+
data: {
|
|
24
|
+
get: jest.fn().mockReturnValue('sqrt(5)')
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
classes: {},
|
|
28
|
+
isSelected: false,
|
|
29
|
+
onFocus: jest.fn(),
|
|
30
|
+
onBlur: jest.fn()
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
34
|
+
|
|
35
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_mathPreview["default"], props));
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
it('renders', function () {
|
|
39
|
+
expect(wrapper()).toMatchSnapshot();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWF0aC1wcmV2aWV3LnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJ3cmFwcGVyIiwiYmVmb3JlQWxsIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJub2RlIiwiZGF0YSIsImdldCIsImplc3QiLCJmbiIsIm1vY2tSZXR1cm5WYWx1ZSIsImNsYXNzZXMiLCJpc1NlbGVjdGVkIiwib25Gb2N1cyIsIm9uQmx1ciIsInByb3BzIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCLE1BQUlDLE9BQUo7QUFFQUMsRUFBQUEsU0FBUyxDQUFDLFlBQU07QUFDZEQsSUFBQUEsT0FBTyxHQUFHLGlCQUFDRSxNQUFELEVBQVk7QUFDcEIsVUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLFFBQUFBLElBQUksRUFBRTtBQUNKQyxVQUFBQSxJQUFJLEVBQUU7QUFDSkMsWUFBQUEsR0FBRyxFQUFFQyxJQUFJLENBQUNDLEVBQUwsR0FBVUMsZUFBVixDQUEwQixTQUExQjtBQUREO0FBREYsU0FEUztBQU1mQyxRQUFBQSxPQUFPLEVBQUUsRUFOTTtBQU9mQyxRQUFBQSxVQUFVLEVBQUUsS0FQRztBQVFmQyxRQUFBQSxPQUFPLEVBQUVMLElBQUksQ0FBQ0MsRUFBTCxFQVJNO0FBU2ZLLFFBQUFBLE1BQU0sRUFBRU4sSUFBSSxDQUFDQyxFQUFMO0FBVE8sT0FBakI7O0FBV0EsVUFBTU0sS0FBSyxtQ0FBUVgsUUFBUixHQUFxQkQsTUFBckIsQ0FBWDs7QUFFQSxhQUFPLG1DQUFRLGdDQUFDLHVCQUFELEVBQWlCWSxLQUFqQixDQUFSLENBQVA7QUFDRCxLQWZEO0FBZ0JELEdBakJRLENBQVQ7QUFtQkFDLEVBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVksWUFBTTtBQUNsQkMsSUFBQUEsTUFBTSxDQUFDaEIsT0FBTyxFQUFSLENBQU4sQ0FBa0JpQixlQUFsQjtBQUNELEdBRkMsQ0FBRjtBQUdELENBekJPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5cbmltcG9ydCBNYXRoUHJldmlldyBmcm9tICcuLi9tYXRoLXByZXZpZXcnO1xuXG5kZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgICBub2RlOiB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZ2V0OiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKCdzcXJ0KDUpJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBvbkZvY3VzOiBqZXN0LmZuKCksXG4gICAgICAgIG9uQmx1cjogamVzdC5mbigpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxNYXRoUHJldmlldyB7Li4ucHJvcHN9IC8+KTtcbiAgICB9O1xuICB9KTtcblxuICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/lib/done-button.js
CHANGED
|
@@ -65,4 +65,4 @@ var styles = function styles(theme) {
|
|
|
65
65
|
|
|
66
66
|
var DoneButton = (0, _styles.withStyles)(styles)(RawDoneButton);
|
|
67
67
|
exports.DoneButton = DoneButton;
|
|
68
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb25lLWJ1dHRvbi5qc3giXSwibmFtZXMiOlsiUmF3RG9uZUJ1dHRvbiIsImNsYXNzZXMiLCJvbkNsaWNrIiwiaGlkZUJhY2tncm91bmQiLCJpY29uUm9vdCIsImxhYmVsIiwicm9vdCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic3R5bGVzIiwidGhlbWUiLCJ2ZXJ0aWNhbEFsaWduIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJjb21tb24iLCJ3aGl0ZSIsImdyZXkiLCJwb3NpdGlvbiIsInRvcCIsIkRvbmVCdXR0b24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRU8sSUFBTUEsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQjtBQUFBLE1BQUdDLE9BQUgsUUFBR0EsT0FBSDtBQUFBLE1BQVlDLE9BQVosUUFBWUEsT0FBWjtBQUFBLE1BQXFCQyxjQUFyQixRQUFxQkEsY0FBckI7QUFBQSxzQkFDM0IsZ0NBQUMsc0JBQUQ7QUFDRSxrQkFBVyxNQURiO0FBRUUsSUFBQSxTQUFTLEVBQUVGLE9BQU8sQ0FBQ0csUUFGckI7QUFHRSxJQUFBLE9BQU8sRUFBRUYsT0FIWDtBQUlFLElBQUEsT0FBTyxFQUFFO0FBQ1BHLE1BQUFBLEtBQUssRUFBRUosT0FBTyxDQUFDSSxLQURSO0FBRVBDLE1BQUFBLElBQUksRUFBRSw0QkFBV0wsT0FBTyxDQUFDRyxRQUFuQix1Q0FBZ0NILE9BQU8sQ0FBQ0UsY0FBeEMsRUFBeURBLGNBQXpEO0FBRkM7QUFKWCxrQkFTRSxnQ0FBQyxpQkFBRCxPQVRGLENBRDJCO0FBQUEsQ0FBdEI7OztBQWNQSCxhQUFhLENBQUNPLFNBQWQsR0FBMEI7QUFDeEJOLEVBQUFBLE9BQU8sRUFBRU8sc0JBQVVDLE1BQVYsQ0FBaUJDLFVBREY7QUFFeEJSLEVBQUFBLE9BQU8sRUFBRU0sc0JBQVVHO0FBRkssQ0FBMUI7O0FBS0EsSUFBTUMsTUFBTSxHQUFHLFNBQVRBLE1BQVMsQ0FBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDekJULElBQUFBLFFBQVEsRUFBRTtBQUNSVSxNQUFBQSxhQUFhLEVBQUUsS0FEUDtBQUVSQyxNQUFBQSxLQUFLLEVBQUUsTUFGQztBQUdSQyxNQUFBQSxNQUFNLEVBQUUsTUFIQTtBQUlSQyxNQUFBQSxLQUFLLEVBQUU7QUFKQyxLQURlO0FBT3pCZCxJQUFBQSxjQUFjLEVBQUU7QUFDZGUsTUFBQUEsZUFBZSxFQUFFTCxLQUFLLENBQUNNLE9BQU4sQ0FBY0MsTUFBZCxDQUFxQkMsS0FEeEI7QUFHZCxpQkFBVztBQUNUSCxRQUFBQSxlQUFlLEVBQUVMLEtBQUssQ0FBQ00sT0FBTixDQUFjRyxJQUFkLENBQW1CLEdBQW5CO0FBRFI7QUFIRyxLQVBTO0FBY3pCakIsSUFBQUEsS0FBSyxFQUFFO0FBQ0xrQixNQUFBQSxRQUFRLEVBQUUsVUFETDtBQUVMQyxNQUFBQSxHQUFHLEVBQUU7QUFGQTtBQWRrQixHQUFaO0FBQUEsQ0FBZjs7QUFtQk8sSUFBTUMsVUFBVSxHQUFHLHdCQUFXYixNQUFYLEVBQW1CWixhQUFuQixDQUFuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0ljb25CdXR0b24nO1xuaW1wb3J0IENoZWNrIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DaGVjayc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuZXhwb3J0IGNvbnN0IFJhd0RvbmVCdXR0b24gPSAoeyBjbGFzc2VzLCBvbkNsaWNrLCBoaWRlQmFja2dyb3VuZCB9KSA9PiAoXG4gIDxJY29uQnV0dG9uXG4gICAgYXJpYS1sYWJlbD1cIkRvbmVcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pY29uUm9vdH1cbiAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgIGNsYXNzZXM9e3tcbiAgICAgIGxhYmVsOiBjbGFzc2VzLmxhYmVsLFxuICAgICAgcm9vdDogY2xhc3NOYW1lcyhjbGFzc2VzLmljb25Sb290LCB7IFtjbGFzc2VzLmhpZGVCYWNrZ3JvdW5kXTogaGlkZUJhY2tncm91bmQgfSksXG4gICAgfX1cbiAgPlxuICAgIDxDaGVjayAvPlxuICA8L0ljb25CdXR0b24+XG4pO1xuXG5SYXdEb25lQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmNvbnN0IHN0eWxlcyA9ICh0aGVtZSkgPT4gKHtcbiAgaWNvblJvb3Q6IHtcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgICB3aWR0aDogJzI4cHgnLFxuICAgIGhlaWdodDogJzI4cHgnLFxuICAgIGNvbG9yOiAnIzAwYmIwMCcsXG4gIH0sXG4gIGhpZGVCYWNrZ3JvdW5kOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmNvbW1vbi53aGl0ZSxcblxuICAgICcmOmhvdmVyJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlbMjAwXSxcbiAgICB9LFxuICB9LFxuICBsYWJlbDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogJzJweCcsXG4gIH0sXG59KTtcbmV4cG9ydCBjb25zdCBEb25lQnV0dG9uID0gd2l0aFN0eWxlcyhzdHlsZXMpKFJhd0RvbmVCdXR0b24pO1xuIl19
|
package/lib/editor-and-pad.js
CHANGED
|
@@ -21,8 +21,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
21
21
|
|
|
22
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
23
|
|
|
24
|
-
var _mathInput = require("@pie-lib/math-input");
|
|
25
|
-
|
|
26
24
|
var _react = _interopRequireDefault(require("react"));
|
|
27
25
|
|
|
28
26
|
var _debug = _interopRequireDefault(require("debug"));
|
|
@@ -35,14 +33,18 @@ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
|
35
33
|
|
|
36
34
|
var _styles = require("@material-ui/core/styles");
|
|
37
35
|
|
|
38
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
39
|
-
|
|
40
36
|
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
41
37
|
|
|
42
38
|
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
43
39
|
|
|
44
40
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
45
41
|
|
|
42
|
+
var _mathInput = require("@pie-lib/math-input");
|
|
43
|
+
|
|
44
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
45
|
+
|
|
46
|
+
var _utils = require("./utils");
|
|
47
|
+
|
|
46
48
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
49
|
|
|
48
50
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -51,6 +53,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
51
53
|
|
|
52
54
|
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; }
|
|
53
55
|
|
|
56
|
+
var _mq$CommonMqStyles = _mathInput.mq.CommonMqStyles,
|
|
57
|
+
commonMqFontStyles = _mq$CommonMqStyles.commonMqFontStyles,
|
|
58
|
+
commonMqKeyboardStyles = _mq$CommonMqStyles.commonMqKeyboardStyles,
|
|
59
|
+
longdivStyles = _mq$CommonMqStyles.longdivStyles,
|
|
60
|
+
supsubStyles = _mq$CommonMqStyles.supsubStyles;
|
|
54
61
|
var log = (0, _debug["default"])('@pie-lib:math-toolbar:editor-and-pad');
|
|
55
62
|
var decimalRegex = /\.|,/g;
|
|
56
63
|
|
|
@@ -151,6 +158,7 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
151
158
|
onChange = _this$props2.onChange,
|
|
152
159
|
noDecimal = _this$props2.noDecimal;
|
|
153
160
|
(0, _mathInput.updateSpans)();
|
|
161
|
+
(0, _utils.markFractionBaseSuperscripts)();
|
|
154
162
|
|
|
155
163
|
_this.updateDisable(true); // if no decimals are allowed and the last change is a decimal dot, discard the change
|
|
156
164
|
|
|
@@ -257,6 +265,7 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
257
265
|
controlledKeypad = _this$props3.controlledKeypad,
|
|
258
266
|
controlledKeypadMode = _this$props3.controlledKeypadMode,
|
|
259
267
|
showKeypad = _this$props3.showKeypad,
|
|
268
|
+
setKeypadInteraction = _this$props3.setKeypadInteraction,
|
|
260
269
|
noDecimal = _this$props3.noDecimal,
|
|
261
270
|
hideInput = _this$props3.hideInput,
|
|
262
271
|
layoutForKeyPad = _this$props3.layoutForKeyPad,
|
|
@@ -334,11 +343,13 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
334
343
|
className: classes.hr
|
|
335
344
|
}), shouldShowKeypad && /*#__PURE__*/_react["default"].createElement(_mathInput.HorizontalKeypad, {
|
|
336
345
|
className: (0, _classnames["default"])(classes[keypadMode], classes.keyboard),
|
|
346
|
+
controlledKeypadMode: controlledKeypadMode,
|
|
337
347
|
layoutForKeyPad: layoutForKeyPad,
|
|
338
348
|
additionalKeys: additionalKeys,
|
|
339
349
|
mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
|
|
340
350
|
onClick: this.onClick,
|
|
341
|
-
noDecimal: noDecimal
|
|
351
|
+
noDecimal: noDecimal,
|
|
352
|
+
setKeypadInteraction: setKeypadInteraction
|
|
342
353
|
}));
|
|
343
354
|
}
|
|
344
355
|
}]);
|
|
@@ -361,12 +372,13 @@ exports.EditorAndPad = EditorAndPad;
|
|
|
361
372
|
layoutForKeyPad: _propTypes["default"].object,
|
|
362
373
|
maxResponseAreas: _propTypes["default"].number,
|
|
363
374
|
additionalKeys: _propTypes["default"].array,
|
|
364
|
-
latex: _propTypes["default"].string,
|
|
375
|
+
latex: _propTypes["default"].string.isRequired,
|
|
365
376
|
onAnswerBlockAdd: _propTypes["default"].func,
|
|
366
377
|
onFocus: _propTypes["default"].func,
|
|
367
378
|
onBlur: _propTypes["default"].func,
|
|
368
379
|
onChange: _propTypes["default"].func.isRequired,
|
|
369
|
-
classes: _propTypes["default"].object
|
|
380
|
+
classes: _propTypes["default"].object,
|
|
381
|
+
setKeypadInteraction: _propTypes["default"].func
|
|
370
382
|
});
|
|
371
383
|
|
|
372
384
|
var styles = function styles(theme) {
|
|
@@ -396,7 +408,7 @@ var styles = function styles(theme) {
|
|
|
396
408
|
left: '-1px'
|
|
397
409
|
},
|
|
398
410
|
'&:after': {
|
|
399
|
-
position: 'absolute',
|
|
411
|
+
position: 'absolute !important',
|
|
400
412
|
top: '0px !important',
|
|
401
413
|
right: '-2px'
|
|
402
414
|
},
|
|
@@ -410,20 +422,7 @@ var styles = function styles(theme) {
|
|
|
410
422
|
right: '-1px'
|
|
411
423
|
}
|
|
412
424
|
},
|
|
413
|
-
'& *': {
|
|
414
|
-
fontFamily: 'MJXZERO, MJXTEX !important',
|
|
415
|
-
'& .mq-math-mode > span > var': {
|
|
416
|
-
fontFamily: 'MJXZERO, MJXTEX-I !important'
|
|
417
|
-
},
|
|
418
|
-
'& .mq-math-mode span var': {
|
|
419
|
-
fontFamily: 'MJXZERO, MJXTEX-I !important'
|
|
420
|
-
},
|
|
421
|
-
'& .mq-math-mode .mq-nonSymbola': {
|
|
422
|
-
fontFamily: 'MJXZERO, MJXTEX-I !important'
|
|
423
|
-
},
|
|
424
|
-
'& .mq-math-mode > span > var.mq-operator-name': {
|
|
425
|
-
fontFamily: 'MJXZERO, MJXTEX !important'
|
|
426
|
-
},
|
|
425
|
+
'& *': _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, commonMqFontStyles), supsubStyles), longdivStyles), {}, {
|
|
427
426
|
'& .mq-math-mode .mq-sqrt-prefix': {
|
|
428
427
|
verticalAlign: 'baseline !important',
|
|
429
428
|
top: '1px !important',
|
|
@@ -432,11 +431,6 @@ var styles = function styles(theme) {
|
|
|
432
431
|
'& .mq-math-mode .mq-overarc ': {
|
|
433
432
|
paddingTop: '0.45em !important'
|
|
434
433
|
},
|
|
435
|
-
'& .mq-math-mode sup.mq-nthroot': {
|
|
436
|
-
fontSize: '70% !important',
|
|
437
|
-
verticalAlign: '0.5em !important',
|
|
438
|
-
paddingRight: '0.15em'
|
|
439
|
-
},
|
|
440
434
|
'& .mq-math-mode .mq-empty': {
|
|
441
435
|
padding: '9px 1px !important'
|
|
442
436
|
},
|
|
@@ -446,26 +440,11 @@ var styles = function styles(theme) {
|
|
|
446
440
|
'& .mq-scaled .mq-sqrt-prefix': {
|
|
447
441
|
top: '0 !important'
|
|
448
442
|
},
|
|
449
|
-
'& .mq-longdiv-inner': {
|
|
450
|
-
marginTop: '-1px',
|
|
451
|
-
marginLeft: '5px !important;',
|
|
452
|
-
'& > .mq-empty': {
|
|
453
|
-
padding: '0 !important',
|
|
454
|
-
marginLeft: '0px !important',
|
|
455
|
-
marginTop: '2px'
|
|
456
|
-
}
|
|
457
|
-
},
|
|
458
|
-
'& .mq-math-mode .mq-longdiv': {
|
|
459
|
-
display: 'inline-flex !important'
|
|
460
|
-
},
|
|
461
443
|
'& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {
|
|
462
444
|
marginLeft: '4px !important',
|
|
463
445
|
paddingTop: '6px !important',
|
|
464
446
|
paddingLeft: '6px !important'
|
|
465
447
|
},
|
|
466
|
-
'& .mq-math-mode .mq-supsub': {
|
|
467
|
-
fontSize: '70.7% !important'
|
|
468
|
-
},
|
|
469
448
|
'& .mq-math-mode .mq-paren': {
|
|
470
449
|
verticalAlign: 'top !important',
|
|
471
450
|
padding: '1px 0.1em !important'
|
|
@@ -476,15 +455,6 @@ var styles = function styles(theme) {
|
|
|
476
455
|
marginTop: '-2px !important',
|
|
477
456
|
paddingTop: '5px !important'
|
|
478
457
|
},
|
|
479
|
-
'& .mq-supsub ': {
|
|
480
|
-
fontSize: '70.7%'
|
|
481
|
-
},
|
|
482
|
-
'& .mq-math-mode .mq-supsub.mq-sup-only': {
|
|
483
|
-
verticalAlign: '-0.1em !important',
|
|
484
|
-
'& .mq-sup': {
|
|
485
|
-
marginBottom: '0px !important'
|
|
486
|
-
}
|
|
487
|
-
},
|
|
488
458
|
'& .mq-math-mode .mq-denominator': {
|
|
489
459
|
marginTop: '-5px !important',
|
|
490
460
|
padding: '0.5em 0.1em 0.1em !important'
|
|
@@ -493,8 +463,10 @@ var styles = function styles(theme) {
|
|
|
493
463
|
padding: '0 0.1em !important',
|
|
494
464
|
paddingBottom: '0 !important',
|
|
495
465
|
marginBottom: '-2px'
|
|
496
|
-
}
|
|
497
|
-
|
|
466
|
+
}
|
|
467
|
+
}),
|
|
468
|
+
'& span[data-prime="true"]': {
|
|
469
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
498
470
|
}
|
|
499
471
|
},
|
|
500
472
|
hide: {
|
|
@@ -588,57 +560,7 @@ var styles = function styles(theme) {
|
|
|
588
560
|
error: {
|
|
589
561
|
border: '2px solid red'
|
|
590
562
|
},
|
|
591
|
-
keyboard:
|
|
592
|
-
'& *': {
|
|
593
|
-
fontFamily: 'MJXZERO, MJXTEX !important',
|
|
594
|
-
'& .mq-math-mode > span > var': {
|
|
595
|
-
fontFamily: 'MJXZERO, MJXTEX-I !important'
|
|
596
|
-
},
|
|
597
|
-
'& .mq-math-mode span var': {
|
|
598
|
-
fontFamily: 'MJXZERO, MJXTEX-I !important'
|
|
599
|
-
},
|
|
600
|
-
'& .mq-math-mode .mq-nonSymbola': {
|
|
601
|
-
fontFamily: 'MJXZERO, MJXTEX-I !important'
|
|
602
|
-
},
|
|
603
|
-
'& .mq-math-mode > span > var.mq-operator-name': {
|
|
604
|
-
fontFamily: 'MJXZERO, MJXTEX !important'
|
|
605
|
-
},
|
|
606
|
-
'& .mq-math-mode .mq-sqrt-prefix': {
|
|
607
|
-
top: '0 !important'
|
|
608
|
-
},
|
|
609
|
-
'& .mq-math-mode .mq-empty': {
|
|
610
|
-
padding: '9px 1px !important'
|
|
611
|
-
},
|
|
612
|
-
'& .mq-longdiv-inner': {
|
|
613
|
-
marginTop: '-1px',
|
|
614
|
-
marginLeft: '5px !important;',
|
|
615
|
-
'& > .mq-empty': {
|
|
616
|
-
padding: '0 !important',
|
|
617
|
-
marginLeft: '0px !important',
|
|
618
|
-
marginTop: '2px'
|
|
619
|
-
}
|
|
620
|
-
},
|
|
621
|
-
'& .mq-math-mode .mq-longdiv': {
|
|
622
|
-
display: 'inline-flex !important'
|
|
623
|
-
},
|
|
624
|
-
'& .mq-math-mode .mq-supsub': {
|
|
625
|
-
fontSize: '70.7% !important'
|
|
626
|
-
},
|
|
627
|
-
'& .mq-math-mode .mq-sqrt-stem': {
|
|
628
|
-
marginTop: '-5px',
|
|
629
|
-
paddingTop: '4px'
|
|
630
|
-
},
|
|
631
|
-
'& .mq-math-mode .mq-paren': {
|
|
632
|
-
verticalAlign: 'middle !important'
|
|
633
|
-
},
|
|
634
|
-
'& .mq-math-mode .mq-overarrow .mq-overarrow-inner .mq-empty': {
|
|
635
|
-
padding: '0 !important'
|
|
636
|
-
},
|
|
637
|
-
'& .mq-math-mode .mq-overline .mq-overline-inner .mq-empty ': {
|
|
638
|
-
padding: '0 !important'
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
},
|
|
563
|
+
keyboard: commonMqKeyboardStyles,
|
|
642
564
|
language: {
|
|
643
565
|
'& *': {
|
|
644
566
|
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
@@ -650,4 +572,4 @@ var styles = function styles(theme) {
|
|
|
650
572
|
var _default = (0, _styles.withStyles)(styles)(EditorAndPad);
|
|
651
573
|
|
|
652
574
|
exports["default"] = _default;
|
|
653
|
-
//# sourceMappingURL=editor-and-pad.js.map
|
|
575
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3ItYW5kLXBhZC5qc3giXSwibmFtZXMiOlsibXEiLCJDb21tb25NcVN0eWxlcyIsImNvbW1vbk1xRm9udFN0eWxlcyIsImNvbW1vbk1xS2V5Ym9hcmRTdHlsZXMiLCJsb25nZGl2U3R5bGVzIiwic3Vwc3ViU3R5bGVzIiwibG9nIiwiZGVjaW1hbFJlZ2V4IiwidG9Ob2RlRGF0YSIsImRhdGEiLCJ0eXBlIiwidmFsdWUiLCJFZGl0b3JBbmRQYWQiLCJwcm9wcyIsIm5vRGVjaW1hbCIsIm5vTGF0ZXhIYW5kbGluZyIsIm9uQ2hhbmdlIiwiYyIsImlucHV0IiwiY2xlYXIiLCJjb21tYW5kIiwia2V5c3Ryb2tlIiwid3JpdGUiLCJpc0VkaXQiLCJtYXhSZXNwb25zZUFyZWFzIiwic2hvdWxkRGlzYWJsZSIsImNoZWNrUmVzcG9uc2VBcmVhc051bWJlciIsInNldFN0YXRlIiwiYWRkRGlzYWJsZWQiLCJvbkFuc3dlckJsb2NrQWRkIiwib25DbGljayIsInVwZGF0ZURpc2FibGUiLCJsYXRleCIsImluZGV4T2YiLCJyZXBsYWNlIiwicmVnZXhNYXRjaCIsIm1hdGNoIiwibGVuZ3RoIiwibWF0aEZpZWxkIiwiX19jb250cm9sbGVyIiwiY3Vyc29yIiwiaW5zTGVmdE9mIiwicGFyZW50IiwiZWwiLCJkaXNwYXRjaEV2ZW50IiwiS2V5Ym9hcmRFdmVudCIsImtleUNvZGUiLCJlIiwiY29uc29sZSIsImVycm9yIiwidG9TdHJpbmciLCJldnQiLCJlcXVhdGlvbkVkaXRvciIsInRhcmdldCIsImNvdW50Iiwic3RhdGUiLCJhdXRvRm9jdXMiLCJmb2N1cyIsIm5leHRQcm9wcyIsIm5leHRTdGF0ZSIsImlucHV0SXNEaWZmZXJlbnQiLCJrZXlwYWRNb2RlIiwiY29udHJvbGxlZEtleXBhZCIsInNob3dLZXlwYWQiLCJjbGFzc05hbWVzIiwiYWxsb3dBbnN3ZXJCbG9jayIsImFkZGl0aW9uYWxLZXlzIiwiY29udHJvbGxlZEtleXBhZE1vZGUiLCJzZXRLZXlwYWRJbnRlcmFjdGlvbiIsImhpZGVJbnB1dCIsImxheW91dEZvcktleVBhZCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJjbGFzc2VzIiwic2hvdWxkU2hvd0tleXBhZCIsIm1hdGhUb29sYmFyIiwiaW5wdXRBbmRUeXBlQ29udGFpbmVyIiwiaGlkZSIsInNlbGVjdENvbnRhaW5lciIsInNlbGVjdCIsIm9uRWRpdG9yVHlwZUNoYW5nZSIsImlucHV0Q29udGFpbmVyIiwiZXZlbnQiLCJtYXRoRWRpdG9yIiwiZWRpdG9yIiwibG9uZ01hdGhFZGl0b3IiLCJyIiwib25FZGl0b3JDaGFuZ2UiLCJhZGRBbnN3ZXJCbG9ja0J1dHRvbiIsImJvdHRvbSIsIm9uQW5zd2VyQmxvY2tDbGljayIsImhyIiwia2V5Ym9hcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJhcnJheSIsImlzUmVxdWlyZWQiLCJmdW5jIiwic3R5bGVzIiwidGhlbWUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsInRvcCIsInBhZGRpbmdUb3AiLCJmb250RmFtaWx5IiwibWluV2lkdGgiLCJsaW5lSGVpZ2h0IiwibGVmdCIsInBvc2l0aW9uIiwicmlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwicGFkZGluZyIsIm1hcmdpbkxlZnQiLCJwYWRkaW5nTGVmdCIsImJvcmRlclRvcCIsIm1hcmdpblRvcCIsInBhZGRpbmdCb3R0b20iLCJtYXJnaW5Cb3R0b20iLCJmbGV4Iiwid2lkdGgiLCJtYXJnaW5SaWdodCIsIm1heFdpZHRoIiwiY29sb3IiLCJ0ZXh0IiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZCIsImJvcmRlciIsIm1hcmdpbiIsImhlaWdodCIsImJvcmRlckJvdHRvbSIsInBhbGV0dGUiLCJwcmltYXJ5IiwibWFpbiIsInpJbmRleCIsInRleHRBbGlnbiIsIm91dGxpbmUiLCJib3hTaGFkb3ciLCJib3JkZXJSYWRpdXMiLCJtaW5IZWln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LEVBQW1CNUYsWUFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL01lbnVJdGVtJztcbmltcG9ydCBTZWxlY3QgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvU2VsZWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuaW1wb3J0IHsgSG9yaXpvbnRhbEtleXBhZCwgbXEsIHVwZGF0ZVNwYW5zIH0gZnJvbSAnQHBpZS1saWIvbWF0aC1pbnB1dCc7XG5pbXBvcnQgeyBjb2xvciwgSW5wdXRDb250YWluZXIgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuaW1wb3J0IHsgbWFya0ZyYWN0aW9uQmFzZVN1cGVyc2NyaXB0cyB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCB7IGNvbW1vbk1xRm9udFN0eWxlcywgY29tbW9uTXFLZXlib2FyZFN0eWxlcywgbG9uZ2RpdlN0eWxlcywgc3Vwc3ViU3R5bGVzIH0gPSBtcS5Db21tb25NcVN0eWxlcztcbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjptYXRoLXRvb2xiYXI6ZWRpdG9yLWFuZC1wYWQnKTtcblxuY29uc3QgZGVjaW1hbFJlZ2V4ID0gL1xcLnwsL2c7XG5cbmNvbnN0IHRvTm9kZURhdGEgPSAoZGF0YSkgPT4ge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBkYXRhO1xuXG4gIGlmICh0eXBlID09PSAnY29tbWFuZCcgfHwgdHlwZSA9PT0gJ2N1cnNvcicpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnYW5zd2VyJykge1xuICAgIHJldHVybiB7IHR5cGU6ICdhbnN3ZXInLCAuLi5kYXRhIH07XG4gIH0gZWxzZSBpZiAodmFsdWUgPT09ICdjbGVhcicpIHtcbiAgICByZXR1cm4geyB0eXBlOiAnY2xlYXInIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgdHlwZTogJ3dyaXRlJywgdmFsdWUgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNsYXNzIEVkaXRvckFuZFBhZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NOYW1lczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBrZXlwYWRNb2RlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gICAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbGxvd0Fuc3dlckJsb2NrOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93S2V5cGFkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb250cm9sbGVkS2V5cGFkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb250cm9sbGVkS2V5cGFkTW9kZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbm9EZWNpbWFsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBoaWRlSW5wdXQ6IFByb3BUeXBlcy5ib29sLFxuICAgIG5vTGF0ZXhIYW5kbGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgbGF5b3V0Rm9yS2V5UGFkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1heFJlc3BvbnNlQXJlYXM6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgYWRkaXRpb25hbEtleXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBsYXRleDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uQW5zd2VyQmxvY2tBZGQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbjogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0geyBlcXVhdGlvbkVkaXRvcjogJ2l0ZW0tYXV0aG9yaW5nJywgYWRkRGlzYWJsZWQ6IGZhbHNlIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5pbnB1dCAmJiB0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2sgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHsgbm9EZWNpbWFsLCBub0xhdGV4SGFuZGxpbmcsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGMgPSB0b05vZGVEYXRhKGRhdGEpO1xuICAgIGxvZygnbWF0aENoYW5nZTogJywgYyk7XG5cbiAgICBpZiAobm9MYXRleEhhbmRsaW5nKSB7XG4gICAgICBvbkNoYW5nZShjLnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiBkZWNpbWFscyBhcmUgbm90IGFsbG93ZWQgZm9yIHRoaXMgcmVzcG9uc2UsIHdlIGRpc2NhcmQgdGhlIGlucHV0XG4gICAgaWYgKG5vRGVjaW1hbCAmJiAoYy52YWx1ZSA9PT0gJy4nIHx8IGMudmFsdWUgPT09ICcsJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYy50eXBlID09PSAnY2xlYXInKSB7XG4gICAgICBsb2coJ2NhbGwgY2xlYXIuLi4nKTtcbiAgICAgIHRoaXMuaW5wdXQuY2xlYXIoKTtcbiAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2NvbW1hbmQnKSB7XG4gICAgICB0aGlzLmlucHV0LmNvbW1hbmQoYy52YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdjdXJzb3InKSB7XG4gICAgICB0aGlzLmlucHV0LmtleXN0cm9rZShjLnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2Fuc3dlcicpIHtcbiAgICAgIHRoaXMuaW5wdXQud3JpdGUoJyVyZXNwb25zZSUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dC53cml0ZShjLnZhbHVlKTtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlRGlzYWJsZSA9IChpc0VkaXQpID0+IHtcbiAgICBjb25zdCB7IG1heFJlc3BvbnNlQXJlYXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAobWF4UmVzcG9uc2VBcmVhcykge1xuICAgICAgY29uc3Qgc2hvdWxkRGlzYWJsZSA9IHRoaXMuY2hlY2tSZXNwb25zZUFyZWFzTnVtYmVyKG1heFJlc3BvbnNlQXJlYXMsIGlzRWRpdCk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBhZGREaXNhYmxlZDogc2hvdWxkRGlzYWJsZSB9KTtcbiAgICB9XG4gIH07XG5cbiAgb25BbnN3ZXJCbG9ja0NsaWNrID0gKCkgPT4ge1xuICAgIHRoaXMucHJvcHMub25BbnN3ZXJCbG9ja0FkZCgpO1xuICAgIHRoaXMub25DbGljayh7XG4gICAgICB0eXBlOiAnYW5zd2VyJyxcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlRGlzYWJsZSh0cnVlKTtcbiAgfTtcblxuICBvbkVkaXRvckNoYW5nZSA9IChsYXRleCkgPT4ge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UsIG5vRGVjaW1hbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHVwZGF0ZVNwYW5zKCk7XG4gICAgbWFya0ZyYWN0aW9uQmFzZVN1cGVyc2NyaXB0cygpO1xuXG4gICAgdGhpcy51cGRhdGVEaXNhYmxlKHRydWUpO1xuXG4gICAgLy8gaWYgbm8gZGVjaW1hbHMgYXJlIGFsbG93ZWQgYW5kIHRoZSBsYXN0IGNoYW5nZSBpcyBhIGRlY2ltYWwgZG90LCBkaXNjYXJkIHRoZSBjaGFuZ2VcbiAgICBpZiAobm9EZWNpbWFsICYmIChsYXRleC5pbmRleE9mKCcuJykgIT09IC0xIHx8IGxhdGV4LmluZGV4T2YoJywnKSAhPT0gLTEpICYmIHRoaXMuaW5wdXQpIHtcbiAgICAgIHRoaXMuaW5wdXQuY2xlYXIoKTtcbiAgICAgIHRoaXMuaW5wdXQud3JpdGUobGF0ZXgucmVwbGFjZShkZWNpbWFsUmVnZXgsICcnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgY29uc3QgcmVnZXhNYXRjaCA9IGxhdGV4Lm1hdGNoKC9bMC05XVxcXFwgXFxcXGZyYWNcXHtbXlxce10qXFx9XFx7IFxcfS8pO1xuXG4gICAgaWYgKHRoaXMuaW5wdXQgJiYgcmVnZXhNYXRjaCAmJiByZWdleE1hdGNoPy5sZW5ndGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuaW5wdXQubWF0aEZpZWxkLl9fY29udHJvbGxlci5jdXJzb3IuaW5zTGVmdE9mKHRoaXMuaW5wdXQubWF0aEZpZWxkLl9fY29udHJvbGxlci5jdXJzb3IucGFyZW50Wy0xXS5wYXJlbnQpO1xuICAgICAgICB0aGlzLmlucHV0Lm1hdGhGaWVsZC5lbCgpLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7IGtleUNvZGU6IDggfSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKGUudG9TdHJpbmcoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkNoYW5nZShsYXRleCk7XG4gIH07XG5cbiAgLyoqIE9ubHkgcmVuZGVyIGlmIHRoZSBtYXRocXVpbGwgaW5zdGFuY2UncyBsYXRleCBpcyBkaWZmZXJlbnRcbiAgICogb3IgdGhlIGtleXBhZCBzdGF0ZSBjaGFuZ2VkIGZyb20gb25lIHN0YXRlIHRvIHRoZSBvdGhlciAoc2hvd24gLyBoaWRkZW4pICovXG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIGNvbnN0IGlucHV0SXNEaWZmZXJlbnQgPSB0aGlzLmlucHV0Lm1hdGhGaWVsZC5sYXRleCgpICE9PSBuZXh0UHJvcHMubGF0ZXg7XG4gICAgbG9nKCdbc2hvdWxkQ29tcG9uZW50VXBkYXRlXSAnLCAnaW5wdXRJc0RpZmZlcmVudDogJywgaW5wdXRJc0RpZmZlcmVudCk7XG5cbiAgICBpZiAoIWlzRXF1YWwodGhpcy5wcm9wcy5lcnJvciwgbmV4dFByb3BzLmVycm9yKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dElzRGlmZmVyZW50ICYmIHRoaXMucHJvcHMua2V5cGFkTW9kZSAhPT0gbmV4dFByb3BzLmtleXBhZE1vZGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICghaW5wdXRJc0RpZmZlcmVudCAmJiB0aGlzLnByb3BzLm5vRGVjaW1hbCAhPT0gbmV4dFByb3BzLm5vRGVjaW1hbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dElzRGlmZmVyZW50ICYmIHRoaXMuc3RhdGUuZXF1YXRpb25FZGl0b3IgIT09IG5leHRTdGF0ZS5lcXVhdGlvbkVkaXRvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dElzRGlmZmVyZW50ICYmIHRoaXMucHJvcHMuY29udHJvbGxlZEtleXBhZCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuc2hvd0tleXBhZCAhPT0gbmV4dFByb3BzLnNob3dLZXlwYWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0SXNEaWZmZXJlbnQ7XG4gIH1cblxuICBvbkVkaXRvclR5cGVDaGFuZ2UgPSAoZXZ0KSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGVxdWF0aW9uRWRpdG9yOiBldnQudGFyZ2V0LnZhbHVlIH0pO1xuICB9O1xuXG4gIGNoZWNrUmVzcG9uc2VBcmVhc051bWJlciA9IChtYXhSZXNwb25zZUFyZWFzLCBpc0VkaXQpID0+IHtcbiAgICBjb25zdCB7IGxhdGV4IH0gPSAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LnByb3BzKSB8fCB7fTtcblxuICAgIGlmIChsYXRleCkge1xuICAgICAgY29uc3QgY291bnQgPSAobGF0ZXgubWF0Y2goL2Fuc3dlckJsb2NrL2cpIHx8IFtdKS5sZW5ndGg7XG5cbiAgICAgIHJldHVybiBpc0VkaXQgPyBjb3VudCA9PT0gbWF4UmVzcG9uc2VBcmVhcyAtIDEgOiBjb3VudCA9PT0gbWF4UmVzcG9uc2VBcmVhcztcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzTmFtZXMsXG4gICAgICBrZXlwYWRNb2RlLFxuICAgICAgYWxsb3dBbnN3ZXJCbG9jayxcbiAgICAgIGFkZGl0aW9uYWxLZXlzLFxuICAgICAgY29udHJvbGxlZEtleXBhZCxcbiAgICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlLFxuICAgICAgc2hvd0tleXBhZCxcbiAgICAgIHNldEtleXBhZEludGVyYWN0aW9uLFxuICAgICAgbm9EZWNpbWFsLFxuICAgICAgaGlkZUlucHV0LFxuICAgICAgbGF5b3V0Rm9yS2V5UGFkLFxuICAgICAgbGF0ZXgsXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIGVycm9yLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHNob3VsZFNob3dLZXlwYWQgPSAhY29udHJvbGxlZEtleXBhZCB8fCAoY29udHJvbGxlZEtleXBhZCAmJiBzaG93S2V5cGFkKTtcbiAgICBjb25zdCB7IGFkZERpc2FibGVkIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbG9nKCdbcmVuZGVyXScsIGxhdGV4KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5tYXRoVG9vbGJhciwgY2xhc3NOYW1lcy5tYXRoVG9vbGJhcil9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbnB1dEFuZFR5cGVDb250YWluZXIsIHsgW2NsYXNzZXMuaGlkZV06IGhpZGVJbnB1dCB9KX0+XG4gICAgICAgICAge2NvbnRyb2xsZWRLZXlwYWRNb2RlICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD1cIkVxdWF0aW9uIEVkaXRvclwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5zZWxlY3RDb250YWluZXJ9PlxuICAgICAgICAgICAgICA8U2VsZWN0IGNsYXNzTmFtZT17Y2xhc3Nlcy5zZWxlY3R9IG9uQ2hhbmdlPXt0aGlzLm9uRWRpdG9yVHlwZUNoYW5nZX0gdmFsdWU9e3RoaXMuc3RhdGUuZXF1YXRpb25FZGl0b3J9PlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT1cIm5vbi1uZWdhdGl2ZS1pbnRlZ2Vyc1wiPk51bWVyaWMgLSBOb24tTmVnYXRpdmUgSW50ZWdlcnM8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT1cImludGVnZXJzXCI+TnVtZXJpYyAtIEludGVnZXJzPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9XCJkZWNpbWFsc1wiPk51bWVyaWMgLSBEZWNpbWFsczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPVwiZnJhY3Rpb25zXCI+TnVtZXJpYyAtIEZyYWN0aW9uczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXsxfT5HcmFkZSAxIC0gMjwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXszfT5HcmFkZSAzIC0gNTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXs2fT5HcmFkZSA2IC0gNzwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXs4fT5HcmFkZSA4IC0gSFM8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2dlb21ldHJ5J30+R2VvbWV0cnk8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2FkdmFuY2VkLWFsZ2VicmEnfT5BZHZhbmNlZCBBbGdlYnJhPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9eydzdGF0aXN0aWNzJ30+U3RhdGlzdGljczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXsnaXRlbS1hdXRob3JpbmcnfT5JdGVtIEF1dGhvcmluZzwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjeChjbGFzc2VzLmlucHV0Q29udGFpbmVyLCBlcnJvciA/IGNsYXNzZXMuZXJyb3IgOiAnJyl9PlxuICAgICAgICAgICAgPG1xLklucHV0XG4gICAgICAgICAgICAgIG9uRm9jdXM9eygpID0+IHtcbiAgICAgICAgICAgICAgICBvbkZvY3VzICYmIG9uRm9jdXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZURpc2FibGUoZmFsc2UpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkJsdXI9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzYWJsZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgb25CbHVyICYmIG9uQmx1cihldmVudCk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5tYXRoRWRpdG9yLCBjbGFzc05hbWVzLmVkaXRvciwgIWNvbnRyb2xsZWRLZXlwYWRNb2RlID8gY2xhc3Nlcy5sb25nTWF0aEVkaXRvciA6ICcnKX1cbiAgICAgICAgICAgICAgaW5uZXJSZWY9eyhyKSA9PiAodGhpcy5pbnB1dCA9IHIpfVxuICAgICAgICAgICAgICBsYXRleD17bGF0ZXh9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uRWRpdG9yQ2hhbmdlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHthbGxvd0Fuc3dlckJsb2NrICYmIChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYWRkQW5zd2VyQmxvY2tCdXR0b259XG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBzdHlsZT17eyBib3R0b206IHNob3VsZFNob3dLZXlwYWQgPyAnMzIwcHgnIDogJzIwcHgnIH19XG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uQW5zd2VyQmxvY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVkPXthZGREaXNhYmxlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICArIFJlc3BvbnNlIEFyZWFcbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAgPGhyIGNsYXNzTmFtZT17Y2xhc3Nlcy5ocn0gLz5cbiAgICAgICAge3Nob3VsZFNob3dLZXlwYWQgJiYgKFxuICAgICAgICAgIDxIb3Jpem9udGFsS2V5cGFkXG4gICAgICAgICAgICBjbGFzc05hbWU9e2N4KGNsYXNzZXNba2V5cGFkTW9kZV0sIGNsYXNzZXMua2V5Ym9hcmQpfVxuICAgICAgICAgICAgY29udHJvbGxlZEtleXBhZE1vZGU9e2NvbnRyb2xsZWRLZXlwYWRNb2RlfVxuICAgICAgICAgICAgbGF5b3V0Rm9yS2V5UGFkPXtsYXlvdXRGb3JLZXlQYWR9XG4gICAgICAgICAgICBhZGRpdGlvbmFsS2V5cz17YWRkaXRpb25hbEtleXN9XG4gICAgICAgICAgICBtb2RlPXtjb250cm9sbGVkS2V5cGFkTW9kZSA/IHRoaXMuc3RhdGUuZXF1YXRpb25FZGl0b3IgOiBrZXlwYWRNb2RlfVxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkNsaWNrfVxuICAgICAgICAgICAgbm9EZWNpbWFsPXtub0RlY2ltYWx9XG4gICAgICAgICAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbj17c2V0S2V5cGFkSW50ZXJhY3Rpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBpbnB1dEFuZFR5cGVDb250YWluZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgJyYgLm1xLWVkaXRhYmxlLWZpZWxkIC5tcS1jdXJzb3InOiB7XG4gICAgICB0b3A6ICctNHB4JyxcbiAgICB9LFxuICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXNlbGVjdGlvbiwgLm1xLWVkaXRhYmxlLWZpZWxkIC5tcS1zZWxlY3Rpb24nOiB7XG4gICAgICBwYWRkaW5nVG9wOiAnMThweCcsXG4gICAgfSxcbiAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1vdmVyYXJyb3cnOiB7XG4gICAgICBmb250RmFtaWx5OiAnUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtb3ZlcmxpbmUgLm1xLW92ZXJsaW5lLWlubmVyJzoge1xuICAgICAgcGFkZGluZ1RvcDogJzAuNGVtICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy5tcS1hcnJvdy1ib3RoJzoge1xuICAgICAgbWluV2lkdGg6ICcxLjIzZW0nLFxuICAgICAgJyYgKic6IHtcbiAgICAgICAgbGluZUhlaWdodDogJzEgIWltcG9ydGFudCcsXG4gICAgICB9LFxuICAgICAgJyY6YmVmb3JlJzoge1xuICAgICAgICB0b3A6ICctMC40NWVtJyxcbiAgICAgICAgbGVmdDogJy0xcHgnLFxuICAgICAgfSxcbiAgICAgICcmOmFmdGVyJzoge1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlICFpbXBvcnRhbnQnLFxuICAgICAgICB0b3A6ICcwcHggIWltcG9ydGFudCcsXG4gICAgICAgIHJpZ2h0OiAnLTJweCcsXG4gICAgICB9LFxuICAgICAgJyYubXEtZW1wdHk6YWZ0ZXInOiB7XG4gICAgICAgIHRvcDogJy0wLjQ1ZW0nLFxuICAgICAgfSxcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3cubXEtYXJyb3ctcmlnaHQnOiB7XG4gICAgICAnJjpiZWZvcmUnOiB7XG4gICAgICAgIHRvcDogJy0wLjRlbScsXG4gICAgICAgIHJpZ2h0OiAnLTFweCcsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAnJiAqJzoge1xuICAgICAgLi4uY29tbW9uTXFGb250U3R5bGVzLFxuICAgICAgLi4uc3Vwc3ViU3R5bGVzLFxuICAgICAgLi4ubG9uZ2RpdlN0eWxlcyxcbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXNxcnQtcHJlZml4Jzoge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUgIWltcG9ydGFudCcsXG4gICAgICAgIHRvcDogJzFweCAhaW1wb3J0YW50JyxcbiAgICAgICAgbGVmdDogJy0wLjFlbSAhaW1wb3J0YW50JyxcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLW92ZXJhcmMgJzoge1xuICAgICAgICBwYWRkaW5nVG9wOiAnMC40NWVtICFpbXBvcnRhbnQnLFxuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtZW1wdHknOiB7XG4gICAgICAgIHBhZGRpbmc6ICc5cHggMXB4ICFpbXBvcnRhbnQnLFxuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtcm9vdC1ibG9jayc6IHtcbiAgICAgICAgcGFkZGluZ1RvcDogJzEwcHgnLFxuICAgICAgfSxcblxuICAgICAgJyYgLm1xLXNjYWxlZCAubXEtc3FydC1wcmVmaXgnOiB7XG4gICAgICAgIHRvcDogJzAgIWltcG9ydGFudCcsXG4gICAgICB9LFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1sb25nZGl2IC5tcS1sb25nZGl2LWlubmVyJzoge1xuICAgICAgICBtYXJnaW5MZWZ0OiAnNHB4ICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nVG9wOiAnNnB4ICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nTGVmdDogJzZweCAhaW1wb3J0YW50JyxcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXBhcmVuJzoge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAndG9wICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nOiAnMXB4IDAuMWVtICFpbXBvcnRhbnQnLFxuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtc3FydC1zdGVtJzoge1xuICAgICAgICBib3JkZXJUb3A6ICcwLjA3ZW0gc29saWQnLFxuICAgICAgICBtYXJnaW5MZWZ0OiAnLTEuNXB4JyxcbiAgICAgICAgbWFyZ2luVG9wOiAnLTJweCAhaW1wb3J0YW50JyxcbiAgICAgICAgcGFkZGluZ1RvcDogJzVweCAhaW1wb3J0YW50JyxcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLWRlbm9taW5hdG9yJzoge1xuICAgICAgICBtYXJnaW5Ub3A6ICctNXB4ICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nOiAnMC41ZW0gMC4xZW0gMC4xZW0gIWltcG9ydGFudCcsXG4gICAgICB9LFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1udW1lcmF0b3IsIC5tcS1tYXRoLW1vZGUgLm1xLW92ZXInOiB7XG4gICAgICAgIHBhZGRpbmc6ICcwIDAuMWVtICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nQm90dG9tOiAnMCAhaW1wb3J0YW50JyxcbiAgICAgICAgbWFyZ2luQm90dG9tOiAnLTJweCcsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAnJiBzcGFuW2RhdGEtcHJpbWU9XCJ0cnVlXCJdJzoge1xuICAgICAgZm9udEZhbWlseTogJ1JvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50JyxcbiAgICB9LFxuICB9LFxuICBoaWRlOiB7XG4gICAgZGlzcGxheTogJ25vbmUnLFxuICB9LFxuICBzZWxlY3RDb250YWluZXI6IHtcbiAgICBmbGV4OiAnaW5pdGlhbCcsXG4gICAgd2lkdGg6ICcyNSUnLFxuICAgIG1pbldpZHRoOiAnMTAwcHgnLFxuICAgIG1hcmdpbkxlZnQ6ICcxNXB4JyxcbiAgICBtYXJnaW5Ub3A6ICc1cHgnLFxuICAgIG1hcmdpbkJvdHRvbTogJzVweCcsXG4gICAgbWFyZ2luUmlnaHQ6ICc1cHgnLFxuXG4gICAgJyYgbGFiZWwnOiB7XG4gICAgICBmb250RmFtaWx5OiAnUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQnLFxuICAgIH0sXG5cbiAgICAnJiBkaXYnOiB7XG4gICAgICBmb250RmFtaWx5OiAnUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gIH0sXG4gIG1hdGhFZGl0b3I6IHtcbiAgICBtYXhXaWR0aDogJzQwMHB4JyxcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgIHBhZGRpbmc6ICcycHgnLFxuICB9LFxuICBsb25nTWF0aEVkaXRvcjoge1xuICAgIG1heFdpZHRoOiAnNTAwcHgnLFxuICB9LFxuICBhZGRBbnN3ZXJCbG9ja0J1dHRvbjoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHJpZ2h0OiAnMTJweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkIGxpZ2h0Z3JleScsXG4gIH0sXG4gIGhyOiB7XG4gICAgcGFkZGluZzogMCxcbiAgICBtYXJnaW46IDAsXG4gICAgaGVpZ2h0OiAnMXB4JyxcbiAgICBib3JkZXI6ICdub25lJyxcbiAgICBib3JkZXJCb3R0b206IGBzb2xpZCAxcHggJHt0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbn1gLFxuICB9LFxuICBtYXRoVG9vbGJhcjoge1xuICAgIHpJbmRleDogOSxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIHdpZHRoOiAnYXV0bycsXG4gICAgJyYgPiAubXEtbWF0aC1tb2RlJzoge1xuICAgICAgYm9yZGVyOiAnc29saWQgMXB4IGxpZ2h0Z3JleScsXG4gICAgfSxcbiAgICAnJiA+IC5tcS1mb2N1c2VkJzoge1xuICAgICAgb3V0bGluZTogJ25vbmUnLFxuICAgICAgYm94U2hhZG93OiAnbm9uZScsXG4gICAgICBib3JkZXI6IGBkb3R0ZWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgICAgIGJvcmRlclJhZGl1czogJzBweCcsXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93LWlubmVyJzoge1xuICAgICAgYm9yZGVyOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAgIHBhZGRpbmdUb3A6ICcwICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy1pbm5lci1yaWdodCc6IHtcbiAgICAgIGRpc3BsYXk6ICdub25lICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy1pbm5lci1sZWZ0Jzoge1xuICAgICAgZGlzcGxheTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJiAubXEtbG9uZ2Rpdi1pbm5lcic6IHtcbiAgICAgIGJvcmRlclRvcDogJzFweCBzb2xpZCAhaW1wb3J0YW50JyxcbiAgICAgIHBhZGRpbmdUb3A6ICcxLjVweCAhaW1wb3J0YW50JyxcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3cubXEtYXJyb3ctYm90aCc6IHtcbiAgICAgIHRvcDogJzcuOHB4JyxcbiAgICAgIG1hcmdpblRvcDogJzBweCcsXG4gICAgICBtaW5XaWR0aDogJzEuMjNlbScsXG4gICAgfSxcbiAgICAnJiAubXEtcGFyYWxsZWxvZ3JhbSc6IHtcbiAgICAgIGxpbmVIZWlnaHQ6IDAuODUsXG4gICAgfSxcbiAgfSxcbiAgaW5wdXRDb250YWluZXI6IHtcbiAgICBtaW5XaWR0aDogJzUwMHB4JyxcbiAgICBtYXhXaWR0aDogJzkwMHB4JyxcbiAgICBtaW5IZWlnaHQ6ICczMHB4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCxcblxuICAgICcmIC5tcS1zcXJ0LXByZWZpeCAubXEtc2NhbGVkJzoge1xuICAgICAgdmVydGljYWxBbGlnbjogJ21pZGRsZSAhaW1wb3J0YW50JyxcbiAgICB9LFxuICB9LFxuICBlcnJvcjoge1xuICAgIGJvcmRlcjogJzJweCBzb2xpZCByZWQnLFxuICB9LFxuICBrZXlib2FyZDogY29tbW9uTXFLZXlib2FyZFN0eWxlcyxcbiAgbGFuZ3VhZ2U6IHtcbiAgICAnJiAqJzoge1xuICAgICAgZm9udEZhbWlseTogJ1JvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50JyxcbiAgICB9LFxuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShFZGl0b3JBbmRQYWQpO1xuIl19
|
package/lib/index.js
CHANGED
|
@@ -97,6 +97,8 @@ var MathToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
97
97
|
onBlur = _this$props.onBlur,
|
|
98
98
|
hideDoneButton = _this$props.hideDoneButton,
|
|
99
99
|
error = _this$props.error,
|
|
100
|
+
keyPadCharacterRef = _this$props.keyPadCharacterRef,
|
|
101
|
+
setKeypadInteraction = _this$props.setKeypadInteraction,
|
|
100
102
|
maxResponseAreas = _this$props.maxResponseAreas;
|
|
101
103
|
return /*#__PURE__*/_react["default"].createElement(PureToolbar, {
|
|
102
104
|
autoFocus: autoFocus,
|
|
@@ -107,6 +109,8 @@ var MathToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
107
109
|
additionalKeys: additionalKeys,
|
|
108
110
|
noDecimal: noDecimal,
|
|
109
111
|
keypadMode: keypadMode,
|
|
112
|
+
keyPadCharacterRef: keyPadCharacterRef,
|
|
113
|
+
setKeypadInteraction: setKeypadInteraction,
|
|
110
114
|
onChange: this.onChange,
|
|
111
115
|
onDone: this.done,
|
|
112
116
|
onFocus: onFocus,
|
|
@@ -142,7 +146,9 @@ exports.MathToolbar = MathToolbar;
|
|
|
142
146
|
onDone: _propTypes["default"].func.isRequired,
|
|
143
147
|
onFocus: _propTypes["default"].func,
|
|
144
148
|
onBlur: _propTypes["default"].func,
|
|
145
|
-
hideDoneButton: _propTypes["default"].bool
|
|
149
|
+
hideDoneButton: _propTypes["default"].bool,
|
|
150
|
+
keyPadCharacterRef: _propTypes["default"].func,
|
|
151
|
+
setKeypadInteraction: _propTypes["default"].func
|
|
146
152
|
});
|
|
147
153
|
(0, _defineProperty2["default"])(MathToolbar, "defaultProps", {
|
|
148
154
|
classNames: {},
|
|
@@ -187,6 +193,8 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
|
|
|
187
193
|
hideInput = _this$props2.hideInput,
|
|
188
194
|
noLatexHandling = _this$props2.noLatexHandling,
|
|
189
195
|
layoutForKeyPad = _this$props2.layoutForKeyPad,
|
|
196
|
+
keyPadCharacterRef = _this$props2.keyPadCharacterRef,
|
|
197
|
+
setKeypadInteraction = _this$props2.setKeypadInteraction,
|
|
190
198
|
latex = _this$props2.latex,
|
|
191
199
|
onChange = _this$props2.onChange,
|
|
192
200
|
onDone = _this$props2.onDone,
|
|
@@ -199,7 +207,7 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
|
|
|
199
207
|
maxResponseAreas = _this$props2.maxResponseAreas;
|
|
200
208
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
201
209
|
className: (0, _classnames["default"])(classes.pureToolbar, (classNames || {}).toolbar),
|
|
202
|
-
|
|
210
|
+
ref: keyPadCharacterRef
|
|
203
211
|
}, /*#__PURE__*/_react["default"].createElement("div", null), /*#__PURE__*/_react["default"].createElement(_editorAndPad["default"], {
|
|
204
212
|
autoFocus: autoFocus,
|
|
205
213
|
keypadMode: keypadMode,
|
|
@@ -219,7 +227,8 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
|
|
|
219
227
|
onFocus: onFocus,
|
|
220
228
|
onBlur: onBlur,
|
|
221
229
|
error: error,
|
|
222
|
-
maxResponseAreas: maxResponseAreas
|
|
230
|
+
maxResponseAreas: maxResponseAreas,
|
|
231
|
+
setKeypadInteraction: setKeypadInteraction
|
|
223
232
|
}), (!controlledKeypad || controlledKeypad && showKeypad) && !hideDoneButton && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
|
|
224
233
|
hideBackground: hideDoneButtonBackground,
|
|
225
234
|
onClick: onDone
|
|
@@ -232,7 +241,7 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
|
|
|
232
241
|
exports.RawPureToolbar = RawPureToolbar;
|
|
233
242
|
(0, _defineProperty2["default"])(RawPureToolbar, "propTypes", {
|
|
234
243
|
classNames: _propTypes["default"].object,
|
|
235
|
-
latex: _propTypes["default"].string,
|
|
244
|
+
latex: _propTypes["default"].string.isRequired,
|
|
236
245
|
keypadMode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
237
246
|
hideInput: _propTypes["default"].bool,
|
|
238
247
|
noLatexHandling: _propTypes["default"].bool,
|
|
@@ -253,7 +262,9 @@ exports.RawPureToolbar = RawPureToolbar;
|
|
|
253
262
|
hideDoneButton: _propTypes["default"].bool,
|
|
254
263
|
hideDoneButtonBackground: _propTypes["default"].bool,
|
|
255
264
|
error: _propTypes["default"].any,
|
|
256
|
-
maxResponseAreas: _propTypes["default"].number
|
|
265
|
+
maxResponseAreas: _propTypes["default"].number,
|
|
266
|
+
keyPadCharacterRef: _propTypes["default"].object,
|
|
267
|
+
setKeypadInteraction: _propTypes["default"].func
|
|
257
268
|
});
|
|
258
269
|
(0, _defineProperty2["default"])(RawPureToolbar, "defaultProps", {
|
|
259
270
|
classNames: {},
|
|
@@ -273,4 +284,4 @@ var styles = function styles() {
|
|
|
273
284
|
|
|
274
285
|
var PureToolbar = (0, _styles.withStyles)(styles)(RawPureToolbar);
|
|
275
286
|
exports.PureToolbar = PureToolbar;
|
|
276
|
-
//# sourceMappingURL=index.js.map
|
|
287
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwibmFtZXMiOlsiTWF0aFRvb2xiYXIiLCJwcm9wcyIsIm9uRG9uZSIsInN0YXRlIiwibGF0ZXgiLCJzZXRTdGF0ZSIsIm9uQ2hhbmdlIiwibmV4dFByb3BzIiwiY2xhc3NOYW1lcyIsImF1dG9Gb2N1cyIsImFsbG93QW5zd2VyQmxvY2siLCJvbkFuc3dlckJsb2NrQWRkIiwiY29udHJvbGxlZEtleXBhZCIsImNvbnRyb2xsZWRLZXlwYWRNb2RlIiwia2V5cGFkTW9kZSIsIm5vRGVjaW1hbCIsImFkZGl0aW9uYWxLZXlzIiwic2hvd0tleXBhZCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJoaWRlRG9uZUJ1dHRvbiIsImVycm9yIiwia2V5UGFkQ2hhcmFjdGVyUmVmIiwic2V0S2V5cGFkSW50ZXJhY3Rpb24iLCJtYXhSZXNwb25zZUFyZWFzIiwiZG9uZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiYm9vbCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsIm9iamVjdCIsImFycmF5IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJSYXdQdXJlVG9vbGJhciIsImhpZGVJbnB1dCIsIm5vTGF0ZXhIYW5kbGluZyIsImxheW91dEZvcktleVBhZCIsImhpZGVEb25lQnV0dG9uQmFja2dyb3VuZCIsImNsYXNzZXMiLCJwdXJlVG9vbGJhciIsInRvb2xiYXIiLCJhbnkiLCJzdHlsZXMiLCJkaXNwbGF5Iiwid2lkdGgiLCJ6SW5kZXgiLCJhbGlnbkl0ZW1zIiwiUHVyZVRvb2xiYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztJQUlhQSxXOzs7OztBQXdDWCx1QkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBO0FBQ2pCLDhCQUFNQSxLQUFOO0FBRGlCLDZGQU9aLFlBQU07QUFDWCxZQUFLQSxLQUFMLENBQVdD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VUMsSUFuQkw7QUFvQmpCVCxFQUFBQSxjQUFjLEVBQUVRLHNCQUFVQyxJQXBCVDtBQXFCakJZLEVBQUFBLHdCQUF3QixFQUFFYixzQkFBVUMsSUFyQm5CO0FBc0JqQlIsRUFBQUEsS0FBSyxFQUFFTyxzQkFBVWlCLEdBdEJBO0FBdUJqQnJCLEVBQUFBLGdCQUFnQixFQUFFSSxzQkFBVUksTUF2Qlg7QUF3QmpCVixFQUFBQSxrQkFBa0IsRUFBRU0sc0JBQVVLLE1BeEJiO0FBeUJqQlYsRUFBQUEsb0JBQW9CLEVBQUVLLHNCQUFVUTtBQXpCZixDO2lDQURSQyxjLGtCQTZCVztBQUNwQjdCLEVBQUFBLFVBQVUsRUFBRSxFQURRO0FBRXBCaUMsRUFBQUEsd0JBQXdCLEVBQUU7QUFGTixDOztBQWtFeEIsSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQVM7QUFBQSxTQUFPO0FBQ3BCSCxJQUFBQSxXQUFXLEVBQUU7QUFDWEksTUFBQUEsT0FBTyxFQUFFLE1BREU7QUFFWEMsTUFBQUEsS0FBSyxFQUFFLE1BRkk7QUFHWEMsTUFBQUEsTUFBTSxFQUFFLENBSEc7QUFJWEMsTUFBQUEsVUFBVSxFQUFFO0FBSkQ7QUFETyxHQUFQO0FBQUEsQ0FBZjs7QUFTTyxJQUFNQyxXQUFXLEdBQUcsd0JBQVdMLE1BQVgsRUFBbUJULGNBQW5CLENBQXBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgRWRpdG9yQW5kUGFkIGZyb20gJy4vZWRpdG9yLWFuZC1wYWQnO1xuaW1wb3J0IHsgRG9uZUJ1dHRvbiB9IGZyb20gJy4vZG9uZS1idXR0b24nO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgTWF0aFByZXZpZXcgZnJvbSAnLi9tYXRoLXByZXZpZXcnO1xuXG5leHBvcnQgeyBNYXRoUHJldmlldyB9O1xuXG5leHBvcnQgY2xhc3MgTWF0aFRvb2xiYXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGF1dG9Gb2N1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxsb3dBbnN3ZXJCbG9jazogUHJvcFR5cGVzLmJvb2wsXG4gICAgY29udHJvbGxlZEtleXBhZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY29udHJvbGxlZEtleXBhZE1vZGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGtleXBhZE1vZGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgICBjbGFzc05hbWVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGVycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1heFJlc3BvbnNlQXJlYXM6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgc2hvd0tleXBhZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgbm9EZWNpbWFsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhZGRpdGlvbmFsS2V5czogUHJvcFR5cGVzLmFycmF5LFxuICAgIGxhdGV4OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb25BbnN3ZXJCbG9ja0FkZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRG9uZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkJsdXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIGhpZGVEb25lQnV0dG9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBrZXlQYWRDaGFyYWN0ZXJSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNldEtleXBhZEludGVyYWN0aW9uOiBQcm9wVHlwZXMuZnVuYyxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGNsYXNzTmFtZXM6IHt9LFxuICAgIGtleXBhZE1vZGU6ICdpdGVtLWF1dGhvcmluZycsXG4gICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICBhbGxvd0Fuc3dlckJsb2NrOiBmYWxzZSxcbiAgICBjb250cm9sbGVkS2V5cGFkOiBmYWxzZSxcbiAgICBjb250cm9sbGVkS2V5cGFkTW9kZTogZmFsc2UsXG4gICAgbm9EZWNpbWFsOiBmYWxzZSxcbiAgICBzaG93S2V5cGFkOiB0cnVlLFxuICAgIGFkZGl0aW9uYWxLZXlzOiBbXSxcbiAgICBvbkNoYW5nZTogKCkgPT4ge30sXG4gICAgb25BbnN3ZXJCbG9ja0FkZDogKCkgPT4ge30sXG4gICAgb25Gb2N1czogKCkgPT4ge30sXG4gICAgaGlkZURvbmVCdXR0b246IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBsYXRleDogcHJvcHMubGF0ZXgsXG4gICAgfTtcbiAgfVxuXG4gIGRvbmUgPSAoKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5vbkRvbmUodGhpcy5zdGF0ZS5sYXRleCk7XG4gIH07XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxhdGV4OiBuZXh0UHJvcHMubGF0ZXggfSk7XG4gIH1cblxuICBvbkNoYW5nZSA9IChsYXRleCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsYXRleCB9KTtcbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGxhdGV4KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBsYXRleCB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7XG4gICAgICBjbGFzc05hbWVzLFxuICAgICAgYXV0b0ZvY3VzLFxuICAgICAgYWxsb3dBbnN3ZXJCbG9jayxcbiAgICAgIG9uQW5zd2VyQmxvY2tBZGQsXG4gICAgICBjb250cm9sbGVkS2V5cGFkLFxuICAgICAgY29udHJvbGxlZEtleXBhZE1vZGUsXG4gICAgICBrZXlwYWRNb2RlLFxuICAgICAgbm9EZWNpbWFsLFxuICAgICAgYWRkaXRpb25hbEtleXMsXG4gICAgICBzaG93S2V5cGFkLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIGhpZGVEb25lQnV0dG9uLFxuICAgICAgZXJyb3IsXG4gICAgICBrZXlQYWRDaGFyYWN0ZXJSZWYsXG4gICAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbixcbiAgICAgIG1heFJlc3BvbnNlQXJlYXMsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFB1cmVUb29sYmFyXG4gICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICBjbGFzc05hbWVzPXtjbGFzc05hbWVzfVxuICAgICAgICBvbkFuc3dlckJsb2NrQWRkPXtvbkFuc3dlckJsb2NrQWRkfVxuICAgICAgICBhbGxvd0Fuc3dlckJsb2NrPXthbGxvd0Fuc3dlckJsb2NrfVxuICAgICAgICBsYXRleD17bGF0ZXh9XG4gICAgICAgIGFkZGl0aW9uYWxLZXlzPXthZGRpdGlvbmFsS2V5c31cbiAgICAgICAgbm9EZWNpbWFsPXtub0RlY2ltYWx9XG4gICAgICAgIGtleXBhZE1vZGU9e2tleXBhZE1vZGV9XG4gICAgICAgIGtleVBhZENoYXJhY3RlclJlZj17a2V5UGFkQ2hhcmFjdGVyUmVmfVxuICAgICAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbj17c2V0S2V5cGFkSW50ZXJhY3Rpb259XG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICBvbkRvbmU9e3RoaXMuZG9uZX1cbiAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgIHNob3dLZXlwYWQ9e3Nob3dLZXlwYWR9XG4gICAgICAgIGNvbnRyb2xsZWRLZXlwYWQ9e2NvbnRyb2xsZWRLZXlwYWR9XG4gICAgICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlPXtjb250cm9sbGVkS2V5cGFkTW9kZX1cbiAgICAgICAgaGlkZURvbmVCdXR0b249e2hpZGVEb25lQnV0dG9ufVxuICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgIG1heFJlc3BvbnNlQXJlYXM9e21heFJlc3BvbnNlQXJlYXN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJhd1B1cmVUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc05hbWVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxhdGV4OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAga2V5cGFkTW9kZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICAgIGhpZGVJbnB1dDogUHJvcFR5cGVzLmJvb2wsXG4gICAgbm9MYXRleEhhbmRsaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBsYXlvdXRGb3JLZXlQYWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25Eb25lOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25BbnN3ZXJCbG9ja0FkZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYWRkaXRpb25hbEtleXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBub0RlY2ltYWw6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93QW5zd2VyQmxvY2s6IFByb3BUeXBlcy5ib29sLFxuICAgIGNvbnRyb2xsZWRLZXlwYWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93S2V5cGFkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBoaWRlRG9uZUJ1dHRvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGlkZURvbmVCdXR0b25CYWNrZ3JvdW5kOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBlcnJvcjogUHJvcFR5cGVzLmFueSxcbiAgICBtYXhSZXNwb25zZUFyZWFzOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGtleVBhZENoYXJhY3RlclJlZjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbjogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc05hbWVzOiB7fSxcbiAgICBoaWRlRG9uZUJ1dHRvbkJhY2tncm91bmQ6IGZhbHNlLFxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjbGFzc05hbWVzLFxuICAgICAgYXV0b0ZvY3VzLFxuICAgICAgYWxsb3dBbnN3ZXJCbG9jayxcbiAgICAgIG9uQW5zd2VyQmxvY2tBZGQsXG4gICAgICBjb250cm9sbGVkS2V5cGFkLFxuICAgICAgY29udHJvbGxlZEtleXBhZE1vZGUsXG4gICAgICBhZGRpdGlvbmFsS2V5cyxcbiAgICAgIHNob3dLZXlwYWQsXG4gICAgICBrZXlwYWRNb2RlLFxuICAgICAgbm9EZWNpbWFsLFxuICAgICAgaGlkZUlucHV0LFxuICAgICAgbm9MYXRleEhhbmRsaW5nLFxuICAgICAgbGF5b3V0Rm9yS2V5UGFkLFxuICAgICAga2V5UGFkQ2hhcmFjdGVyUmVmLFxuICAgICAgc2V0S2V5cGFkSW50ZXJhY3Rpb24sXG4gICAgICBsYXRleCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Eb25lLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIGhpZGVEb25lQnV0dG9uLFxuICAgICAgaGlkZURvbmVCdXR0b25CYWNrZ3JvdW5kLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIGVycm9yLFxuICAgICAgbWF4UmVzcG9uc2VBcmVhcyxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5wdXJlVG9vbGJhciwgKGNsYXNzTmFtZXMgfHwge30pLnRvb2xiYXIpfSByZWY9e2tleVBhZENoYXJhY3RlclJlZn0+XG4gICAgICAgIDxkaXYgLz5cbiAgICAgICAgPEVkaXRvckFuZFBhZFxuICAgICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICAgIGtleXBhZE1vZGU9e2tleXBhZE1vZGV9XG4gICAgICAgICAgY2xhc3NOYW1lcz17Y2xhc3NOYW1lcyB8fCB7fX1cbiAgICAgICAgICBjb250cm9sbGVkS2V5cGFkPXtjb250cm9sbGVkS2V5cGFkfVxuICAgICAgICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlPXtjb250cm9sbGVkS2V5cGFkTW9kZX1cbiAgICAgICAgICBub0RlY2ltYWw9e25vRGVjaW1hbH1cbiAgICAgICAgICBoaWRlSW5wdXQ9e2hpZGVJbnB1dH1cbiAgICAgICAgICBub0xhdGV4SGFuZGxpbmc9e25vTGF0ZXhIYW5kbGluZ31cbiAgICAgICAgICBsYXlvdXRGb3JLZXlQYWQ9e2xheW91dEZvcktleVBhZH1cbiAgICAgICAgICBzaG93S2V5cGFkPXtzaG93S2V5cGFkfVxuICAgICAgICAgIGFkZGl0aW9uYWxLZXlzPXthZGRpdGlvbmFsS2V5c31cbiAgICAgICAgICBhbGxvd0Fuc3dlckJsb2NrPXthbGxvd0Fuc3dlckJsb2NrfVxuICAgICAgICAgIG9uQW5zd2VyQmxvY2tBZGQ9e29uQW5zd2VyQmxvY2tBZGR9XG4gICAgICAgICAgbGF0ZXg9e2xhdGV4fVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBtYXhSZXNwb25zZUFyZWFzPXttYXhSZXNwb25zZUFyZWFzfVxuICAgICAgICAgIHNldEtleXBhZEludGVyYWN0aW9uPXtzZXRLZXlwYWRJbnRlcmFjdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICAgeyghY29udHJvbGxlZEtleXBhZCB8fCAoY29udHJvbGxlZEtleXBhZCAmJiBzaG93S2V5cGFkKSkgJiYgIWhpZGVEb25lQnV0dG9uICYmIChcbiAgICAgICAgICA8RG9uZUJ1dHRvbiBoaWRlQmFja2dyb3VuZD17aGlkZURvbmVCdXR0b25CYWNrZ3JvdW5kfSBvbkNsaWNrPXtvbkRvbmV9IC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5jb25zdCBzdHlsZXMgPSAoKSA9PiAoe1xuICBwdXJlVG9vbGJhcjoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHpJbmRleDogOCxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUHVyZVRvb2xiYXIgPSB3aXRoU3R5bGVzKHN0eWxlcykoUmF3UHVyZVRvb2xiYXIpO1xuIl19
|