studiokit-scaffolding-js 7.1.5 → 7.1.6-alpha.1.2
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/lib/components/ConnectedModal.js +3 -4
- package/lib/components/HOC/FullscreenModalComponent.d.ts +5 -17
- package/lib/components/HOC/FullscreenModalComponent.js +11 -61
- package/lib/css/base/_print.css +4 -11
- package/lib/css/components/_modals.css +25 -4
- package/lib/utils/dom.js +1 -6
- package/package.json +1 -3
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.default = void 0;
|
|
8
7
|
var _reactCompilerRuntime = require("react-compiler-runtime");
|
|
9
8
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
|
-
var _ConnectedModalComponent =
|
|
9
|
+
var _ConnectedModalComponent = require("./HOC/ConnectedModalComponent");
|
|
11
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
11
|
const ConnectedModal = t0 => {
|
|
13
12
|
const $ = (0, _reactCompilerRuntime.c)(4);
|
|
@@ -42,5 +41,5 @@ const ConnectedModal = t0 => {
|
|
|
42
41
|
/**
|
|
43
42
|
* Wrapped version of "react-bootstrap"'s `Modal` component. Uses `ConnectedModalComponent` to coordinate modal state in redux.
|
|
44
43
|
*/
|
|
45
|
-
var _default = exports.default = (0, _ConnectedModalComponent.
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
44
|
+
var _default = exports.default = (0, _ConnectedModalComponent.connectedModalComponent)(ConnectedModal);
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RCb290c3RyYXAiLCJyZXF1aXJlIiwiX0Nvbm5lY3RlZE1vZGFsQ29tcG9uZW50IiwiX2pzeFJ1bnRpbWUiLCJDb25uZWN0ZWRNb2RhbCIsInQwIiwiJCIsIl9yZWFjdENvbXBpbGVyUnVudGltZSIsImMiLCJtb2RhbFByb3BzIiwiZ3VpZCIsIm1vZGFscyIsImlzVG9wT3BlbkZ1bGxzY3JlZW5Nb2RhbCIsImRpc3BhdGNoIiwidDEiLCJqc3giLCJNb2RhbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJjb25uZWN0ZWRNb2RhbENvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0Nvbm5lY3RlZE1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGdW5jdGlvbkNvbXBvbmVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnXG5pbXBvcnQgeyBjb25uZWN0ZWRNb2RhbENvbXBvbmVudCwgQ29ubmVjdGVkTW9kYWxXcmFwcGVkUHJvcHMgfSBmcm9tICcuL0hPQy9Db25uZWN0ZWRNb2RhbENvbXBvbmVudCdcbmltcG9ydCB7IEd1aWRDb21wb25lbnRXcmFwcGVkUHJvcHMgfSBmcm9tICcuL0hPQy9HdWlkQ29tcG9uZW50J1xuXG5jb25zdCBDb25uZWN0ZWRNb2RhbDogRnVuY3Rpb25Db21wb25lbnQ8TW9kYWxQcm9wcyAmIENvbm5lY3RlZE1vZGFsV3JhcHBlZFByb3BzICYgR3VpZENvbXBvbmVudFdyYXBwZWRQcm9wcz4gPSAoe1xuXHQvLyBleGNsdWRlIHByb3BzIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCB0byB0aGUgTW9kYWxcblx0Z3VpZCxcblx0bW9kYWxzLFxuXHRpc1RvcE9wZW5GdWxsc2NyZWVuTW9kYWwsXG5cdGRpc3BhdGNoLFxuXHQuLi5tb2RhbFByb3BzXG59KSA9PiB7XG5cdHJldHVybiA8TW9kYWwgey4uLm1vZGFsUHJvcHN9IC8+XG59XG5cbi8qKlxuICogV3JhcHBlZCB2ZXJzaW9uIG9mIFwicmVhY3QtYm9vdHN0cmFwXCIncyBgTW9kYWxgIGNvbXBvbmVudC4gVXNlcyBgQ29ubmVjdGVkTW9kYWxDb21wb25lbnRgIHRvIGNvb3JkaW5hdGUgbW9kYWwgc3RhdGUgaW4gcmVkdXguXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RlZE1vZGFsQ29tcG9uZW50KENvbm5lY3RlZE1vZGFsKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsZUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsd0JBQUEsR0FBQUQsT0FBQTtBQUFtRyxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFHbkcsTUFBTUcsY0FBc0csR0FBR0MsRUFBQTtFQUFBLE1BQUFDLENBQUEsT0FBQUMscUJBQUEsQ0FBQUMsQ0FBQTtFQUFBLElBQUFDLFVBQUE7RUFBQSxJQUFBSCxDQUFBLFFBQUFELEVBQUE7SUFBQztNQUFBSyxJQUFBO01BQUFDLE1BQUE7TUFBQUMsd0JBQUE7TUFBQUMsUUFBQTtNQUFBLEdBQUFDO0lBQUEsSUFBQVQsRUFPL0c7SUFQK0dJLFVBQUEsR0FBQUssRUFBQTtJQU8vR1IsQ0FBQSxNQUFBRCxFQUFBO0lBQUFDLENBQUEsTUFBQUcsVUFBQTtFQUFBO0lBQUFBLFVBQUEsR0FBQUgsQ0FBQTtFQUFBO0VBQUEsSUFBQVEsRUFBQTtFQUFBLElBQUFSLENBQUEsUUFBQUcsVUFBQTtJQUNPSyxFQUFBLG9CQUFBWCxXQUFBLENBQUFZLEdBQUEsRUFBQ2YsZUFBQSxDQUFBZ0IsS0FBSztNQUFBLEdBQUtQO0lBQVUsQ0FBRyxDQUFDO0lBQUFILENBQUEsTUFBQUcsVUFBQTtJQUFBSCxDQUFBLE1BQUFRLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFSLENBQUE7RUFBQTtFQUFBLE9BQXpCUSxFQUF5QjtBQUFBLENBQ2hDOztBQUVEO0FBQ0E7QUFDQTtBQUZBLElBQUFHLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBR2UsSUFBQUMsZ0RBQXVCLEVBQUNoQixjQUFjLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -3,7 +3,6 @@ import { ConnectedModalWrappedProps } from './ConnectedModalComponent';
|
|
|
3
3
|
import { GuidComponentWrappedProps } from './GuidComponent';
|
|
4
4
|
/**
|
|
5
5
|
* The props that are provided to the HOC component directly from the caller, not other wrapping HOCs
|
|
6
|
-
* NOTE: if more flexibility is needed, add more props from `ReactModal.Props`
|
|
7
6
|
*/
|
|
8
7
|
export interface FullscreenModalOwnProps {
|
|
9
8
|
isOpen?: boolean;
|
|
@@ -12,12 +11,10 @@ export interface FullscreenModalOwnProps {
|
|
|
12
11
|
* If not provided, the modal manages itself.
|
|
13
12
|
*/
|
|
14
13
|
closeModal?: () => void;
|
|
15
|
-
contentLabel?: string;
|
|
16
|
-
zIndex?: number;
|
|
17
14
|
}
|
|
18
15
|
/** The props that are provided to the HOC component, either directly or from other wrapping HOCs */
|
|
19
16
|
export type FullscreenModalComponentProps = FullscreenModalOwnProps & ConnectedModalWrappedProps & GuidComponentWrappedProps;
|
|
20
|
-
/** The props that are
|
|
17
|
+
/** The props that are provided to the wrapped component. */
|
|
21
18
|
export interface FullscreenModalWrappedProps {
|
|
22
19
|
/** GUID of the fullscreen modal, used in state.modals. */
|
|
23
20
|
guid: string;
|
|
@@ -28,8 +25,7 @@ interface FullscreenModalState {
|
|
|
28
25
|
isOpen: boolean;
|
|
29
26
|
}
|
|
30
27
|
/**
|
|
31
|
-
* HOC that manages a `
|
|
32
|
-
* coordinates modal state in redux using.
|
|
28
|
+
* HOC that manages a "react-boostrap" `Modal` and adds fullscreen styles.
|
|
33
29
|
*
|
|
34
30
|
* NOTE: Meant for testing. Should be wrapped in `connectedModalComponent` normally.
|
|
35
31
|
*
|
|
@@ -38,9 +34,7 @@ interface FullscreenModalState {
|
|
|
38
34
|
export declare function configureFullscreenModalComponent<TOwnProps extends object>(WrappedComponent: ComponentType<TOwnProps & FullscreenModalWrappedProps>): {
|
|
39
35
|
new (props: TOwnProps & FullscreenModalOwnProps & ConnectedModalWrappedProps & GuidComponentWrappedProps): {
|
|
40
36
|
componentDidMount(): void;
|
|
41
|
-
componentWillUnmount(): void;
|
|
42
37
|
componentDidUpdate(prevProps: TOwnProps & FullscreenModalOwnProps & ConnectedModalWrappedProps & GuidComponentWrappedProps, prevState: FullscreenModalState): void;
|
|
43
|
-
disableScroll: (e: Event) => boolean;
|
|
44
38
|
onOpen: () => void;
|
|
45
39
|
onClose: () => void;
|
|
46
40
|
closeModal: () => void;
|
|
@@ -56,6 +50,7 @@ export declare function configureFullscreenModalComponent<TOwnProps extends obje
|
|
|
56
50
|
[key: string]: import("react").ReactInstance;
|
|
57
51
|
};
|
|
58
52
|
shouldComponentUpdate?(nextProps: Readonly<TOwnProps & FullscreenModalOwnProps & ConnectedModalWrappedProps & GuidComponentWrappedProps>, nextState: Readonly<FullscreenModalState>, nextContext: any): boolean;
|
|
53
|
+
componentWillUnmount?(): void;
|
|
59
54
|
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
|
|
60
55
|
getSnapshotBeforeUpdate?(prevProps: Readonly<TOwnProps & FullscreenModalOwnProps & ConnectedModalWrappedProps & GuidComponentWrappedProps>, prevState: Readonly<FullscreenModalState>): any;
|
|
61
56
|
componentWillMount?(): void;
|
|
@@ -68,16 +63,9 @@ export declare function configureFullscreenModalComponent<TOwnProps extends obje
|
|
|
68
63
|
contextType?: import("react").Context<any> | undefined;
|
|
69
64
|
};
|
|
70
65
|
/**
|
|
71
|
-
* HOC that
|
|
72
|
-
* adds fullscreen styles, and coordinates modal state in redux.
|
|
66
|
+
* HOC that manages a "react-bootstrap" `Modal` and adds fullscreen styles.
|
|
73
67
|
*
|
|
74
|
-
* Uses `connectedModalComponent
|
|
75
|
-
*
|
|
76
|
-
* NOTE: Please add the following css
|
|
77
|
-
*
|
|
78
|
-
* .ReactModal__Body--open {
|
|
79
|
-
* overflow: hidden;
|
|
80
|
-
* }
|
|
68
|
+
* Uses `connectedModalComponent` to coordinate modal state in redux.
|
|
81
69
|
*
|
|
82
70
|
* @param WrappedComponent The component to wrap.
|
|
83
71
|
*/
|
|
@@ -9,21 +9,19 @@ exports.default = void 0;
|
|
|
9
9
|
exports.fullscreenModalComponent = fullscreenModalComponent;
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _react = require("react");
|
|
12
|
-
var
|
|
12
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
13
13
|
var _ConnectedModalComponent = require("./ConnectedModalComponent");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
/**
|
|
16
16
|
* The props that are provided to the HOC component directly from the caller, not other wrapping HOCs
|
|
17
|
-
* NOTE: if more flexibility is needed, add more props from `ReactModal.Props`
|
|
18
17
|
*/
|
|
19
18
|
|
|
20
19
|
/** The props that are provided to the HOC component, either directly or from other wrapping HOCs */
|
|
21
20
|
|
|
22
|
-
/** The props that are
|
|
21
|
+
/** The props that are provided to the wrapped component. */
|
|
23
22
|
|
|
24
23
|
/**
|
|
25
|
-
* HOC that manages a `
|
|
26
|
-
* coordinates modal state in redux using.
|
|
24
|
+
* HOC that manages a "react-boostrap" `Modal` and adds fullscreen styles.
|
|
27
25
|
*
|
|
28
26
|
* NOTE: Meant for testing. Should be wrapped in `connectedModalComponent` normally.
|
|
29
27
|
*
|
|
@@ -33,17 +31,10 @@ function configureFullscreenModalComponent(WrappedComponent) {
|
|
|
33
31
|
return class FullscreenModalComponent extends _react.Component {
|
|
34
32
|
constructor(props) {
|
|
35
33
|
super(props);
|
|
36
|
-
(0, _defineProperty2.default)(this, "disableScroll", e => {
|
|
37
|
-
document.documentElement.scrollTop = 0;
|
|
38
|
-
e.preventDefault();
|
|
39
|
-
return false;
|
|
40
|
-
});
|
|
41
34
|
(0, _defineProperty2.default)(this, "onOpen", () => {
|
|
42
|
-
document.documentElement.addEventListener('touchmove', this.disableScroll);
|
|
43
35
|
this.props.onEntering();
|
|
44
36
|
});
|
|
45
37
|
(0, _defineProperty2.default)(this, "onClose", () => {
|
|
46
|
-
document.documentElement.removeEventListener('touchmove', this.disableScroll);
|
|
47
38
|
this.props.onExited();
|
|
48
39
|
});
|
|
49
40
|
(0, _defineProperty2.default)(this, "closeModal", () => {
|
|
@@ -58,12 +49,6 @@ function configureFullscreenModalComponent(WrappedComponent) {
|
|
|
58
49
|
this.state = {
|
|
59
50
|
isOpen: props.isOpen === undefined ? true : props.isOpen
|
|
60
51
|
};
|
|
61
|
-
|
|
62
|
-
// https://github.com/reactjs/react-modal#app-element
|
|
63
|
-
// Accessibility fixed when reading the content in the modal
|
|
64
|
-
if (document.getElementById('root')) {
|
|
65
|
-
_reactModal.default.setAppElement('#root');
|
|
66
|
-
}
|
|
67
52
|
}
|
|
68
53
|
componentDidMount() {
|
|
69
54
|
const {
|
|
@@ -73,9 +58,6 @@ function configureFullscreenModalComponent(WrappedComponent) {
|
|
|
73
58
|
this.onOpen();
|
|
74
59
|
}
|
|
75
60
|
}
|
|
76
|
-
componentWillUnmount() {
|
|
77
|
-
document.documentElement.removeEventListener('touchmove', this.disableScroll);
|
|
78
|
-
}
|
|
79
61
|
componentDidUpdate(prevProps, prevState) {
|
|
80
62
|
let isOpen;
|
|
81
63
|
if (this.props.isOpen !== undefined && this.props.isOpen !== this.state.isOpen) {
|
|
@@ -99,13 +81,11 @@ function configureFullscreenModalComponent(WrappedComponent) {
|
|
|
99
81
|
}
|
|
100
82
|
render() {
|
|
101
83
|
const {
|
|
102
|
-
contentLabel,
|
|
103
84
|
isTopOpenFullscreenModal,
|
|
104
85
|
onEntering,
|
|
105
86
|
onExited,
|
|
106
87
|
isOpen: _,
|
|
107
88
|
closeModal,
|
|
108
|
-
zIndex,
|
|
109
89
|
...remainingProps
|
|
110
90
|
} = this.props;
|
|
111
91
|
// do not pass ConnectedModalWrappedProps to wrapped component
|
|
@@ -116,34 +96,11 @@ function configureFullscreenModalComponent(WrappedComponent) {
|
|
|
116
96
|
const {
|
|
117
97
|
isOpen
|
|
118
98
|
} = this.state;
|
|
119
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
position: 'absolute',
|
|
125
|
-
top: 0,
|
|
126
|
-
left: 0,
|
|
127
|
-
right: 0,
|
|
128
|
-
bottom: 0,
|
|
129
|
-
overflow: 'hidden',
|
|
130
|
-
padding: 0,
|
|
131
|
-
border: 'none',
|
|
132
|
-
backgroundColor: 'white'
|
|
133
|
-
},
|
|
134
|
-
overlay: {
|
|
135
|
-
position: 'absolute',
|
|
136
|
-
top: 0,
|
|
137
|
-
left: 0,
|
|
138
|
-
right: 0,
|
|
139
|
-
bottom: 0,
|
|
140
|
-
zIndex: zIndex ?? 2000
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
// apply custom class, if this is not the top open fullscreen modal, to allow targeted styling (e.g. hide when printing in Safari)
|
|
144
|
-
,
|
|
145
|
-
portalClassName: `ReactModalPortal${!isTopOpenFullscreenModal ? ' HiddenFullscreenModal' : ''}`,
|
|
146
|
-
shouldCloseOnOverlayClick: false,
|
|
99
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Modal, {
|
|
100
|
+
show: isOpen,
|
|
101
|
+
backdrop: false,
|
|
102
|
+
animation: false,
|
|
103
|
+
className: "fullscreen-modal",
|
|
147
104
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
|
|
148
105
|
...wrappedProps
|
|
149
106
|
})
|
|
@@ -153,16 +110,9 @@ function configureFullscreenModalComponent(WrappedComponent) {
|
|
|
153
110
|
}
|
|
154
111
|
|
|
155
112
|
/**
|
|
156
|
-
* HOC that
|
|
157
|
-
* adds fullscreen styles, and coordinates modal state in redux.
|
|
158
|
-
*
|
|
159
|
-
* Uses `connectedModalComponent`.
|
|
160
|
-
*
|
|
161
|
-
* NOTE: Please add the following css
|
|
113
|
+
* HOC that manages a "react-bootstrap" `Modal` and adds fullscreen styles.
|
|
162
114
|
*
|
|
163
|
-
* .
|
|
164
|
-
* overflow: hidden;
|
|
165
|
-
* }
|
|
115
|
+
* Uses `connectedModalComponent` to coordinate modal state in redux.
|
|
166
116
|
*
|
|
167
117
|
* @param WrappedComponent The component to wrap.
|
|
168
118
|
*/
|
|
@@ -171,4 +121,4 @@ function fullscreenModalComponent(WrappedComponent) {
|
|
|
171
121
|
return (0, _ConnectedModalComponent.connectedModalComponent)(component, true);
|
|
172
122
|
}
|
|
173
123
|
var _default = exports.default = fullscreenModalComponent;
|
|
174
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0TW9kYWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0Nvbm5lY3RlZE1vZGFsQ29tcG9uZW50IiwiX2pzeFJ1bnRpbWUiLCJjb25maWd1cmVGdWxsc2NyZWVuTW9kYWxDb21wb25lbnQiLCJXcmFwcGVkQ29tcG9uZW50IiwiRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiZSIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iiwic2Nyb2xsVG9wIiwicHJldmVudERlZmF1bHQiLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzYWJsZVNjcm9sbCIsIm9uRW50ZXJpbmciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25FeGl0ZWQiLCJjbG9zZU1vZGFsIiwic2V0U3RhdGUiLCJpc09wZW4iLCJzdGF0ZSIsInVuZGVmaW5lZCIsImdldEVsZW1lbnRCeUlkIiwiUmVhY3RNb2RhbCIsInNldEFwcEVsZW1lbnQiLCJjb21wb25lbnREaWRNb3VudCIsIm9uT3BlbiIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwib25DbG9zZSIsInJlbmRlciIsImNvbnRlbnRMYWJlbCIsImlzVG9wT3BlbkZ1bGxzY3JlZW5Nb2RhbCIsIl8iLCJ6SW5kZXgiLCJyZW1haW5pbmdQcm9wcyIsIndyYXBwZWRQcm9wcyIsImpzeCIsInN0eWxlIiwiY29udGVudCIsInBvc2l0aW9uIiwidG9wIiwibGVmdCIsInJpZ2h0IiwiYm90dG9tIiwib3ZlcmZsb3ciLCJwYWRkaW5nIiwiYm9yZGVyIiwiYmFja2dyb3VuZENvbG9yIiwib3ZlcmxheSIsInBvcnRhbENsYXNzTmFtZSIsInNob3VsZENsb3NlT25PdmVybGF5Q2xpY2siLCJjaGlsZHJlbiIsImZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudCIsImNvbXBvbmVudCIsImNvbm5lY3RlZE1vZGFsQ29tcG9uZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSE9DL0Z1bGxzY3JlZW5Nb2RhbENvbXBvbmVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRDbGFzcywgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFJlYWN0TW9kYWwgZnJvbSAncmVhY3QtbW9kYWwnXG5pbXBvcnQgeyBjb25uZWN0ZWRNb2RhbENvbXBvbmVudCwgQ29ubmVjdGVkTW9kYWxXcmFwcGVkUHJvcHMgfSBmcm9tICcuL0Nvbm5lY3RlZE1vZGFsQ29tcG9uZW50J1xuaW1wb3J0IHsgR3VpZENvbXBvbmVudFdyYXBwZWRQcm9wcyB9IGZyb20gJy4vR3VpZENvbXBvbmVudCdcblxuLyoqXG4gKiBUaGUgcHJvcHMgdGhhdCBhcmUgcHJvdmlkZWQgdG8gdGhlIEhPQyBjb21wb25lbnQgZGlyZWN0bHkgZnJvbSB0aGUgY2FsbGVyLCBub3Qgb3RoZXIgd3JhcHBpbmcgSE9Dc1xuICogTk9URTogaWYgbW9yZSBmbGV4aWJpbGl0eSBpcyBuZWVkZWQsIGFkZCBtb3JlIHByb3BzIGZyb20gYFJlYWN0TW9kYWwuUHJvcHNgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbHNjcmVlbk1vZGFsT3duUHJvcHMge1xuXHQvKiBCb29sZWFuIGRlc2NyaWJpbmcgaWYgdGhlIG1vZGFsIHNob3VsZCBiZSBzaG93biBvciBub3QuIElmIG5vdCBwcm92aWRlZCwgdGhlIG1vZGFsIG1hbmFnZXMgaXRzZWxmLCBkZWZhdWx0aW5nIHRvIG9wZW4uICovXG5cdGlzT3Blbj86IGJvb2xlYW5cblxuXHQvKipcblx0ICogRnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBtb2RhbCBzaG91bGQgYmUgY2xvc2VkLCBhbmQgdGhlIHBhcmVudCBzaG91bGQgc2V0IGBwcm9wcy5pc09wZW5gIHRvIGBmYWxzZWAuXG5cdCAqIElmIG5vdCBwcm92aWRlZCwgdGhlIG1vZGFsIG1hbmFnZXMgaXRzZWxmLlxuXHQgKi9cblx0Y2xvc2VNb2RhbD86ICgpID0+IHZvaWRcblxuXHQvKiBTdHJpbmcgaW5kaWNhdGluZyBob3cgdGhlIGNvbnRlbnQgY29udGFpbmVyIHNob3VsZCBiZSBhbm5vdW5jZWQgdG8gc2NyZWVuIHJlYWRlcnMuICovXG5cdGNvbnRlbnRMYWJlbD86IHN0cmluZ1xuXG5cdC8qIE9wdGlvbmFsIHZhbHVlIGluZGljYXRpbmcgdGhlIHpJbmRleCB0aGUgbW9kYWwgb3ZlcmxheSBzaG91bGQgaGF2ZSAqL1xuXHR6SW5kZXg/OiBudW1iZXJcbn1cblxuLyoqIFRoZSBwcm9wcyB0aGF0IGFyZSBwcm92aWRlZCB0byB0aGUgSE9DIGNvbXBvbmVudCwgZWl0aGVyIGRpcmVjdGx5IG9yIGZyb20gb3RoZXIgd3JhcHBpbmcgSE9DcyAqL1xuZXhwb3J0IHR5cGUgRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50UHJvcHMgPSBGdWxsc2NyZWVuTW9kYWxPd25Qcm9wcyAmXG5cdENvbm5lY3RlZE1vZGFsV3JhcHBlZFByb3BzICZcblx0R3VpZENvbXBvbmVudFdyYXBwZWRQcm9wc1xuXG4vKiogVGhlIHByb3BzIHRoYXQgYXJlIHByb3ZpZGUgdG8gdGhlIHdyYXBwZWQgY29tcG9uZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdWxsc2NyZWVuTW9kYWxXcmFwcGVkUHJvcHMge1xuXHQvKiogR1VJRCBvZiB0aGUgZnVsbHNjcmVlbiBtb2RhbCwgdXNlZCBpbiBzdGF0ZS5tb2RhbHMuICovXG5cdGd1aWQ6IHN0cmluZ1xuXHQvKiogRnVuY3Rpb24gdGhhdCB3aWxsIGNsb3NlIHRoZSBtb2RhbC4gKi9cblx0Y2xvc2VNb2RhbDogKCkgPT4gdm9pZFxufVxuXG5pbnRlcmZhY2UgRnVsbHNjcmVlbk1vZGFsU3RhdGUge1xuXHRpc09wZW46IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBIT0MgdGhhdCBtYW5hZ2VzIGEgYFJlYWN0TW9kYWxgLCBhZGRzIGlubGluZSBjc3MsIGFuZFxuICogY29vcmRpbmF0ZXMgbW9kYWwgc3RhdGUgaW4gcmVkdXggdXNpbmcuXG4gKlxuICogTk9URTogTWVhbnQgZm9yIHRlc3RpbmcuIFNob3VsZCBiZSB3cmFwcGVkIGluIGBjb25uZWN0ZWRNb2RhbENvbXBvbmVudGAgbm9ybWFsbHkuXG4gKlxuICogQHBhcmFtIFdyYXBwZWRDb21wb25lbnQgVGhlIGNvbXBvbmVudCB0byB3cmFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50PFRPd25Qcm9wcyBleHRlbmRzIG9iamVjdD4oXG5cdFdyYXBwZWRDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VE93blByb3BzICYgRnVsbHNjcmVlbk1vZGFsV3JhcHBlZFByb3BzPlxuKSB7XG5cdHR5cGUgSG9jUHJvcHMgPSBUT3duUHJvcHMgJiBGdWxsc2NyZWVuTW9kYWxDb21wb25lbnRQcm9wc1xuXHRyZXR1cm4gY2xhc3MgRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PEhvY1Byb3BzLCBGdWxsc2NyZWVuTW9kYWxTdGF0ZT4ge1xuXHRcdGNvbnN0cnVjdG9yKHByb3BzOiBIb2NQcm9wcykge1xuXHRcdFx0c3VwZXIocHJvcHMpXG5cblx0XHRcdHRoaXMuc3RhdGUgPSB7XG5cdFx0XHRcdGlzT3BlbjogcHJvcHMuaXNPcGVuID09PSB1bmRlZmluZWQgPyB0cnVlIDogcHJvcHMuaXNPcGVuXG5cdFx0XHR9XG5cblx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGpzL3JlYWN0LW1vZGFsI2FwcC1lbGVtZW50XG5cdFx0XHQvLyBBY2Nlc3NpYmlsaXR5IGZpeGVkIHdoZW4gcmVhZGluZyB0aGUgY29udGVudCBpbiB0aGUgbW9kYWxcblx0XHRcdGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpKSB7XG5cdFx0XHRcdFJlYWN0TW9kYWwuc2V0QXBwRWxlbWVudCgnI3Jvb3QnKVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbXBvbmVudERpZE1vdW50KCkge1xuXHRcdFx0Y29uc3QgeyBpc09wZW4gfSA9IHRoaXMuc3RhdGVcblx0XHRcdGlmIChpc09wZW4pIHtcblx0XHRcdFx0dGhpcy5vbk9wZW4oKVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuXHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuZGlzYWJsZVNjcm9sbClcblx0XHR9XG5cblx0XHRjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBIb2NQcm9wcywgcHJldlN0YXRlOiBGdWxsc2NyZWVuTW9kYWxTdGF0ZSkge1xuXHRcdFx0bGV0IGlzT3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG5cdFx0XHRpZiAodGhpcy5wcm9wcy5pc09wZW4gIT09IHVuZGVmaW5lZCAmJiB0aGlzLnByb3BzLmlzT3BlbiAhPT0gdGhpcy5zdGF0ZS5pc09wZW4pIHtcblx0XHRcdFx0Ly8gdXNpbmcgcHJvcHMgdG8gaGFuZGxlIGlzT3BlbiwgdXBkYXRlIHN0YXRlXG5cdFx0XHRcdGlzT3BlbiA9IHRoaXMucHJvcHMuaXNPcGVuXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMucHJvcHMuaXNPcGVuID09PSB1bmRlZmluZWQgJiYgcHJldlN0YXRlLmlzT3BlbiAhPT0gdGhpcy5zdGF0ZS5pc09wZW4pIHtcblx0XHRcdFx0Ly8gdXNpbmcgc3RhdGUgb25seSB0byBoYW5kbGUgaXNPcGVuXG5cdFx0XHRcdGlzT3BlbiA9IHRoaXMuc3RhdGUuaXNPcGVuXG5cdFx0XHR9XG5cblx0XHRcdGlmIChpc09wZW4gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzT3Blbikge1xuXHRcdFx0XHR0aGlzLm9uT3BlbigpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLm9uQ2xvc2UoKVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdGlzT3BlblxuXHRcdFx0fSlcblx0XHR9XG5cblx0XHRkaXNhYmxlU2Nyb2xsID0gKGU6IEV2ZW50KSA9PiB7XG5cdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gMFxuXHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpXG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHR9XG5cblx0XHRvbk9wZW4gPSAoKSA9PiB7XG5cdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5kaXNhYmxlU2Nyb2xsKVxuXHRcdFx0dGhpcy5wcm9wcy5vbkVudGVyaW5nKClcblx0XHR9XG5cblx0XHRvbkNsb3NlID0gKCkgPT4ge1xuXHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuZGlzYWJsZVNjcm9sbClcblx0XHRcdHRoaXMucHJvcHMub25FeGl0ZWQoKVxuXHRcdH1cblxuXHRcdGNsb3NlTW9kYWwgPSAoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5wcm9wcy5jbG9zZU1vZGFsKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMuY2xvc2VNb2RhbCgpXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdGlzT3BlbjogZmFsc2Vcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0cmVuZGVyKCkge1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRjb250ZW50TGFiZWwsXG5cdFx0XHRcdGlzVG9wT3BlbkZ1bGxzY3JlZW5Nb2RhbCxcblx0XHRcdFx0b25FbnRlcmluZyxcblx0XHRcdFx0b25FeGl0ZWQsXG5cdFx0XHRcdGlzT3BlbjogXyxcblx0XHRcdFx0Y2xvc2VNb2RhbCxcblx0XHRcdFx0ekluZGV4LFxuXHRcdFx0XHQuLi5yZW1haW5pbmdQcm9wc1xuXHRcdFx0fSA9IHRoaXMucHJvcHNcblx0XHRcdC8vIGRvIG5vdCBwYXNzIENvbm5lY3RlZE1vZGFsV3JhcHBlZFByb3BzIHRvIHdyYXBwZWQgY29tcG9uZW50XG5cdFx0XHRjb25zdCB3cmFwcGVkUHJvcHMgPSB7XG5cdFx0XHRcdC4uLnJlbWFpbmluZ1Byb3BzLFxuXHRcdFx0XHRjbG9zZU1vZGFsOiB0aGlzLmNsb3NlTW9kYWxcblx0XHRcdH0gYXMgVE93blByb3BzICYgRnVsbHNjcmVlbk1vZGFsV3JhcHBlZFByb3BzXG5cdFx0XHRjb25zdCB7IGlzT3BlbiB9ID0gdGhpcy5zdGF0ZVxuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PFJlYWN0TW9kYWxcblx0XHRcdFx0XHRpc09wZW49e2lzT3Blbn1cblx0XHRcdFx0XHRjb250ZW50TGFiZWw9e2NvbnRlbnRMYWJlbH1cblx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0Y29udGVudDoge1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcblx0XHRcdFx0XHRcdFx0dG9wOiAwLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRcdFx0Ym90dG9tOiAwLFxuXHRcdFx0XHRcdFx0XHRvdmVyZmxvdzogJ2hpZGRlbicsXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAsXG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogJ25vbmUnLFxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZSdcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvdmVybGF5OiB7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuXHRcdFx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdFx0XHRcdHJpZ2h0OiAwLFxuXHRcdFx0XHRcdFx0XHRib3R0b206IDAsXG5cdFx0XHRcdFx0XHRcdHpJbmRleDogekluZGV4ID8/IDIwMDBcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8vIGFwcGx5IGN1c3RvbSBjbGFzcywgaWYgdGhpcyBpcyBub3QgdGhlIHRvcCBvcGVuIGZ1bGxzY3JlZW4gbW9kYWwsIHRvIGFsbG93IHRhcmdldGVkIHN0eWxpbmcgKGUuZy4gaGlkZSB3aGVuIHByaW50aW5nIGluIFNhZmFyaSlcblx0XHRcdFx0XHRwb3J0YWxDbGFzc05hbWU9e2BSZWFjdE1vZGFsUG9ydGFsJHshaXNUb3BPcGVuRnVsbHNjcmVlbk1vZGFsID8gJyBIaWRkZW5GdWxsc2NyZWVuTW9kYWwnIDogJyd9YH1cblx0XHRcdFx0XHRzaG91bGRDbG9zZU9uT3ZlcmxheUNsaWNrPXtmYWxzZX0+XG5cdFx0XHRcdFx0PFdyYXBwZWRDb21wb25lbnQgey4uLndyYXBwZWRQcm9wc30gLz5cblx0XHRcdFx0PC9SZWFjdE1vZGFsPlxuXHRcdFx0KVxuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEhPQyB0aGF0IGNvbnRhaW5zIGEgYFJlYWN0TW9kYWxgIHdoaWNoIGNhbiBiZSBhdXRvIG1hbmFnZWQgb3IgbWFuYWdlZCB3aXRoIHByb3BzLFxuICogYWRkcyBmdWxsc2NyZWVuIHN0eWxlcywgYW5kIGNvb3JkaW5hdGVzIG1vZGFsIHN0YXRlIGluIHJlZHV4LlxuICpcbiAqIFVzZXMgYGNvbm5lY3RlZE1vZGFsQ29tcG9uZW50YC5cbiAqXG4gKiBOT1RFOiBQbGVhc2UgYWRkIHRoZSBmb2xsb3dpbmcgY3NzXG4gKlxuICogLlJlYWN0TW9kYWxfX0JvZHktLW9wZW4ge1xuICogXHRvdmVyZmxvdzogaGlkZGVuO1xuICogfVxuICpcbiAqIEBwYXJhbSBXcmFwcGVkQ29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gd3JhcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudDxUT3duUHJvcHMgZXh0ZW5kcyBvYmplY3Q+KFxuXHRXcmFwcGVkQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcyAmIEZ1bGxzY3JlZW5Nb2RhbFdyYXBwZWRQcm9wcz5cbik6IENvbXBvbmVudENsYXNzPFRPd25Qcm9wcyAmIEZ1bGxzY3JlZW5Nb2RhbE93blByb3BzPiB7XG5cdGNvbnN0IGNvbXBvbmVudCA9IGNvbmZpZ3VyZUZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudDxUT3duUHJvcHM+KFdyYXBwZWRDb21wb25lbnQpXG5cdHJldHVybiBjb25uZWN0ZWRNb2RhbENvbXBvbmVudChjb21wb25lbnQsIHRydWUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudFxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsd0JBQUEsR0FBQUgsT0FBQTtBQUErRixJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFHL0Y7QUFDQTtBQUNBO0FBQ0E7O0FBa0JBOztBQUtBOztBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTSyxpQ0FBaUNBLENBQ2hEQyxnQkFBd0UsRUFDdkU7RUFFRCxPQUFPLE1BQU1DLHdCQUF3QixTQUFTQyxnQkFBUyxDQUFpQztJQUN2RkMsV0FBV0EsQ0FBQ0MsS0FBZSxFQUFFO01BQzVCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO01BQUEsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSx5QkFpRElDLENBQVEsSUFBSztRQUM3QkMsUUFBUSxDQUFDQyxlQUFlLENBQUNDLFNBQVMsR0FBRyxDQUFDO1FBQ3RDSCxDQUFDLENBQUNJLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sS0FBSztNQUNiLENBQUM7TUFBQSxJQUFBTixnQkFBQSxDQUFBQyxPQUFBLGtCQUVRLE1BQU07UUFDZEUsUUFBUSxDQUFDQyxlQUFlLENBQUNH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
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX0Nvbm5lY3RlZE1vZGFsQ29tcG9uZW50IiwiX2pzeFJ1bnRpbWUiLCJjb25maWd1cmVGdWxsc2NyZWVuTW9kYWxDb21wb25lbnQiLCJXcmFwcGVkQ29tcG9uZW50IiwiRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0Iiwib25FbnRlcmluZyIsIm9uRXhpdGVkIiwiY2xvc2VNb2RhbCIsInNldFN0YXRlIiwiaXNPcGVuIiwic3RhdGUiLCJ1bmRlZmluZWQiLCJjb21wb25lbnREaWRNb3VudCIsIm9uT3BlbiIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsIm9uQ2xvc2UiLCJyZW5kZXIiLCJpc1RvcE9wZW5GdWxsc2NyZWVuTW9kYWwiLCJfIiwicmVtYWluaW5nUHJvcHMiLCJ3cmFwcGVkUHJvcHMiLCJqc3giLCJNb2RhbCIsInNob3ciLCJiYWNrZHJvcCIsImFuaW1hdGlvbiIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiZnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50IiwiY29tcG9uZW50IiwiY29ubmVjdGVkTW9kYWxDb21wb25lbnQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9IT0MvRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudENsYXNzLCBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCdcbmltcG9ydCB7IGNvbm5lY3RlZE1vZGFsQ29tcG9uZW50LCBDb25uZWN0ZWRNb2RhbFdyYXBwZWRQcm9wcyB9IGZyb20gJy4vQ29ubmVjdGVkTW9kYWxDb21wb25lbnQnXG5pbXBvcnQgeyBHdWlkQ29tcG9uZW50V3JhcHBlZFByb3BzIH0gZnJvbSAnLi9HdWlkQ29tcG9uZW50J1xuXG4vKipcbiAqIFRoZSBwcm9wcyB0aGF0IGFyZSBwcm92aWRlZCB0byB0aGUgSE9DIGNvbXBvbmVudCBkaXJlY3RseSBmcm9tIHRoZSBjYWxsZXIsIG5vdCBvdGhlciB3cmFwcGluZyBIT0NzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbHNjcmVlbk1vZGFsT3duUHJvcHMge1xuXHQvKiBCb29sZWFuIGRlc2NyaWJpbmcgaWYgdGhlIG1vZGFsIHNob3VsZCBiZSBzaG93biBvciBub3QuIElmIG5vdCBwcm92aWRlZCwgdGhlIG1vZGFsIG1hbmFnZXMgaXRzZWxmLCBkZWZhdWx0aW5nIHRvIG9wZW4uICovXG5cdGlzT3Blbj86IGJvb2xlYW5cblxuXHQvKipcblx0ICogRnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBtb2RhbCBzaG91bGQgYmUgY2xvc2VkLCBhbmQgdGhlIHBhcmVudCBzaG91bGQgc2V0IGBwcm9wcy5pc09wZW5gIHRvIGBmYWxzZWAuXG5cdCAqIElmIG5vdCBwcm92aWRlZCwgdGhlIG1vZGFsIG1hbmFnZXMgaXRzZWxmLlxuXHQgKi9cblx0Y2xvc2VNb2RhbD86ICgpID0+IHZvaWRcbn1cblxuLyoqIFRoZSBwcm9wcyB0aGF0IGFyZSBwcm92aWRlZCB0byB0aGUgSE9DIGNvbXBvbmVudCwgZWl0aGVyIGRpcmVjdGx5IG9yIGZyb20gb3RoZXIgd3JhcHBpbmcgSE9DcyAqL1xuZXhwb3J0IHR5cGUgRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50UHJvcHMgPSBGdWxsc2NyZWVuTW9kYWxPd25Qcm9wcyAmXG5cdENvbm5lY3RlZE1vZGFsV3JhcHBlZFByb3BzICZcblx0R3VpZENvbXBvbmVudFdyYXBwZWRQcm9wc1xuXG4vKiogVGhlIHByb3BzIHRoYXQgYXJlIHByb3ZpZGVkIHRvIHRoZSB3cmFwcGVkIGNvbXBvbmVudC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbHNjcmVlbk1vZGFsV3JhcHBlZFByb3BzIHtcblx0LyoqIEdVSUQgb2YgdGhlIGZ1bGxzY3JlZW4gbW9kYWwsIHVzZWQgaW4gc3RhdGUubW9kYWxzLiAqL1xuXHRndWlkOiBzdHJpbmdcblx0LyoqIEZ1bmN0aW9uIHRoYXQgd2lsbCBjbG9zZSB0aGUgbW9kYWwuICovXG5cdGNsb3NlTW9kYWw6ICgpID0+IHZvaWRcbn1cblxuaW50ZXJmYWNlIEZ1bGxzY3JlZW5Nb2RhbFN0YXRlIHtcblx0aXNPcGVuOiBib29sZWFuXG59XG5cbi8qKlxuICogSE9DIHRoYXQgbWFuYWdlcyBhIFwicmVhY3QtYm9vc3RyYXBcIiBgTW9kYWxgIGFuZCBhZGRzIGZ1bGxzY3JlZW4gc3R5bGVzLlxuICpcbiAqIE5PVEU6IE1lYW50IGZvciB0ZXN0aW5nLiBTaG91bGQgYmUgd3JhcHBlZCBpbiBgY29ubmVjdGVkTW9kYWxDb21wb25lbnRgIG5vcm1hbGx5LlxuICpcbiAqIEBwYXJhbSBXcmFwcGVkQ29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gd3JhcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZUZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudDxUT3duUHJvcHMgZXh0ZW5kcyBvYmplY3Q+KFxuXHRXcmFwcGVkQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcyAmIEZ1bGxzY3JlZW5Nb2RhbFdyYXBwZWRQcm9wcz5cbikge1xuXHR0eXBlIEhvY1Byb3BzID0gVE93blByb3BzICYgRnVsbHNjcmVlbk1vZGFsQ29tcG9uZW50UHJvcHNcblx0cmV0dXJuIGNsYXNzIEZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudDxIb2NQcm9wcywgRnVsbHNjcmVlbk1vZGFsU3RhdGU+IHtcblx0XHRjb25zdHJ1Y3Rvcihwcm9wczogSG9jUHJvcHMpIHtcblx0XHRcdHN1cGVyKHByb3BzKVxuXHRcdFx0dGhpcy5zdGF0ZSA9IHtcblx0XHRcdFx0aXNPcGVuOiBwcm9wcy5pc09wZW4gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBwcm9wcy5pc09wZW5cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHRcdGNvbnN0IHsgaXNPcGVuIH0gPSB0aGlzLnN0YXRlXG5cdFx0XHRpZiAoaXNPcGVuKSB7XG5cdFx0XHRcdHRoaXMub25PcGVuKClcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBIb2NQcm9wcywgcHJldlN0YXRlOiBGdWxsc2NyZWVuTW9kYWxTdGF0ZSkge1xuXHRcdFx0bGV0IGlzT3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG5cdFx0XHRpZiAodGhpcy5wcm9wcy5pc09wZW4gIT09IHVuZGVmaW5lZCAmJiB0aGlzLnByb3BzLmlzT3BlbiAhPT0gdGhpcy5zdGF0ZS5pc09wZW4pIHtcblx0XHRcdFx0Ly8gdXNpbmcgcHJvcHMgdG8gaGFuZGxlIGlzT3BlbiwgdXBkYXRlIHN0YXRlXG5cdFx0XHRcdGlzT3BlbiA9IHRoaXMucHJvcHMuaXNPcGVuXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMucHJvcHMuaXNPcGVuID09PSB1bmRlZmluZWQgJiYgcHJldlN0YXRlLmlzT3BlbiAhPT0gdGhpcy5zdGF0ZS5pc09wZW4pIHtcblx0XHRcdFx0Ly8gdXNpbmcgc3RhdGUgb25seSB0byBoYW5kbGUgaXNPcGVuXG5cdFx0XHRcdGlzT3BlbiA9IHRoaXMuc3RhdGUuaXNPcGVuXG5cdFx0XHR9XG5cblx0XHRcdGlmIChpc09wZW4gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzT3Blbikge1xuXHRcdFx0XHR0aGlzLm9uT3BlbigpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLm9uQ2xvc2UoKVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdGlzT3BlblxuXHRcdFx0fSlcblx0XHR9XG5cblx0XHRvbk9wZW4gPSAoKSA9PiB7XG5cdFx0XHR0aGlzLnByb3BzLm9uRW50ZXJpbmcoKVxuXHRcdH1cblxuXHRcdG9uQ2xvc2UgPSAoKSA9PiB7XG5cdFx0XHR0aGlzLnByb3BzLm9uRXhpdGVkKClcblx0XHR9XG5cblx0XHRjbG9zZU1vZGFsID0gKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMucHJvcHMuY2xvc2VNb2RhbCkge1xuXHRcdFx0XHR0aGlzLnByb3BzLmNsb3NlTW9kYWwoKVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRpc09wZW46IGZhbHNlXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdHJlbmRlcigpIHtcblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0aXNUb3BPcGVuRnVsbHNjcmVlbk1vZGFsLFxuXHRcdFx0XHRvbkVudGVyaW5nLFxuXHRcdFx0XHRvbkV4aXRlZCxcblx0XHRcdFx0aXNPcGVuOiBfLFxuXHRcdFx0XHRjbG9zZU1vZGFsLFxuXHRcdFx0XHQuLi5yZW1haW5pbmdQcm9wc1xuXHRcdFx0fSA9IHRoaXMucHJvcHNcblx0XHRcdC8vIGRvIG5vdCBwYXNzIENvbm5lY3RlZE1vZGFsV3JhcHBlZFByb3BzIHRvIHdyYXBwZWQgY29tcG9uZW50XG5cdFx0XHRjb25zdCB3cmFwcGVkUHJvcHMgPSB7XG5cdFx0XHRcdC4uLnJlbWFpbmluZ1Byb3BzLFxuXHRcdFx0XHRjbG9zZU1vZGFsOiB0aGlzLmNsb3NlTW9kYWxcblx0XHRcdH0gYXMgVE93blByb3BzICYgRnVsbHNjcmVlbk1vZGFsV3JhcHBlZFByb3BzXG5cdFx0XHRjb25zdCB7IGlzT3BlbiB9ID0gdGhpcy5zdGF0ZVxuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PE1vZGFsIHNob3c9e2lzT3Blbn0gYmFja2Ryb3A9e2ZhbHNlfSBhbmltYXRpb249e2ZhbHNlfSBjbGFzc05hbWU9XCJmdWxsc2NyZWVuLW1vZGFsXCI+XG5cdFx0XHRcdFx0PFdyYXBwZWRDb21wb25lbnQgey4uLndyYXBwZWRQcm9wc30gLz5cblx0XHRcdFx0PC9Nb2RhbD5cblx0XHRcdClcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBIT0MgdGhhdCBtYW5hZ2VzIGEgXCJyZWFjdC1ib290c3RyYXBcIiBgTW9kYWxgIGFuZCBhZGRzIGZ1bGxzY3JlZW4gc3R5bGVzLlxuICpcbiAqIFVzZXMgYGNvbm5lY3RlZE1vZGFsQ29tcG9uZW50YCB0byBjb29yZGluYXRlIG1vZGFsIHN0YXRlIGluIHJlZHV4LlxuICpcbiAqIEBwYXJhbSBXcmFwcGVkQ29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gd3JhcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudDxUT3duUHJvcHMgZXh0ZW5kcyBvYmplY3Q+KFxuXHRXcmFwcGVkQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcyAmIEZ1bGxzY3JlZW5Nb2RhbFdyYXBwZWRQcm9wcz5cbik6IENvbXBvbmVudENsYXNzPFRPd25Qcm9wcyAmIEZ1bGxzY3JlZW5Nb2RhbE93blByb3BzPiB7XG5cdGNvbnN0IGNvbXBvbmVudCA9IGNvbmZpZ3VyZUZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudDxUT3duUHJvcHM+KFdyYXBwZWRDb21wb25lbnQpXG5cdHJldHVybiBjb25uZWN0ZWRNb2RhbENvbXBvbmVudChjb21wb25lbnQsIHRydWUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bGxzY3JlZW5Nb2RhbENvbXBvbmVudFxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsd0JBQUEsR0FBQUYsT0FBQTtBQUErRixJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFHL0Y7QUFDQTtBQUNBOztBQVlBOztBQUtBOztBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0ksaUNBQWlDQSxDQUNoREMs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
|
package/lib/css/base/_print.css
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
@media print {
|
|
15
15
|
/* override global react fullscreen modal styles */
|
|
16
|
-
.
|
|
16
|
+
.modal-open {
|
|
17
17
|
overflow: visible !important;
|
|
18
18
|
|
|
19
19
|
/* always hide content underneath the fullscreen modal */
|
|
@@ -23,18 +23,11 @@
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/* hide hidden fullscreen modal content when printing */
|
|
26
|
-
.
|
|
27
|
-
display: none;
|
|
26
|
+
.fullscreen-modal[aria-hidden="true"] {
|
|
27
|
+
display: none !important;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.
|
|
31
|
-
/* safari-only */
|
|
32
|
-
@supports (-webkit-hyphens:none) {
|
|
33
|
-
position: static !important;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.ReactModal__Content {
|
|
30
|
+
.fullscreen-modal, .fullscreen-modal .modal-dialog {
|
|
38
31
|
overflow: visible !important;
|
|
39
32
|
|
|
40
33
|
/* safari-only */
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
.ReactModal__Body--open {
|
|
2
|
-
overflow: hidden;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
1
|
.modal-dialog {
|
|
6
2
|
max-width: none;
|
|
7
3
|
width: auto;
|
|
@@ -40,6 +36,31 @@
|
|
|
40
36
|
}
|
|
41
37
|
}
|
|
42
38
|
|
|
39
|
+
.fullscreen-modal {
|
|
40
|
+
& .modal-dialog {
|
|
41
|
+
position: absolute;
|
|
42
|
+
top: 0;
|
|
43
|
+
left: 0;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
padding: 0;
|
|
46
|
+
margin: 0;
|
|
47
|
+
border: none;
|
|
48
|
+
background-color: white;
|
|
49
|
+
width: 100%;
|
|
50
|
+
transition: none !important;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
& .modal-content {
|
|
54
|
+
box-shadow: none;
|
|
55
|
+
border-radius: 0;
|
|
56
|
+
border: none;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.modal-open .fullscreen-modal {
|
|
61
|
+
overflow: hidden;
|
|
62
|
+
}
|
|
63
|
+
|
|
43
64
|
/* Always display sentry feedback dialog on top of everything else. */
|
|
44
65
|
.sentry-error-embed-wrapper {
|
|
45
66
|
z-index: 9999 !important;
|
package/lib/utils/dom.js
CHANGED
|
@@ -197,11 +197,6 @@ const setupMobileEventListeners = () => {
|
|
|
197
197
|
// add event listeners
|
|
198
198
|
visualViewport.addEventListener('resize', () => {
|
|
199
199
|
setVisualViewportHeightVar();
|
|
200
|
-
|
|
201
|
-
// keep the document element scrolled to the top if a ReactModal is open
|
|
202
|
-
if (document.body.classList.contains('ReactModal__Body--open')) {
|
|
203
|
-
document.documentElement.scrollTop = 0;
|
|
204
|
-
}
|
|
205
200
|
});
|
|
206
201
|
window.addEventListener('focusin', onFocusIn);
|
|
207
202
|
window.addEventListener('focusout', onFocusOut);
|
|
@@ -210,4 +205,4 @@ const setupMobileEventListeners = () => {
|
|
|
210
205
|
checkForExternalKeyboard();
|
|
211
206
|
};
|
|
212
207
|
exports.setupMobileEventListeners = setupMobileEventListeners;
|
|
213
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIktFWUJPQVJEX0FOSU1BVElPTl9NUyIsImdldFZlcnRpY2FsbHlTY3JvbGxhYmxlUGFyZW50IiwiZWxlbWVudCIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZG9jdW1lbnQiLCJzY3JvbGxpbmdFbGVtZW50IiwiZXhwb3J0cyIsImdldEZpcnN0UGFyZW50RWxlbWVudFdpdGhDbGFzc05hbWUiLCJjbGFzc05hbWUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInVuZGVmaW5lZCIsImlzTW9iaWxlRGV2aWNlIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwibWF4VG91Y2hQb2ludHMiLCJoYXNFeHRlcm5hbEtleWJvYXJkIiwid2luZG93Iiwic2V0SGFzRXh0ZXJuYWxLZXlib2FyZCIsImdldExvZ2dlciIsImRlYnVnIiwid2luZG93V2l0aG91dFR5cGUiLCJzZXRWaXN1YWxWaWV3cG9ydEhlaWdodFZhciIsImhlaWdodCIsInZpc3VhbFZpZXdwb3J0IiwiZG9jdW1lbnRFbGVtZW50Iiwic2V0UHJvcGVydHkiLCJpc1RleHRJbnB1dCIsImVsIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiaW5wdXRFbCIsInR5cGUiLCJpbmNsdWRlcyIsImNvbnRlbnRFZGl0YWJsZSIsInVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dCIsInNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0IiwidXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXMiLCJjbG9zZWRWaXN1YWxWaWV3cG9ydEhlaWdodCIsInNldFRpbWVvdXQiLCJrZXlib2FyZEhlaWdodCIsInNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXMiLCJzY3JvbGxQYXJlbnQiLCJzY3JvbGxSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicmVjdCIsImJvdHRvbSIsInRvcCIsIm5ld1Njcm9sbFRvcCIsInNjcm9sbFRvcCIsInNjcm9sbFRvIiwiYmVoYXZpb3IiLCJvbkZvY3VzSW4iLCJlIiwidGFyZ2V0Iiwib25Gb2N1c091dCIsImNsZWFyVGltZW91dCIsImNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCIsImNyZWF0ZUVsZW1lbnQiLCJhdXRvZm9jdXMiLCJhZGRFdmVudExpc3RlbmVyIiwiYmx1ciIsInJlbW92ZSIsImFwcGVuZCIsInNldHVwTW9iaWxlRXZlbnRMaXN0ZW5lcnMiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RvbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuL2xvZ2dlcidcblxuY29uc3QgS0VZQk9BUkRfQU5JTUFUSU9OX01TID0gMjUwXG5cbi8qKlxuICogR2V0IHRoZSBuZWFyZXN0IHZlcnRpY2FsbHkgc2Nyb2xsYWJsZSBwYXJlbnQgb2YgYW4gZWxlbWVudFxuICogQHBhcmFtIHsgSFRNTEVsZW1lbnQgfSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gc3RhcnQgd2l0aFxuICogQHJldHVybnMgVGhlIG5lYXJlc3QgdmVydGljYWxseSBzY3JvbGxhYmxlIHBhcmVudCBlbGVtZW50XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWZXJ0aWNhbGx5U2Nyb2xsYWJsZVBhcmVudCA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRsZXQgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpXG5cdGNvbnN0IGV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBzdHlsZS5wb3NpdGlvbiA9PT0gJ2Fic29sdXRlJ1xuXHRjb25zdCBvdmVyZmxvd1JlZ2V4ID0gLyhhdXRvfHNjcm9sbHxoaWRkZW4pL1xuXG5cdGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG5cdFx0c3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcblx0XHRpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIGNvbnRpbnVlXG5cdFx0aWYgKG92ZXJmbG93UmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdyArIHN0eWxlLm92ZXJmbG93WSkgJiYgcGFyZW50LnNjcm9sbEhlaWdodCA+IHBhcmVudC5jbGllbnRIZWlnaHQpXG5cdFx0XHRyZXR1cm4gcGFyZW50XG5cdH1cblx0cmV0dXJuIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnRcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGZpcnN0IHBhcmVudCB0aGF0IGhhcyB0aGUgZ2l2ZW4gY2xhc3NOYW1lIGluIGl0cyBjbGFzc0xpc3RcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSB0YXJnZXQgZWxlbWVudFxuICogQHBhcmFtIGNsYXNzTmFtZSBUaGUgY2xhc3NOYW1lIHRvIG1hdGNoXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFBhcmVudEVsZW1lbnRXaXRoQ2xhc3NOYW1lID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuXHRmb3IgKGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQ7IChwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCk7ICkge1xuXHRcdGlmIChwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHJldHVybiBwYXJlbnRcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgdGhlIGRldmljZSBiZWluZyB1c2VkIGlzIG9uZSBvZiBzZXZlcmFsIG1haW5zdHJlYW0gbW9iaWxlIGRldmljZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTW9iaWxlRGV2aWNlID0gKCkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdC9hbmRyb2lkfGlwYWR8aXBvZHxpcGhvbmUvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8XG5cdFx0KC9tYWNpbnRvc2gvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cylcblx0KVxufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgdGhlIGRldmljZSBpcyB1c2luZyBhbiBleHRlcm5hbCBrZXlib2FyZCB2cy4gdGhlIG5hdGl2ZSBvbi1zY3JlZW4gT1Mga2V5Ym9hcmQuICovXG5leHBvcnQgY29uc3QgaGFzRXh0ZXJuYWxLZXlib2FyZCA9ICgpOiBib29sZWFuIHwgdW5kZWZpbmVkID0+ICh3aW5kb3cgYXMgYW55KS5oYXNFeHRlcm5hbEtleWJvYXJkXG5cbi8qKlxuICogU2V0cyBgd2luZG93Lmhhc0V4dGVybmFsS2V5Ym9hcmRgLCByZXR1cm5lZCBieSBgaGFzRXh0ZXJuYWxLZXlib2FyZGAuXG4gKi9cbmNvbnN0IHNldEhhc0V4dGVybmFsS2V5Ym9hcmQgPSAoaGFzRXh0ZXJuYWxLZXlib2FyZDogYm9vbGVhbikgPT4ge1xuXHRnZXRMb2dnZXIoKS5kZWJ1ZygnaGFzRXh0ZXJuYWxLZXlib2FyZCcsIGhhc0V4dGVybmFsS2V5Ym9hcmQpXG5cdGNvbnN0IHdpbmRvd1dpdGhvdXRUeXBlID0gd2luZG93IGFzIGFueVxuXHR3aW5kb3dXaXRob3V0VHlwZS5oYXNFeHRlcm5hbEtleWJvYXJkID0gaGFzRXh0ZXJuYWxLZXlib2FyZFxufVxuXG4vKipcbiAqIDEwMHZoIGlzIGtpbmQgb2YgYuKKmHJrZWQgb24gbW9iaWxlIHNhZmFyaSwgd2UgaGF2ZSB0byBzZXQgaXQgcHJvZ3JhbW1hdGljYWxseSBoZXJlXG4gKiBzbyB3ZSBjYW4gY2FsY3VsYXRlIGRldmljZS1pbmRlcGVuZGVudCB2aWV3cG9ydCBoZWlnaHRzXG4gKiBodHRwczovL2FsbHRoaW5nc3NtaXR0eS5jb20vMjAyMC8wNS8xMS9jc3MtZml4LWZvci0xMDB2aC1pbi1tb2JpbGUtd2Via2l0L1xuICpcbiAqIFNldHMgdGhlIENTUyB2YXJpYWJsZSBgLS12aXN1YWwtdmlld3BvcnQtaGVpZ2h0YCBvbiB0aGUgYGRvY3VtZW50RWxlbWVudGAvPGh0bWw+LlxuICpcbiAqL1xuY29uc3Qgc2V0VmlzdWFsVmlld3BvcnRIZWlnaHRWYXIgPSAoKSA9PiB7XG5cdGNvbnN0IGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0ID8gdmlzdWFsVmlld3BvcnQuaGVpZ2h0IDogMFxuXHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tdmlzdWFsLXZpZXdwb3J0LWhlaWdodCcsIGAke2hlaWdodH1weGApXG59XG5cbi8qKlxuICogSXMgdGhlIGdpdmVuIGVsZW1lbnQgY2FwYWJsZSBvZiB0ZXh0IGlucHV0P1xuICpcbiAqIEBwYXJhbSBlbCBBbiBIVE1MIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGlzVGV4dElucHV0ID0gKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuXHRjb25zdCB0YWdOYW1lID0gZWwudGFnTmFtZSAmJiBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKClcblx0aWYgKHRhZ05hbWUgPT09ICd0ZXh0YXJlYScpIHJldHVybiB0cnVlXG5cdGlmICh0YWdOYW1lID09PSAnaW5wdXQnKSB7XG5cdFx0Y29uc3QgaW5wdXRFbCA9IGVsIGFzIEhUTUxJbnB1dEVsZW1lbnRcblx0XHRyZXR1cm4gaW5wdXRFbC50eXBlICE9PSAnYnV0dG9uJyAmJiBpbnB1dEVsLnR5cGUgIT09ICdyYWRpbycgJiYgaW5wdXRFbC50eXBlICE9PSAnY2hlY2tib3gnXG5cdH1cblx0Ly8gUXVpbGwgZWRpdG9yXG5cdHJldHVybiB0YWdOYW1lID09PSAnZGl2JyAmJiBlbC5jbGFzc05hbWUuaW5jbHVkZXMoJ3FsLWVkaXRvcicpICYmIGVsLmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnXG59XG5cbmxldCB1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1c1RpbWVvdXQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxubGV0IHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuY29uc3QgdXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXMgPSAoKSA9PiB7XG5cdGNvbnN0IGNsb3NlZFZpc3VhbFZpZXdwb3J0SGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAwXG5cdC8vIHdhaXQgZm9yIHRoZSBrZXlib2FyZCBhbmltYXRpb25cblx0dXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdC8vIGZpbmQgdGhlIGtleWJvYXJkIGhlaWdodCBiYXNlZCBvbiB0aGUgZGlmZmVyZW5jZSBpbiB2aWV3cG9ydCBoZWlnaHRcblx0XHRjb25zdCBrZXlib2FyZEhlaWdodCA9IGNsb3NlZFZpc3VhbFZpZXdwb3J0SGVpZ2h0IC0gKHZpc3VhbFZpZXdwb3J0ID8gdmlzdWFsVmlld3BvcnQuaGVpZ2h0IDogMClcblx0XHQvLyBvbiBmaXJzdC1sb2FkIHRoZSBpbnB1dCBmb2N1cyBjYW4gZmFpbFxuXHRcdC8vIHdoZW4gdGhpcyBoYXBwZW5zIHRoZSBoZWlnaHQgaXMgMCwgYW5kIHRoaXMgT05MWSBoYXBwZW5zIHdoZW4gdGhlcmUgaXMgTk9UIGFuIGV4dGVybmFsIGtleWJvYXJkXG5cdFx0aWYgKGtleWJvYXJkSGVpZ2h0ID09PSAwICYmIGhhc0V4dGVybmFsS2V5Ym9hcmQoKSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRzZXRIYXNFeHRlcm5hbEtleWJvYXJkKGZhbHNlKVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBpZiB0aGUga2V5Ym9hcmQgaGVpZ2h0IGlzIGdyZWF0ZXIgdGhhbiAxMDAsIHRoYXQgbWVhbnMgdGhlIGZ1bGwgb25zY3JlZW4ga2V5Ym9hcmQgZGlzcGxheWVkXG5cdFx0XHQvLyBvdGhlcndpc2UsIG9ubHkgdGhlIHNtYWxsIGNvbnRleHQgbWVudSBkaXNwbGF5ZWQsIG1lYW5pbmcgdGhlcmUgaXMgYW4gZXh0ZXJuYWwga2V5Ym9hcmRcblx0XHRcdHNldEhhc0V4dGVybmFsS2V5Ym9hcmQoa2V5Ym9hcmRIZWlnaHQgPCAxMDApXG5cdFx0fVxuXG5cdFx0dXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0ID0gdW5kZWZpbmVkXG5cdH0sIEtFWUJPQVJEX0FOSU1BVElPTl9NUylcbn1cblxuY29uc3Qgc2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1cyA9IChlbDogSFRNTEVsZW1lbnQpID0+IHtcblx0Ly8gd2FpdCBmb3IgdGhlIGtleWJvYXJkIGFuaW1hdGlvblxuXHRzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcblx0XHQvLyBhZnRlciB0aGUga2V5Ym9hcmQgaXMgb3BlbiwgY2hlY2sgZm9yIHRoZSBlbOKAmXMgc2Nyb2xsYWJsZSBwYXJlbnQsIGFzIGl0IGNvdWxkIGhhdmUganVzdCBiZWNvbWUgc2Nyb2xsYWJsZVxuXHRcdGNvbnN0IHNjcm9sbFBhcmVudCA9IGdldFZlcnRpY2FsbHlTY3JvbGxhYmxlUGFyZW50KGVsKVxuXHRcdC8vIGlmIHRoZSBlbCBoYXMgYSBzY3JvbGxhYmxlIHBhcmVudCBvdGhlciB0aGFuIHRoZSBkb2N1bWVudCwgc2Nyb2xsIGl0IGJhY2sgaW50byB2aWV3XG5cdFx0aWYgKHNjcm9sbFBhcmVudCAmJiBzY3JvbGxQYXJlbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuXHRcdFx0Y29uc3Qgc2Nyb2xsUmVjdCA9IHNjcm9sbFBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXHRcdFx0Y29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cdFx0XHQvLyBvbmx5IHNjcm9sbCBpbnRvIHZpZXcgaWYgb3V0c2lkZSBvZiB0aGUgc2Nyb2xsIHBhcmVudCBib3VuZHNcblx0XHRcdGlmIChyZWN0LmJvdHRvbSA8IHNjcm9sbFJlY3QudG9wIHx8IHJlY3QudG9wID4gc2Nyb2xsUmVjdC5ib3R0b20pIHtcblx0XHRcdFx0Y29uc3QgbmV3U2Nyb2xsVG9wID0gc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCArIHJlY3QudG9wIC0gc2Nyb2xsUmVjdC50b3AgLSAxMFxuXHRcdFx0XHRnZXRMb2dnZXIoKS5kZWJ1Zygnc2Nyb2xsVG9FbCcsIG5ld1Njcm9sbFRvcClcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cblx0XHRcdFx0aWYgKHNjcm9sbFBhcmVudC5zY3JvbGxUbykge1xuXHRcdFx0XHRcdHNjcm9sbFBhcmVudC5zY3JvbGxUbyh7IHRvcDogbmV3U2Nyb2xsVG9wLCBiZWhhdmlvcjogJ3Ntb290aCcgfSlcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzVGltZW91dCA9IHVuZGVmaW5lZFxuXHR9LCBLRVlCT0FSRF9BTklNQVRJT05fTVMpXG59XG5cbi8qKlxuICogRXZlbnQgaGFuZGxlciBmb3IgXCJmb2N1c2luXCIgZXZlbnQuXG4gKlxuICogXCJmb2N1c2luXCIgYnViYmxlcyB1cCBmcm9tIGFsbCBmb2N1cyBldmVudHMsIHNvIHVzZXMgYGlzVGV4dElucHV0YCB0byBvbmx5IHJlYWN0IHRvIFwia2V5Ym9hcmRcIiBmb2N1cyBldmVudHMuXG4gKlxuICogQ2hlY2tzIGZvciBleHRlcm5hbCBrZXlib2FyZCBhbmQgc2Nyb2xscyB0byB0aGUgZm9jdXNlZCBlbGVtZW50IGFmdGVyIGFueSBhbmltYXRpb25zLCBlLmcuIGtleWJvYXJkIG9wZW4uXG4gKlxuICovXG5jb25zdCBvbkZvY3VzSW4gPSAoZTogRXZlbnQpID0+IHtcblx0aWYgKCFlLnRhcmdldCB8fCAhaXNUZXh0SW5wdXQoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSByZXR1cm5cblx0dXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXMoKVxuXHRzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVxufVxuXG4vKipcbiAqIEV2ZW50IGhhbmRsZXIgZm9yIFwiZm9jdXNvdXRcIiBldmVudC5cbiAqXG4gKiBcImZvY3Vzb3V0XCIgYnViYmxlcyB1cCBmcm9tIGFsbCBmb2N1cyBldmVudHMsIHNvIHVzZXMgYGlzVGV4dElucHV0YCB0byBvbmx5IHJlYWN0IHRvIFwia2V5Ym9hcmRcIiBmb2N1cyBldmVudHMuXG4gKlxuICogQ2xlYXJzIGFueSBwZW5kaW5nIHRpbWVvdXRzIGZyb20gXCJmb2N1c2luXCIgZXZlbnRzLlxuICpcbiAqL1xuY29uc3Qgb25Gb2N1c091dCA9IChlOiBFdmVudCkgPT4ge1xuXHRpZiAoIWUudGFyZ2V0IHx8ICFpc1RleHRJbnB1dChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHJldHVyblxuXHRpZiAodXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0KSB7XG5cdFx0d2luZG93LmNsZWFyVGltZW91dCh1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1c1RpbWVvdXQpXG5cdFx0dXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0ID0gdW5kZWZpbmVkXG5cdH1cblx0aWYgKHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0KSB7XG5cdFx0d2luZG93LmNsZWFyVGltZW91dChzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzVGltZW91dClcblx0XHRzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzVGltZW91dCA9IHVuZGVmaW5lZFxuXHR9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGRldmljZSBpcyB1c2luZyBhbiBleHRlcm5hbCBrZXlib2FyZCBieSBhcHBlbmRpbmcgYW4gYGlucHV0YCBhbmQgZm9jdXNpbmcgaXQuXG4gKlxuICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIGBvbkZvY3VzSW5gIGV2ZW50IGhhbmRsZXIsIHdoaWNoIHVwZGF0ZXMgdGhlIGBoYXNFeHRlcm5hbEtleWJvYXJkYCBnbG9iYWwuXG4gKi9cbmNvbnN0IGNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCA9ICgpID0+IHtcblx0Y29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpXG5cdGVsLnR5cGUgPSAndGV4dCdcblx0ZWwuYXV0b2ZvY3VzID0gdHJ1ZVxuXHRlbC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgKCkgPT4ge1xuXHRcdC8vIHJlbW92ZSB0aGUgaW5wdXQgYWZ0ZXIgdGhlIGtleWJvYXJkIGhhcyBkaXNwbGF5ZWQsIHBsdXMgYSBzbWFsbCBidWZmZXJcblx0XHR3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRlbC5ibHVyKClcblx0XHRcdGVsLnJlbW92ZSgpXG5cdFx0fSwgS0VZQk9BUkRfQU5JTUFUSU9OX01TICsgMTAwKVxuXHR9KVxuXHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kKGVsKVxufVxuXG5leHBvcnQgY29uc3Qgc2V0dXBNb2JpbGVFdmVudExpc3RlbmVycyA9ICgpID0+IHtcblx0aWYgKCFpc01vYmlsZURldmljZSgpIHx8ICF2aXN1YWxWaWV3cG9ydCkgcmV0dXJuXG5cblx0Ly8gc2V0IHZpZXdwb3J0IGhlaWdodCB2YXIgYXQgc2V0dXBcblx0c2V0VmlzdWFsVmlld3BvcnRIZWlnaHRWYXIoKVxuXG5cdC8vIGFkZCBldmVudCBsaXN0ZW5lcnNcblx0dmlzdWFsVmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xuXHRcdHNldFZpc3VhbFZpZXdwb3J0SGVpZ2h0VmFyKClcblxuXHRcdC8vIGtlZXAgdGhlIGRvY3VtZW50IGVsZW1lbnQgc2Nyb2xsZWQgdG8gdGhlIHRvcCBpZiBhIFJlYWN0TW9kYWwgaXMgb3BlblxuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnUmVhY3RNb2RhbF9fQm9keS0tb3BlbicpKSB7XG5cdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gMFxuXHRcdH1cblx0fSlcblx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBvbkZvY3VzSW4pXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIG9uRm9jdXNPdXQpXG5cblx0Ly8gY2hlY2sgZm9yIGV4dGVybmFsIGtleWJvYXJkIGF0IHNldHVwXG5cdGNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCgpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLHFCQUFxQixHQUFHLEdBQUc7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQyw2QkFBNkIsR0FBSUMsT0FBb0IsSUFBSztFQUN0RSxJQUFJQyxLQUFLLEdBQUdDLGdCQUFnQixDQUFDRixPQUFPLENBQUM7RUFDckMsTUFBTUcsbUJBQW1CLEdBQUdGLEtBQUssQ0FBQ0csUUFBUSxLQUFLLFVBQVU7RUFDekQsTUFBTUMsYUFBYSxHQUFHLHNCQUFzQjtFQUU1QyxLQUFLLElBQUlDLE1BQTBCLEdBQUdOLE9BQU8sRUFBR00sTUFBTSxHQUFHQSxNQUFNLENBQUNDLGFBQWEsR0FBSztJQUNqRk4sS0FBSyxHQUFHQyxnQkFBZ0IsQ0FBQ0ksTUFBTSxDQUFDO0lBQ2hDLElBQUlILG1CQUFtQixJQUFJRixLQUFLLENBQUNHLFFBQVEsS0FBSyxRQUFRLEVBQUU7SUFDeEQsSUFBSUMsYUFBYSxD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U0FBUztFQUN2RDtFQUNBLElBQUl5QixnQ0FBZ0MsRUFBRTtJQUNyQ25CLE1BQU0sQ0FBQ3VDLFlBQVksQ0FBQ3BCLGdDQUFnQyxDQUFDO0lBQ3JEQSxnQ0FBZ0MsR0FBR3pCLFNBQVM7RUFDN0M7QUFDRCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOEMsd0JBQXdCLEdBQUdBLENBQUEsS0FBTTtFQUN0QyxNQUFNN0IsRUFBRSxHQUFHeEIsUUFBUSxDQUFDc0QsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUMxQzlCLEVBQUUsQ0FBQ0ksSUFBSSxHQUFHLE1BQU07RUFDaEJKLEVBQUUsQ0FBQytCLFNBQVMsR0FBRyxJQUFJO0VBQ25CL0IsRUFBRSxDQUFDZ0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU07SUFDcEM7SUFDQTNDLE1BQU0sQ0FBQ3NCLFVBQVUsQ0FBQyxNQUFNO01BQ3ZCWCxFQUFFLENBQUNpQyxJQUFJLENBQUMsQ0FBQztNQUNUakMsRUFBRSxDQUFDa0MsTUFBTSxDQUFDLENBQUM7SUFDWixDQUFDLEVBQUV6RSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7RUFDaEMsQ0FBQyxDQUFDO0VBQ0ZlLFFBQVEsQ0FBQ3FCLGVBQWUsQ0FBQ3NDLE1BQU0sQ0FBQ25DLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRU0sTUFBTW9DLHlCQUF5QixHQUFHQSxDQUFBLEtBQU07RUFDOUMsSUFBSSxDQUFDcEQsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDWSxjQUFjLEVBQUU7O0VBRTFDO0VBQ0FGLDBCQUEwQixDQUFDLENBQUM7O0VBRTVCO0VBQ0FFLGNBQWMsQ0FBQ29DLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNO0lBQy9DdEMsMEJBQTBCLENBQUMsQ0FBQzs7SUFFNUI7SUFDQSxJQUFJbEIsUUFBUSxDQUFDNkQsSUFBSSxDQUFDeEQsU0FBUyxDQUFDQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsRUFBRTtNQUMvRE4sUUFBUSxDQUFDcUIsZUFBZSxDQUFDd0IsU0FBUyxHQUFHLENBQUM7SUFDdkM7RUFDRCxDQUFDLENBQUM7RUFDRmhDLE1BQU0sQ0FBQzJDLGdCQUFnQixDQUFDLFNBQVMsRUFBRVIsU0FBUyxDQUFDO0VBQzdDbkMsTUFBTSxDQUFDMkMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFTCxVQUFVLENBQUM7O0VBRS9DO0VBQ0FFLHdCQUF3QixDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUFBbkQsT0FBQSxDQUFBMEQseUJBQUEsR0FBQUEseUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIktFWUJPQVJEX0FOSU1BVElPTl9NUyIsImdldFZlcnRpY2FsbHlTY3JvbGxhYmxlUGFyZW50IiwiZWxlbWVudCIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZG9jdW1lbnQiLCJzY3JvbGxpbmdFbGVtZW50IiwiZXhwb3J0cyIsImdldEZpcnN0UGFyZW50RWxlbWVudFdpdGhDbGFzc05hbWUiLCJjbGFzc05hbWUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInVuZGVmaW5lZCIsImlzTW9iaWxlRGV2aWNlIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwibWF4VG91Y2hQb2ludHMiLCJoYXNFeHRlcm5hbEtleWJvYXJkIiwid2luZG93Iiwic2V0SGFzRXh0ZXJuYWxLZXlib2FyZCIsImdldExvZ2dlciIsImRlYnVnIiwid2luZG93V2l0aG91dFR5cGUiLCJzZXRWaXN1YWxWaWV3cG9ydEhlaWdodFZhciIsImhlaWdodCIsInZpc3VhbFZpZXdwb3J0IiwiZG9jdW1lbnRFbGVtZW50Iiwic2V0UHJvcGVydHkiLCJpc1RleHRJbnB1dCIsImVsIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiaW5wdXRFbCIsInR5cGUiLCJpbmNsdWRlcyIsImNvbnRlbnRFZGl0YWJsZSIsInVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dCIsInNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0IiwidXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXMiLCJjbG9zZWRWaXN1YWxWaWV3cG9ydEhlaWdodCIsInNldFRpbWVvdXQiLCJrZXlib2FyZEhlaWdodCIsInNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXMiLCJzY3JvbGxQYXJlbnQiLCJzY3JvbGxSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicmVjdCIsImJvdHRvbSIsInRvcCIsIm5ld1Njcm9sbFRvcCIsInNjcm9sbFRvcCIsInNjcm9sbFRvIiwiYmVoYXZpb3IiLCJvbkZvY3VzSW4iLCJlIiwidGFyZ2V0Iiwib25Gb2N1c091dCIsImNsZWFyVGltZW91dCIsImNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCIsImNyZWF0ZUVsZW1lbnQiLCJhdXRvZm9jdXMiLCJhZGRFdmVudExpc3RlbmVyIiwiYmx1ciIsInJlbW92ZSIsImFwcGVuZCIsInNldHVwTW9iaWxlRXZlbnRMaXN0ZW5lcnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZG9tLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJ1xuXG5jb25zdCBLRVlCT0FSRF9BTklNQVRJT05fTVMgPSAyNTBcblxuLyoqXG4gKiBHZXQgdGhlIG5lYXJlc3QgdmVydGljYWxseSBzY3JvbGxhYmxlIHBhcmVudCBvZiBhbiBlbGVtZW50XG4gKiBAcGFyYW0geyBIVE1MRWxlbWVudCB9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBzdGFydCB3aXRoXG4gKiBAcmV0dXJucyBUaGUgbmVhcmVzdCB2ZXJ0aWNhbGx5IHNjcm9sbGFibGUgcGFyZW50IGVsZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZlcnRpY2FsbHlTY3JvbGxhYmxlUGFyZW50ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcblx0Y29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG5cdGNvbnN0IG92ZXJmbG93UmVnZXggPSAvKGF1dG98c2Nyb2xsfGhpZGRlbikvXG5cblx0Zm9yIChsZXQgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50OyAocGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQpOyApIHtcblx0XHRzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUocGFyZW50KVxuXHRcdGlmIChleGNsdWRlU3RhdGljUGFyZW50ICYmIHN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykgY29udGludWVcblx0XHRpZiAob3ZlcmZsb3dSZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93ICsgc3R5bGUub3ZlcmZsb3dZKSAmJiBwYXJlbnQuc2Nyb2xsSGVpZ2h0ID4gcGFyZW50LmNsaWVudEhlaWdodClcblx0XHRcdHJldHVybiBwYXJlbnRcblx0fVxuXHRyZXR1cm4gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudFxufVxuXG4vKipcbiAqIEdldCB0aGUgZmlyc3QgcGFyZW50IHRoYXQgaGFzIHRoZSBnaXZlbiBjbGFzc05hbWUgaW4gaXRzIGNsYXNzTGlzdFxuICogQHBhcmFtIGVsZW1lbnQgVGhlIHRhcmdldCBlbGVtZW50XG4gKiBAcGFyYW0gY2xhc3NOYW1lIFRoZSBjbGFzc05hbWUgdG8gbWF0Y2hcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZpcnN0UGFyZW50RWxlbWVudFdpdGhDbGFzc05hbWUgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG5cdGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG5cdFx0aWYgKHBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSkgcmV0dXJuIHBhcmVudFxuXHR9XG5cdHJldHVybiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZGV2aWNlIGJlaW5nIHVzZWQgaXMgb25lIG9mIHNldmVyYWwgbWFpbnN0cmVhbSBtb2JpbGUgZGV2aWNlc1xuICovXG5leHBvcnQgY29uc3QgaXNNb2JpbGVEZXZpY2UgPSAoKSA9PiB7XG5cdHJldHVybiAoXG5cdFx0L2FuZHJvaWR8aXBhZHxpcG9kfGlwaG9uZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHxcblx0XHQoL21hY2ludG9zaC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzKVxuXHQpXG59XG5cbi8qKiBSZXR1cm4gd2hldGhlciB0aGUgZGV2aWNlIGlzIHVzaW5nIGFuIGV4dGVybmFsIGtleWJvYXJkIHZzLiB0aGUgbmF0aXZlIG9uLXNjcmVlbiBPUyBrZXlib2FyZC4gKi9cbmV4cG9ydCBjb25zdCBoYXNFeHRlcm5hbEtleWJvYXJkID0gKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQgPT4gKHdpbmRvdyBhcyBhbnkpLmhhc0V4dGVybmFsS2V5Ym9hcmRcblxuLyoqXG4gKiBTZXRzIGB3aW5kb3cuaGFzRXh0ZXJuYWxLZXlib2FyZGAsIHJldHVybmVkIGJ5IGBoYXNFeHRlcm5hbEtleWJvYXJkYC5cbiAqL1xuY29uc3Qgc2V0SGFzRXh0ZXJuYWxLZXlib2FyZCA9IChoYXNFeHRlcm5hbEtleWJvYXJkOiBib29sZWFuKSA9PiB7XG5cdGdldExvZ2dlcigpLmRlYnVnKCdoYXNFeHRlcm5hbEtleWJvYXJkJywgaGFzRXh0ZXJuYWxLZXlib2FyZClcblx0Y29uc3Qgd2luZG93V2l0aG91dFR5cGUgPSB3aW5kb3cgYXMgYW55XG5cdHdpbmRvd1dpdGhvdXRUeXBlLmhhc0V4dGVybmFsS2V5Ym9hcmQgPSBoYXNFeHRlcm5hbEtleWJvYXJkXG59XG5cbi8qKlxuICogMTAwdmggaXMga2luZCBvZiBi4oqYcmtlZCBvbiBtb2JpbGUgc2FmYXJpLCB3ZSBoYXZlIHRvIHNldCBpdCBwcm9ncmFtbWF0aWNhbGx5IGhlcmVcbiAqIHNvIHdlIGNhbiBjYWxjdWxhdGUgZGV2aWNlLWluZGVwZW5kZW50IHZpZXdwb3J0IGhlaWdodHNcbiAqIGh0dHBzOi8vYWxsdGhpbmdzc21pdHR5LmNvbS8yMDIwLzA1LzExL2Nzcy1maXgtZm9yLTEwMHZoLWluLW1vYmlsZS13ZWJraXQvXG4gKlxuICogU2V0cyB0aGUgQ1NTIHZhcmlhYmxlIGAtLXZpc3VhbC12aWV3cG9ydC1oZWlnaHRgIG9uIHRoZSBgZG9jdW1lbnRFbGVtZW50YC88aHRtbD4uXG4gKlxuICovXG5jb25zdCBzZXRWaXN1YWxWaWV3cG9ydEhlaWdodFZhciA9ICgpID0+IHtcblx0Y29uc3QgaGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAwXG5cdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS12aXN1YWwtdmlld3BvcnQtaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YClcbn1cblxuLyoqXG4gKiBJcyB0aGUgZ2l2ZW4gZWxlbWVudCBjYXBhYmxlIG9mIHRleHQgaW5wdXQ/XG4gKlxuICogQHBhcmFtIGVsIEFuIEhUTUwgZWxlbWVudFxuICovXG5leHBvcnQgY29uc3QgaXNUZXh0SW5wdXQgPSAoZWw6IEhUTUxFbGVtZW50KSA9PiB7XG5cdGNvbnN0IHRhZ05hbWUgPSBlbC50YWdOYW1lICYmIGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKVxuXHRpZiAodGFnTmFtZSA9PT0gJ3RleHRhcmVhJykgcmV0dXJuIHRydWVcblx0aWYgKHRhZ05hbWUgPT09ICdpbnB1dCcpIHtcblx0XHRjb25zdCBpbnB1dEVsID0gZWwgYXMgSFRNTElucHV0RWxlbWVudFxuXHRcdHJldHVybiBpbnB1dEVsLnR5cGUgIT09ICdidXR0b24nICYmIGlucHV0RWwudHlwZSAhPT0gJ3JhZGlvJyAmJiBpbnB1dEVsLnR5cGUgIT09ICdjaGVja2JveCdcblx0fVxuXHQvLyBRdWlsbCBlZGl0b3Jcblx0cmV0dXJuIHRhZ05hbWUgPT09ICdkaXYnICYmIGVsLmNsYXNzTmFtZS5pbmNsdWRlcygncWwtZWRpdG9yJykgJiYgZWwuY29udGVudEVkaXRhYmxlID09PSAndHJ1ZSdcbn1cblxubGV0IHVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG5sZXQgc2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1c1RpbWVvdXQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuXG5jb25zdCB1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1cyA9ICgpID0+IHtcblx0Y29uc3QgY2xvc2VkVmlzdWFsVmlld3BvcnRIZWlnaHQgPSB2aXN1YWxWaWV3cG9ydCA/IHZpc3VhbFZpZXdwb3J0LmhlaWdodCA6IDBcblx0Ly8gd2FpdCBmb3IgdGhlIGtleWJvYXJkIGFuaW1hdGlvblxuXHR1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1c1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0Ly8gZmluZCB0aGUga2V5Ym9hcmQgaGVpZ2h0IGJhc2VkIG9uIHRoZSBkaWZmZXJlbmNlIGluIHZpZXdwb3J0IGhlaWdodFxuXHRcdGNvbnN0IGtleWJvYXJkSGVpZ2h0ID0gY2xvc2VkVmlzdWFsVmlld3BvcnRIZWlnaHQgLSAodmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAwKVxuXHRcdC8vIG9uIGZpcnN0LWxvYWQgdGhlIGlucHV0IGZvY3VzIGNhbiBmYWlsXG5cdFx0Ly8gd2hlbiB0aGlzIGhhcHBlbnMgdGhlIGhlaWdodCBpcyAwLCBhbmQgdGhpcyBPTkxZIGhhcHBlbnMgd2hlbiB0aGVyZSBpcyBOT1QgYW4gZXh0ZXJuYWwga2V5Ym9hcmRcblx0XHRpZiAoa2V5Ym9hcmRIZWlnaHQgPT09IDAgJiYgaGFzRXh0ZXJuYWxLZXlib2FyZCgpID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHNldEhhc0V4dGVybmFsS2V5Ym9hcmQoZmFsc2UpXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGlmIHRoZSBrZXlib2FyZCBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuIDEwMCwgdGhhdCBtZWFucyB0aGUgZnVsbCBvbnNjcmVlbiBrZXlib2FyZCBkaXNwbGF5ZWRcblx0XHRcdC8vIG90aGVyd2lzZSwgb25seSB0aGUgc21hbGwgY29udGV4dCBtZW51IGRpc3BsYXllZCwgbWVhbmluZyB0aGVyZSBpcyBhbiBleHRlcm5hbCBrZXlib2FyZFxuXHRcdFx0c2V0SGFzRXh0ZXJuYWxLZXlib2FyZChrZXlib2FyZEhlaWdodCA8IDEwMClcblx0XHR9XG5cblx0XHR1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1c1RpbWVvdXQgPSB1bmRlZmluZWRcblx0fSwgS0VZQk9BUkRfQU5JTUFUSU9OX01TKVxufVxuXG5jb25zdCBzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzID0gKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuXHQvLyB3YWl0IGZvciB0aGUga2V5Ym9hcmQgYW5pbWF0aW9uXG5cdHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdC8vIGFmdGVyIHRoZSBrZXlib2FyZCBpcyBvcGVuLCBjaGVjayBmb3IgdGhlIGVs4oCZcyBzY3JvbGxhYmxlIHBhcmVudCwgYXMgaXQgY291bGQgaGF2ZSBqdXN0IGJlY29tZSBzY3JvbGxhYmxlXG5cdFx0Y29uc3Qgc2Nyb2xsUGFyZW50ID0gZ2V0VmVydGljYWxseVNjcm9sbGFibGVQYXJlbnQoZWwpXG5cdFx0Ly8gaWYgdGhlIGVsIGhhcyBhIHNjcm9sbGFibGUgcGFyZW50IG90aGVyIHRoYW4gdGhlIGRvY3VtZW50LCBzY3JvbGwgaXQgYmFjayBpbnRvIHZpZXdcblx0XHRpZiAoc2Nyb2xsUGFyZW50ICYmIHNjcm9sbFBhcmVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG5cdFx0XHRjb25zdCBzY3JvbGxSZWN0ID0gc2Nyb2xsUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cdFx0XHRjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcblx0XHRcdC8vIG9ubHkgc2Nyb2xsIGludG8gdmlldyBpZiBvdXRzaWRlIG9mIHRoZSBzY3JvbGwgcGFyZW50IGJvdW5kc1xuXHRcdFx0aWYgKHJlY3QuYm90dG9tIDwgc2Nyb2xsUmVjdC50b3AgfHwgcmVjdC50b3AgPiBzY3JvbGxSZWN0LmJvdHRvbSkge1xuXHRcdFx0XHRjb25zdCBuZXdTY3JvbGxUb3AgPSBzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wICsgcmVjdC50b3AgLSBzY3JvbGxSZWN0LnRvcCAtIDEwXG5cdFx0XHRcdGdldExvZ2dlcigpLmRlYnVnKCdzY3JvbGxUb0VsJywgbmV3U2Nyb2xsVG9wKVxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuXHRcdFx0XHRpZiAoc2Nyb2xsUGFyZW50LnNjcm9sbFRvKSB7XG5cdFx0XHRcdFx0c2Nyb2xsUGFyZW50LnNjcm9sbFRvKHsgdG9wOiBuZXdTY3JvbGxUb3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgPSBuZXdTY3JvbGxUb3Bcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0ID0gdW5kZWZpbmVkXG5cdH0sIEtFWUJPQVJEX0FOSU1BVElPTl9NUylcbn1cblxuLyoqXG4gKiBFdmVudCBoYW5kbGVyIGZvciBcImZvY3VzaW5cIiBldmVudC5cbiAqXG4gKiBcImZvY3VzaW5cIiBidWJibGVzIHVwIGZyb20gYWxsIGZvY3VzIGV2ZW50cywgc28gdXNlcyBgaXNUZXh0SW5wdXRgIHRvIG9ubHkgcmVhY3QgdG8gXCJrZXlib2FyZFwiIGZvY3VzIGV2ZW50cy5cbiAqXG4gKiBDaGVja3MgZm9yIGV4dGVybmFsIGtleWJvYXJkIGFuZCBzY3JvbGxzIHRvIHRoZSBmb2N1c2VkIGVsZW1lbnQgYWZ0ZXIgYW55IGFuaW1hdGlvbnMsIGUuZy4ga2V5Ym9hcmQgb3Blbi5cbiAqXG4gKi9cbmNvbnN0IG9uRm9jdXNJbiA9IChlOiBFdmVudCkgPT4ge1xuXHRpZiAoIWUudGFyZ2V0IHx8ICFpc1RleHRJbnB1dChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHJldHVyblxuXHR1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1cygpXG5cdHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXMoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG59XG5cbi8qKlxuICogRXZlbnQgaGFuZGxlciBmb3IgXCJmb2N1c291dFwiIGV2ZW50LlxuICpcbiAqIFwiZm9jdXNvdXRcIiBidWJibGVzIHVwIGZyb20gYWxsIGZvY3VzIGV2ZW50cywgc28gdXNlcyBgaXNUZXh0SW5wdXRgIHRvIG9ubHkgcmVhY3QgdG8gXCJrZXlib2FyZFwiIGZvY3VzIGV2ZW50cy5cbiAqXG4gKiBDbGVhcnMgYW55IHBlbmRpbmcgdGltZW91dHMgZnJvbSBcImZvY3VzaW5cIiBldmVudHMuXG4gKlxuICovXG5jb25zdCBvbkZvY3VzT3V0ID0gKGU6IEV2ZW50KSA9PiB7XG5cdGlmICghZS50YXJnZXQgfHwgIWlzVGV4dElucHV0KGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkgcmV0dXJuXG5cdGlmICh1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1c1RpbWVvdXQpIHtcblx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dClcblx0XHR1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1c1RpbWVvdXQgPSB1bmRlZmluZWRcblx0fVxuXHRpZiAoc2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1c1RpbWVvdXQpIHtcblx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0KVxuXHRcdHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0ID0gdW5kZWZpbmVkXG5cdH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZGV2aWNlIGlzIHVzaW5nIGFuIGV4dGVybmFsIGtleWJvYXJkIGJ5IGFwcGVuZGluZyBhbiBgaW5wdXRgIGFuZCBmb2N1c2luZyBpdC5cbiAqXG4gKiBUaGlzIHdpbGwgdHJpZ2dlciB0aGUgYG9uRm9jdXNJbmAgZXZlbnQgaGFuZGxlciwgd2hpY2ggdXBkYXRlcyB0aGUgYGhhc0V4dGVybmFsS2V5Ym9hcmRgIGdsb2JhbC5cbiAqL1xuY29uc3QgY2hlY2tGb3JFeHRlcm5hbEtleWJvYXJkID0gKCkgPT4ge1xuXHRjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jylcblx0ZWwudHlwZSA9ICd0ZXh0J1xuXHRlbC5hdXRvZm9jdXMgPSB0cnVlXG5cdGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCAoKSA9PiB7XG5cdFx0Ly8gcmVtb3ZlIHRoZSBpbnB1dCBhZnRlciB0aGUga2V5Ym9hcmQgaGFzIGRpc3BsYXllZCwgcGx1cyBhIHNtYWxsIGJ1ZmZlclxuXHRcdHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGVsLmJsdXIoKVxuXHRcdFx0ZWwucmVtb3ZlKClcblx0XHR9LCBLRVlCT0FSRF9BTklNQVRJT05fTVMgKyAxMDApXG5cdH0pXG5cdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmQoZWwpXG59XG5cbmV4cG9ydCBjb25zdCBzZXR1cE1vYmlsZUV2ZW50TGlzdGVuZXJzID0gKCkgPT4ge1xuXHRpZiAoIWlzTW9iaWxlRGV2aWNlKCkgfHwgIXZpc3VhbFZpZXdwb3J0KSByZXR1cm5cblxuXHQvLyBzZXQgdmlld3BvcnQgaGVpZ2h0IHZhciBhdCBzZXR1cFxuXHRzZXRWaXN1YWxWaWV3cG9ydEhlaWdodFZhcigpXG5cblx0Ly8gYWRkIGV2ZW50IGxpc3RlbmVyc1xuXHR2aXN1YWxWaWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7XG5cdFx0c2V0VmlzdWFsVmlld3BvcnRIZWlnaHRWYXIoKVxuXHR9KVxuXHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIG9uRm9jdXNJbilcblx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0Jywgb25Gb2N1c091dClcblxuXHQvLyBjaGVjayBmb3IgZXh0ZXJuYWwga2V5Ym9hcmQgYXQgc2V0dXBcblx0Y2hlY2tGb3JFeHRlcm5hbEtleWJvYXJkKClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsTUFBTUMscUJBQXFCLEdBQUcsR0FBRzs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLDZCQUE2QixHQUFJQyxPQUFvQixJQUFLO0VBQ3RFLElBQUlDLEtBQUssR0FBR0MsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQztFQUNyQyxNQUFNRyxtQkFBbUIsR0FBR0YsS0FBSyxDQUFDRyxRQUFRLEtBQUssVUFBVTtFQUN6RCxNQUFNQyxhQUFhLEdBQUcsc0JBQXNCO0VBRTVDLEtBQUssSUFBSUMsTUFBMEIsR0FBR04sT0FBTyxFQUFHTSxNQUFNLEdBQUdBLE1BQU0sQ0FBQ0MsYUFBYSxHQUFLO0lBQ2pGTixLQUFLLEdBQUdDLGdCQUFnQixDQUFDSSxNQUFNLENBQUM7SUFDaEMsSUFBSUgsbUJBQW1CLElBQUlGLEtBQUssQ0FBQ0csUUFBUSxLQUFLLFFBQVEsRUFBRTtJQUN4RCxJQUFJQyxhQUFhLENBQUNHLElBQUksQ0FBQ1AsS0FBSyxDQUFDUSxRQUFRLEdBQUdSLEtBQUssQ0FBQ1MsU0FBUyxDQUFDLElBQUlKLE1BQU0sQ0FBQ0ssWUFBWSxHQUFHTCxNQUFNLENBQUNNLFlBQVksRUFDcEcsT0FBT04sTUFBTTtFQUNmO0VBQ0EsT0FBT08sUUFBUSxDQUFDQyxnQkFBZ0I7QUFDakMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkFDLE9BQUEsQ0FBQWhCLDZC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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "studiokit-scaffolding-js",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.6-alpha.1.2",
|
|
4
4
|
"description": "Common scaffolding for Studio apps at Purdue",
|
|
5
5
|
"repository": "https://gitlab.com/purdue-informatics/studiokit/studiokit-scaffolding-js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -106,7 +106,6 @@
|
|
|
106
106
|
"@types/quill": "^1.3.10",
|
|
107
107
|
"@types/react-dom": "^17.0.26",
|
|
108
108
|
"@types/react-helmet": "^6.1.0",
|
|
109
|
-
"@types/react-modal": "^3.16.3",
|
|
110
109
|
"@types/react-redux": "^7.1.16",
|
|
111
110
|
"@types/react-router": "^5.1.11",
|
|
112
111
|
"@types/react-router-bootstrap": "~0.24.5",
|
|
@@ -133,7 +132,6 @@
|
|
|
133
132
|
"react-compiler-runtime": "^1.0.0",
|
|
134
133
|
"react-ga4": "^2.1.0",
|
|
135
134
|
"react-helmet": "^6.1.0",
|
|
136
|
-
"react-modal": "^3.16.3",
|
|
137
135
|
"react-quill": "purdue-tlt/react-quill#fix/auto-focus",
|
|
138
136
|
"react-redux": "^7.2.9",
|
|
139
137
|
"react-router": "^5.3.4",
|