@agilemotion/oui-react-js 2.0.11 → 2.0.13
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/dist/InteractionPortalApp.js +30 -2
- package/dist/components/DataGrid.js +41 -1
- package/dist/components/Turnstile.js +151 -0
- package/dist/components/WordDocumentViewer.js +66 -11
- package/dist/components/footer/Footer.js +9 -16
- package/dist/components/layout/Layout.js +10 -2
- package/dist/components/layout/ViewPort.js +7 -4
- package/dist/view/security/LoginInteractionPortal.js +75 -20
- package/dist/view/security/RegisterInteractionPortal.js +216 -0
- package/dist/view/security/joburg-logo.png +0 -0
- package/dist/view/security/joburg.jpg +0 -0
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _Paper = _interopRequireDefault(require("@mui/material/Paper"));
|
|
9
9
|
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
10
10
|
var _Help = _interopRequireDefault(require("@mui/icons-material/Help"));
|
|
11
|
+
var _PersonAdd = _interopRequireDefault(require("@mui/icons-material/PersonAdd"));
|
|
11
12
|
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
12
13
|
var _Security = require("./Security");
|
|
13
14
|
var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
|
|
@@ -24,7 +25,17 @@ var _Footer = _interopRequireDefault(require("../../components/footer/Footer"));
|
|
|
24
25
|
var _Alert = _interopRequireDefault(require("react-bootstrap/Alert"));
|
|
25
26
|
var _loginBasicStyle = _interopRequireDefault(require("../../assets/jss/views/loginBasicStyle"));
|
|
26
27
|
var _reactRouterDom = require("react-router-dom");
|
|
28
|
+
var _joburg = _interopRequireDefault(require("./joburg.jpg"));
|
|
29
|
+
var _joburgLogo = _interopRequireDefault(require("./joburg-logo.png"));
|
|
27
30
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
31
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
33
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
34
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
35
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Hardcoded COJ skyline background — temporary until tenant
|
|
36
|
+
// customisation moves to Cognito and the props-driven props.background
|
|
37
|
+
// can be replaced with per-tenant assets. Webpack resolves the import
|
|
38
|
+
// to a hashed asset URL at build time.
|
|
28
39
|
const LoginInteractionPortal = props => {
|
|
29
40
|
const navigate = (0, _reactRouterDom.useNavigate)();
|
|
30
41
|
const location = (0, _reactRouterDom.useLocation)();
|
|
@@ -54,37 +65,69 @@ const LoginInteractionPortal = props => {
|
|
|
54
65
|
}, []);
|
|
55
66
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
56
67
|
style: {
|
|
57
|
-
backgroundColor: props.background,
|
|
58
68
|
color: props.textColor,
|
|
59
69
|
height: '100%',
|
|
60
|
-
width: '100%'
|
|
70
|
+
width: '100%',
|
|
71
|
+
// Dark gradient overlaid on the COJ skyline keeps the login
|
|
72
|
+
// form readable regardless of the image's exposure. `fixed`
|
|
73
|
+
// anchors the image so the form doesn't slide it out of view
|
|
74
|
+
// when the viewport scrolls. Hardcoded for now — will become
|
|
75
|
+
// a tenant attribute on the Cognito side.
|
|
76
|
+
background: "linear-gradient(rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55)), url(".concat(_joburg.default, ") center center / cover no-repeat fixed"),
|
|
77
|
+
fontFamily: "Gill Sans MT, sans-serif",
|
|
78
|
+
position: 'relative'
|
|
61
79
|
}
|
|
62
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
80
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
81
|
+
src: _joburgLogo.default,
|
|
82
|
+
alt: "City of Johannesburg",
|
|
83
|
+
style: {
|
|
84
|
+
position: 'absolute',
|
|
85
|
+
top: '24px',
|
|
86
|
+
left: '24px',
|
|
87
|
+
height: '64px',
|
|
88
|
+
width: 'auto',
|
|
89
|
+
zIndex: 1,
|
|
90
|
+
backgroundColor: 'white',
|
|
91
|
+
borderRadius: '4px'
|
|
92
|
+
}
|
|
93
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
63
94
|
style: {
|
|
64
95
|
height: '92%',
|
|
65
96
|
width: '100%',
|
|
66
|
-
margin: 'auto'
|
|
67
|
-
paddingTop: 'calc(100vh/6)'
|
|
97
|
+
margin: 'auto'
|
|
68
98
|
}
|
|
69
99
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
70
100
|
style: {
|
|
71
101
|
maxWidth: '400px',
|
|
72
|
-
margin: 'auto'
|
|
102
|
+
margin: 'auto',
|
|
103
|
+
height: '100%',
|
|
104
|
+
display: 'flex',
|
|
105
|
+
justifyContent: 'center',
|
|
106
|
+
alignItems: 'center'
|
|
73
107
|
}
|
|
74
108
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
75
|
-
|
|
76
|
-
|
|
109
|
+
style: _objectSpread(_objectSpread({}, _loginBasicStyle.default.loginContainer), {}, {
|
|
110
|
+
margin: '0 auto'
|
|
111
|
+
})
|
|
112
|
+
}, /*#__PURE__*/_react.default.createElement(_Paper.default, {
|
|
113
|
+
style: _loginBasicStyle.default.paper
|
|
114
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
115
|
+
className: "row no-margin no-padding"
|
|
77
116
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
78
117
|
style: {
|
|
79
118
|
textAlign: 'right',
|
|
80
|
-
|
|
119
|
+
width: '100%',
|
|
120
|
+
display: 'flex',
|
|
121
|
+
justifyContent: 'center',
|
|
122
|
+
marginBottom: '16px'
|
|
81
123
|
}
|
|
82
124
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
83
125
|
src: props.logo,
|
|
84
126
|
alt: "...",
|
|
85
127
|
style: {
|
|
86
|
-
width: '
|
|
87
|
-
|
|
128
|
+
width: '60%',
|
|
129
|
+
paddingBottom: '8px',
|
|
130
|
+
borderBottom: '1px solid #e1e1e1'
|
|
88
131
|
}
|
|
89
132
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
90
133
|
style: {
|
|
@@ -104,11 +147,7 @@ const LoginInteractionPortal = props => {
|
|
|
104
147
|
show: !_Utils.default.isNull(errorMessage),
|
|
105
148
|
onClose: () => setErrorMessage(null),
|
|
106
149
|
dismissible: true
|
|
107
|
-
}, /*#__PURE__*/_react.default.createElement(_Alert.default.Heading, null, "Login error!"), /*#__PURE__*/_react.default.createElement("p", null, errorMessage)) : "", /*#__PURE__*/_react.default.createElement("
|
|
108
|
-
style: _loginBasicStyle.default.loginContainer
|
|
109
|
-
}, /*#__PURE__*/_react.default.createElement(_Paper.default, {
|
|
110
|
-
style: _loginBasicStyle.default.paper
|
|
111
|
-
}, /*#__PURE__*/_react.default.createElement("form", null, /*#__PURE__*/_react.default.createElement(_TextField.default, {
|
|
150
|
+
}, /*#__PURE__*/_react.default.createElement(_Alert.default.Heading, null, "Login error!"), /*#__PURE__*/_react.default.createElement("p", null, errorMessage)) : "", /*#__PURE__*/_react.default.createElement("form", null, /*#__PURE__*/_react.default.createElement(_TextField.default, {
|
|
112
151
|
id: "username",
|
|
113
152
|
required: true,
|
|
114
153
|
error: usernameError,
|
|
@@ -195,13 +234,29 @@ const LoginInteractionPortal = props => {
|
|
|
195
234
|
href: "/forgot-password",
|
|
196
235
|
style: _loginBasicStyle.default.flatButton,
|
|
197
236
|
startIcon: /*#__PURE__*/_react.default.createElement(_Help.default, null)
|
|
198
|
-
}, "Forgot Password?")
|
|
237
|
+
}, "Forgot Password?"), /*#__PURE__*/_react.default.createElement("span", {
|
|
238
|
+
style: {
|
|
239
|
+
color: _loginBasicStyle.default.flatButton.color,
|
|
240
|
+
margin: '0 4px'
|
|
241
|
+
}
|
|
242
|
+
}, "|"), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
243
|
+
disabled: isLoading,
|
|
244
|
+
label: "Register",
|
|
245
|
+
href: "/register",
|
|
246
|
+
style: _loginBasicStyle.default.flatButton,
|
|
247
|
+
startIcon: /*#__PURE__*/_react.default.createElement(_PersonAdd.default, null)
|
|
248
|
+
}, "Register"))))), /*#__PURE__*/_react.default.createElement("div", {
|
|
249
|
+
style: {
|
|
250
|
+
display: 'flex',
|
|
251
|
+
justifyContent: 'center'
|
|
252
|
+
}
|
|
253
|
+
}, /*#__PURE__*/_react.default.createElement(_Footer.default, {
|
|
199
254
|
white: true,
|
|
200
255
|
logo: props.footerLogo,
|
|
201
256
|
text: props.footerText,
|
|
202
|
-
width: props.footerWidth,
|
|
203
|
-
splitterColor: props.footerSplitterColor
|
|
257
|
+
width: /*props.footerWidth*/null,
|
|
258
|
+
splitterColor: /*props.footerSplitterColor*/'transparent'
|
|
204
259
|
})));
|
|
205
260
|
};
|
|
206
261
|
var _default = exports.default = (0, _WithRouter.default)((0, _reactRedux.connect)(dispatch => (0, _redux.bindActionCreators)(_DashboardStore.actionCreators, dispatch))(LoginInteractionPortal));
|
|
207
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9QYXBlciIsIl9CdXR0b24iLCJfSGVscCIsIl9UZXh0RmllbGQiLCJfU2VjdXJpdHkiLCJfSW5wdXRBZG9ybm1lbnQiLCJfSWNvbkJ1dHRvbiIsIl9WaXNpYmlsaXR5IiwiX1Zpc2liaWxpdHlPZmYiLCJfcmVhY3RSZWR1eCIsIl9yZWR1eCIsIl9EYXNoYm9hcmRTdG9yZSIsIl9XaXRoUm91dGVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9VdGlscyIsIl9Gb290ZXIiLCJfQWxlcnQiLCJfbG9naW5CYXNpY1N0eWxlIiwiX3JlYWN0Um91dGVyRG9tIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiTG9naW5JbnRlcmFjdGlvblBvcnRhbCIsInByb3BzIiwibmF2aWdhdGUiLCJ1c2VOYXZpZ2F0ZSIsImxvY2F0aW9uIiwidXNlTG9jYXRpb24iLCJlcnJvck1lc3NhZ2UiLCJzZXRFcnJvck1lc3NhZ2UiLCJSZWFjdCIsInVzZVN0YXRlIiwidXNlcm5hbWVFcnJvciIsInNldFVzZXJuYW1lRXJyb3IiLCJwYXNzd29yZEVycm9yIiwic2V0UGFzc3dvcmRFcnJvciIsInVzZXJuYW1lIiwic2V0VXNlcm5hbWUiLCJwYXNzd29yZCIsInNldFBhc3N3b3JkIiwic2hvd1Bhc3N3b3JkIiwic2V0U2hvd1Bhc3N3b3JkIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiaGFuZGxlQ2xpY2tTaG93UGFzc3dvcmQiLCJoYW5kbGVNb3VzZURvd25QYXNzd29yZCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ1c2VFZmZlY3QiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJjbGVhciIsIlVSTFNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImdldCIsImNvZGUiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiY29sb3IiLCJ0ZXh0Q29sb3IiLCJoZWlnaHQiLCJ3aWR0aCIsIm1hcmdpbiIsInBhZGRpbmdUb3AiLCJtYXhXaWR0aCIsImNsYXNzTmFtZSIsInN0eWxlcyIsInRpdGxlIiwidGV4dEFsaWduIiwic3JjIiwibG9nbyIsImFsdCIsImJvcmRlclJhZGl1cyIsImxlbmd0aCIsInBhZGRpbmdMZWZ0IiwidGl0bGVDb2xvciIsIlV0aWxzIiwiaXNOdWxsIiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwidmFyaWFudCIsInNob3ciLCJvbkNsb3NlIiwiZGlzbWlzc2libGUiLCJIZWFkaW5nIiwibG9naW5Db250YWluZXIiLCJwYXBlciIsImlkIiwicmVxdWlyZWQiLCJlcnJvciIsImxhYmVsIiwidmFsdWUiLCJvbkNoYW5nZSIsInVzZXJuYW1lUHJlc2VudCIsInRhcmdldCIsInRyaW0iLCJtaW5XaWR0aCIsInR5cGUiLCJwYXNzd29yZFByZXNlbnQiLCJJbnB1dFByb3BzIiwiZW5kQWRvcm5tZW50IiwicG9zaXRpb24iLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJlZGdlIiwiZGlzYWJsZWQiLCJsb2dpbiIsInVybCIsImF1dGhlbnRpY2F0ZWQiLCJtZXNzYWdlIiwicmVzcG9uc2UiLCJmb3JjZVBhc3N3b3JkQ2hhbmdlIiwiY29uY2F0Iiwic2Vzc2lvbklkIiwiZW5jb2RlVVJJIiwiSlNPTiIsInN0cmluZ2lmeSIsImNoYWxsYW5nZVBhcmFtZXRlcnMiLCJmdWxsV2lkdGgiLCJsb2dpbkJ0biIsIm1hcmdpblJpZ2h0IiwiYnV0dG9uc0RpdiIsImhyZWYiLCJmbGF0QnV0dG9uIiwic3RhcnRJY29uIiwid2hpdGUiLCJmb290ZXJMb2dvIiwidGV4dCIsImZvb3RlclRleHQiLCJmb290ZXJXaWR0aCIsInNwbGl0dGVyQ29sb3IiLCJmb290ZXJTcGxpdHRlckNvbG9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwid2l0aFJvdXRlciIsImNvbm5lY3QiLCJkaXNwYXRjaCIsImJpbmRBY3Rpb25DcmVhdG9ycyIsImFjdGlvbkNyZWF0b3JzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92aWV3L3NlY3VyaXR5L0xvZ2luSW50ZXJhY3Rpb25Qb3J0YWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQnV0dG9uJztcbmltcG9ydCBIZWxwIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvSGVscCc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGV4dEZpZWxkJztcbmltcG9ydCB7bG9naW59IGZyb20gJy4vU2VjdXJpdHknO1xuaW1wb3J0IElucHV0QWRvcm5tZW50IGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXRBZG9ybm1lbnQnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBWaXNpYmlsaXR5IGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvVmlzaWJpbGl0eSc7XG5pbXBvcnQgVmlzaWJpbGl0eU9mZiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL1Zpc2liaWxpdHlPZmYnO1xuaW1wb3J0IHtjb25uZWN0fSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmltcG9ydCB7YmluZEFjdGlvbkNyZWF0b3JzfSBmcm9tIFwicmVkdXhcIjtcbmltcG9ydCB7YWN0aW9uQ3JlYXRvcnN9IGZyb20gXCIuLi8uLi9yZWR1eC9zdG9yZS9EYXNoYm9hcmRTdG9yZVwiO1xuaW1wb3J0IHdpdGhSb3V0ZXIgZnJvbSAnLi4vLi4vV2l0aFJvdXRlcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBVdGlscyBmcm9tIFwiLi4vLi4vVXRpbHNcIjtcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvZm9vdGVyL0Zvb3RlclwiO1xuaW1wb3J0IEFsZXJ0IGZyb20gXCJyZWFjdC1ib290c3RyYXAvQWxlcnRcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4uLy4uL2Fzc2V0cy9qc3Mvdmlld3MvbG9naW5CYXNpY1N0eWxlXCI7XG5pbXBvcnQge3VzZUxvY2F0aW9uLCB1c2VOYXZpZ2F0ZX0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcblxuY29uc3QgTG9naW5JbnRlcmFjdGlvblBvcnRhbCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gICAgY29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFt1c2VybmFtZUVycm9yLCBzZXRVc2VybmFtZUVycm9yXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcGFzc3dvcmRFcnJvciwgc2V0UGFzc3dvcmRFcnJvcl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3VzZXJuYW1lLCBzZXRVc2VybmFtZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcGFzc3dvcmQsIHNldFBhc3N3b3JkXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtzaG93UGFzc3dvcmQsIHNldFNob3dQYXNzd29yZF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrU2hvd1Bhc3N3b3JkID0gKCkgPT4ge1xuICAgICAgICBzZXRTaG93UGFzc3dvcmQoIXNob3dQYXNzd29yZCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU1vdXNlRG93blBhc3N3b3JkID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICBsZXQgdXNlcm5hbWUgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwidXNlck5hbWVcIik7XG4gICAgICAgIGlmKHVzZXJuYW1lKSB7XG4gICAgICAgICAgICBzZXRVc2VybmFtZSh1c2VybmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29kZSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKS5nZXQoXCJjb2RlXCIpO1xuICAgICAgICBpZihjb2RlKSB7XG4gICAgICAgICAgICBzZXRQYXNzd29yZChjb2RlKTtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcHJvcHMuYmFja2dyb3VuZCxcbiAgICAgICAgICAgIGNvbG9yOiBwcm9wcy50ZXh0Q29sb3IsXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJSdcbiAgICAgICAgfX0+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnOTIlJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6ICdjYWxjKDEwMHZoLzYpJ1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e21heFdpZHRoOiAnNDAwcHgnLCBtYXJnaW46ICdhdXRvJ319PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJyb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmdcIn0gc3R5bGU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7dGV4dEFsaWduOiAncmlnaHQnLCBtYXhXaWR0aDogJzYwJSd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17cHJvcHMubG9nb30gYWx0PVwiLi4uXCIgc3R5bGU9e3t3aWR0aDogJzEwMCUnLCBib3JkZXJSYWRpdXM6ICc0cHgnfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7d2lkdGg6IHByb3BzLnRpdGxlLmxlbmd0aCA9PT0gMCA/ICcwJyA6ICc3MCUnLCB0ZXh0QWxpZ246ICdsZWZ0JywgbWFyZ2luOiAnYXV0bycsIHBhZGRpbmdMZWZ0OiAnMTZweCcsIGNvbG9yOiBwcm9wcy50aXRsZUNvbG9yfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7IVV0aWxzLmlzTnVsbChlcnJvck1lc3NhZ2UpID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5Ub3A6ICcxNnB4JywgbWFyZ2luQm90dG9tOiAnMCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c9eyFVdGlscy5pc051bGwoZXJyb3JNZXNzYWdlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRFcnJvck1lc3NhZ2UobnVsbCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzbWlzc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQuSGVhZGluZz5Mb2dpbiBlcnJvciE8L0FsZXJ0LkhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e2Vycm9yTWVzc2FnZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMubG9naW5Db250YWluZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBhcGVyIHN0eWxlPXtzdHlsZXMucGFwZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3VzZXJuYW1lRXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt1c2VybmFtZSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VybmFtZVByZXNlbnQgPSAhVXRpbHMuaXNOdWxsKGUudGFyZ2V0LnZhbHVlKSAmJiBlLnRhcmdldC52YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRVc2VybmFtZShlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VXNlcm5hbWVFcnJvcighdXNlcm5hbWVQcmVzZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW49XCJub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7bWluV2lkdGg6IFwiMjAwcHhcIiwgd2lkdGg6IFwiMTAwJVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dEZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17cGFzc3dvcmRFcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e3Nob3dQYXNzd29yZCA/ICd0ZXh0JyA6ICdwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cGFzc3dvcmQgfHwgJyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFzc3dvcmRQcmVzZW50ID0gIVV0aWxzLmlzTnVsbChlLnRhcmdldC52YWx1ZSkgJiYgZS50YXJnZXQudmFsdWUudHJpbSgpLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFzc3dvcmQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhc3N3b3JkRXJyb3IoIXBhc3N3b3JkUHJlc2VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luPVwibm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElucHV0UHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRBZG9ybm1lbnQ6IDxJbnB1dEFkb3JubWVudCBwb3NpdGlvbj1cImVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cInRvZ2dsZSBwYXNzd29yZCB2aXNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrU2hvd1Bhc3N3b3JkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93blBhc3N3b3JkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRnZT1cImVuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93UGFzc3dvcmQgPyA8VmlzaWJpbGl0eS8+IDogPFZpc2liaWxpdHlPZmYvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRBZG9ybm1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7bWluV2lkdGg6IFwiMjAwcHhcIiwgd2lkdGg6IFwiMTAwJVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dEZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VybmFtZVByZXNlbnQgPSAhVXRpbHMuaXNOdWxsKHVzZXJuYW1lKSAmJiB1c2VybmFtZS50cmltKCkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhc3N3b3JkUHJlc2VudCA9ICFVdGlscy5pc051bGwocGFzc3dvcmQpICYmIHBhc3N3b3JkLnRyaW0oKS5sZW5ndGggPiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFVzZXJuYW1lRXJyb3IoIXVzZXJuYW1lUHJlc2VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhc3N3b3JkRXJyb3IoIXBhc3N3b3JkUHJlc2VudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJuYW1lUHJlc2VudCAmJiBwYXNzd29yZFByZXNlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luKHByb3BzLnVybCwgdXNlcm5hbWUsIHBhc3N3b3JkLCAoYXV0aGVudGljYXRlZCwgbWVzc2FnZSwgcmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChyZXNwb25zZSkgJiYgcmVzcG9uc2UuZm9yY2VQYXNzd29yZENoYW5nZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGUoYC9jaGFuZ2UtcGFzc3dvcmQ/dXNlcm5hbWU9JHt1c2VybmFtZX0mc2Vzc2lvbklkPSR7cmVzcG9uc2Uuc2Vzc2lvbklkfSZjaGFsbGVuZ2VQYXJhbWVudGVycz0ke2VuY29kZVVSSShKU09OLnN0cmluZ2lmeShyZXNwb25zZS5jaGFsbGFuZ2VQYXJhbWV0ZXJzKSl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZSgnLycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXJyb3JNZXNzYWdlKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIiBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aD17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmxvZ2luQnRufT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZhIGZhLXJlZnJlc2ggZmEtc3BpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e21hcmdpblJpZ2h0OiBcIjhweFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmcgJiYgPHNwYW4+TE9BRElORy4uLjwvc3Bhbj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyFpc0xvYWRpbmcgJiYgPHNwYW4+TE9HSU48L3NwYW4+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuYnV0dG9uc0Rpdn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkZvcmdvdCBQYXNzd29yZD9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2ZvcmdvdC1wYXNzd29yZGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZXMuZmxhdEJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SGVscC8+fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yZ290IFBhc3N3b3JkP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxGb290ZXIgd2hpdGUgbG9nbz17cHJvcHMuZm9vdGVyTG9nb30gdGV4dD17cHJvcHMuZm9vdGVyVGV4dH0gd2lkdGg9e3Byb3BzLmZvb3RlcldpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXR0ZXJDb2xvcj17cHJvcHMuZm9vdGVyU3BsaXR0ZXJDb2xvcn0vPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoUm91dGVyKGNvbm5lY3QoXG4gICAgZGlzcGF0Y2ggPT4gYmluZEFjdGlvbkNyZWF0b3JzKGFjdGlvbkNyZWF0b3JzLCBkaXNwYXRjaClcbikoTG9naW5JbnRlcmFjdGlvblBvcnRhbCkpXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FB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
|
|
262
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9QYXBlciIsIl9CdXR0b24iLCJfSGVscCIsIl9QZXJzb25BZGQiLCJfVGV4dEZpZWxkIiwiX1NlY3VyaXR5IiwiX0lucHV0QWRvcm5tZW50IiwiX0ljb25CdXR0b24iLCJfVmlzaWJpbGl0eSIsIl9WaXNpYmlsaXR5T2ZmIiwiX3JlYWN0UmVkdXgiLCJfcmVkdXgiLCJfRGFzaGJvYXJkU3RvcmUiLCJfV2l0aFJvdXRlciIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfVXRpbHMiLCJfRm9vdGVyIiwiX0FsZXJ0IiwiX2xvZ2luQmFzaWNTdHlsZSIsIl9yZWFjdFJvdXRlckRvbSIsIl9qb2J1cmciLCJfam9idXJnTG9nbyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJMb2dpbkludGVyYWN0aW9uUG9ydGFsIiwicHJvcHMiLCJuYXZpZ2F0ZSIsInVzZU5hdmlnYXRlIiwibG9jYXRpb24iLCJ1c2VMb2NhdGlvbiIsImVycm9yTWVzc2FnZSIsInNldEVycm9yTWVzc2FnZSIsIlJlYWN0IiwidXNlU3RhdGUiLCJ1c2VybmFtZUVycm9yIiwic2V0VXNlcm5hbWVFcnJvciIsInBhc3N3b3JkRXJyb3IiLCJzZXRQYXNzd29yZEVycm9yIiwidXNlcm5hbWUiLCJzZXRVc2VybmFtZSIsInBhc3N3b3JkIiwic2V0UGFzc3dvcmQiLCJzaG93UGFzc3dvcmQiLCJzZXRTaG93UGFzc3dvcmQiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJoYW5kbGVDbGlja1Nob3dQYXNzd29yZCIsImhhbmRsZU1vdXNlRG93blBhc3N3b3JkIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInVzZUVmZmVjdCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImNsZWFyIiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiZ2V0IiwiY29kZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImNvbG9yIiwidGV4dENvbG9yIiwiaGVpZ2h0Iiwid2lkdGgiLCJiYWNrZ3JvdW5kIiwiY29uY2F0IiwiY29qQmFja2dyb3VuZCIsImZvbnRGYW1pbHkiLCJwb3NpdGlvbiIsInNyYyIsImNvakxvZ28iLCJhbHQiLCJ0b3AiLCJsZWZ0IiwiekluZGV4IiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyUmFkaXVzIiwibWFyZ2luIiwibWF4V2lkdGgiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwic3R5bGVzIiwibG9naW5Db250YWluZXIiLCJwYXBlciIsImNsYXNzTmFtZSIsInRleHRBbGlnbiIsIm1hcmdpbkJvdHRvbSIsImxvZ28iLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwidGl0bGUiLCJwYWRkaW5nTGVmdCIsInRpdGxlQ29sb3IiLCJVdGlscyIsImlzTnVsbCIsIm1hcmdpblRvcCIsInZhcmlhbnQiLCJzaG93Iiwib25DbG9zZSIsImRpc21pc3NpYmxlIiwiSGVhZGluZyIsImlkIiwicmVxdWlyZWQiLCJlcnJvciIsImxhYmVsIiwib25DaGFuZ2UiLCJ1c2VybmFtZVByZXNlbnQiLCJ0YXJnZXQiLCJ0cmltIiwibWluV2lkdGgiLCJ0eXBlIiwicGFzc3dvcmRQcmVzZW50IiwiSW5wdXRQcm9wcyIsImVuZEFkb3JubWVudCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImVkZ2UiLCJkaXNhYmxlZCIsImxvZ2luIiwidXJsIiwiYXV0aGVudGljYXRlZCIsIm1lc3NhZ2UiLCJyZXNwb25zZSIsImZvcmNlUGFzc3dvcmRDaGFuZ2UiLCJzZXNzaW9uSWQiLCJlbmNvZGVVUkkiLCJKU09OIiwic3RyaW5naWZ5IiwiY2hhbGxhbmdlUGFyYW1ldGVycyIsImZ1bGxXaWR0aCIsImxvZ2luQnRuIiwibWFyZ2luUmlnaHQiLCJidXR0b25zRGl2IiwiaHJlZiIsImZsYXRCdXR0b24iLCJzdGFydEljb24iLCJ3aGl0ZSIsImZvb3RlckxvZ28iLCJ0ZXh0IiwiZm9vdGVyVGV4dCIsInNwbGl0dGVyQ29sb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJ3aXRoUm91dGVyIiwiY29ubmVjdCIsImRpc3BhdGNoIiwiYmluZEFjdGlvbkNyZWF0b3JzIiwiYWN0aW9uQ3JlYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ZpZXcvc2VjdXJpdHkvTG9naW5JbnRlcmFjdGlvblBvcnRhbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQYXBlciBmcm9tICdAbXVpL21hdGVyaWFsL1BhcGVyJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IEhlbHAgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9IZWxwJztcbmltcG9ydCBQZXJzb25BZGQgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9QZXJzb25BZGQnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICdAbXVpL21hdGVyaWFsL1RleHRGaWVsZCc7XG5pbXBvcnQge2xvZ2lufSBmcm9tICcuL1NlY3VyaXR5JztcbmltcG9ydCBJbnB1dEFkb3JubWVudCBmcm9tICdAbXVpL21hdGVyaWFsL0lucHV0QWRvcm5tZW50JztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgVmlzaWJpbGl0eSBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL1Zpc2liaWxpdHknO1xuaW1wb3J0IFZpc2liaWxpdHlPZmYgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9WaXNpYmlsaXR5T2ZmJztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSBcInJlZHV4XCI7XG5pbXBvcnQge2FjdGlvbkNyZWF0b3JzfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUvRGFzaGJvYXJkU3RvcmVcIjtcbmltcG9ydCB3aXRoUm91dGVyIGZyb20gJy4uLy4uL1dpdGhSb3V0ZXInO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2Zvb3Rlci9Gb290ZXJcIjtcbmltcG9ydCBBbGVydCBmcm9tIFwicmVhY3QtYm9vdHN0cmFwL0FsZXJ0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuLi8uLi9hc3NldHMvanNzL3ZpZXdzL2xvZ2luQmFzaWNTdHlsZVwiO1xuaW1wb3J0IHt1c2VMb2NhdGlvbiwgdXNlTmF2aWdhdGV9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XG4vLyBIYXJkY29kZWQgQ09KIHNreWxpbmUgYmFja2dyb3VuZCDigJQgdGVtcG9yYXJ5IHVudGlsIHRlbmFudFxuLy8gY3VzdG9taXNhdGlvbiBtb3ZlcyB0byBDb2duaXRvIGFuZCB0aGUgcHJvcHMtZHJpdmVuIHByb3BzLmJhY2tncm91bmRcbi8vIGNhbiBiZSByZXBsYWNlZCB3aXRoIHBlci10ZW5hbnQgYXNzZXRzLiBXZWJwYWNrIHJlc29sdmVzIHRoZSBpbXBvcnRcbi8vIHRvIGEgaGFzaGVkIGFzc2V0IFVSTCBhdCBidWlsZCB0aW1lLlxuaW1wb3J0IGNvakJhY2tncm91bmQgZnJvbSBcIi4vam9idXJnLmpwZ1wiO1xuaW1wb3J0IGNvakxvZ28gZnJvbSBcIi4vam9idXJnLWxvZ28ucG5nXCI7XG5cbmNvbnN0IExvZ2luSW50ZXJhY3Rpb25Qb3J0YWwgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gICAgY29uc3QgbG9jYXRpb24gPSB1c2VMb2NhdGlvbigpO1xuICAgIGNvbnN0IFtlcnJvck1lc3NhZ2UsIHNldEVycm9yTWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdXNlcm5hbWVFcnJvciwgc2V0VXNlcm5hbWVFcnJvcl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3Bhc3N3b3JkRXJyb3IsIHNldFBhc3N3b3JkRXJyb3JdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFt1c2VybmFtZSwgc2V0VXNlcm5hbWVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Bhc3N3b3JkLCBzZXRQYXNzd29yZF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbc2hvd1Bhc3N3b3JkLCBzZXRTaG93UGFzc3dvcmRdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBoYW5kbGVDbGlja1Nob3dQYXNzd29yZCA9ICgpID0+IHtcbiAgICAgICAgc2V0U2hvd1Bhc3N3b3JkKCFzaG93UGFzc3dvcmQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVNb3VzZURvd25QYXNzd29yZCA9IChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgbGV0IHVzZXJuYW1lID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldChcInVzZXJOYW1lXCIpO1xuICAgICAgICBpZih1c2VybmFtZSkge1xuICAgICAgICAgICAgc2V0VXNlcm5hbWUodXNlcm5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvZGUgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwiY29kZVwiKTtcbiAgICAgICAgaWYoY29kZSkge1xuICAgICAgICAgICAgc2V0UGFzc3dvcmQoY29kZSk7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICBjb2xvcjogcHJvcHMudGV4dENvbG9yLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgLy8gRGFyayBncmFkaWVudCBvdmVybGFpZCBvbiB0aGUgQ09KIHNreWxpbmUga2VlcHMgdGhlIGxvZ2luXG4gICAgICAgICAgICAvLyBmb3JtIHJlYWRhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlIGltYWdlJ3MgZXhwb3N1cmUuIGBmaXhlZGBcbiAgICAgICAgICAgIC8vIGFuY2hvcnMgdGhlIGltYWdlIHNvIHRoZSBmb3JtIGRvZXNuJ3Qgc2xpZGUgaXQgb3V0IG9mIHZpZXdcbiAgICAgICAgICAgIC8vIHdoZW4gdGhlIHZpZXdwb3J0IHNjcm9sbHMuIEhhcmRjb2RlZCBmb3Igbm93IOKAlCB3aWxsIGJlY29tZVxuICAgICAgICAgICAgLy8gYSB0ZW5hbnQgYXR0cmlidXRlIG9uIHRoZSBDb2duaXRvIHNpZGUuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBgbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC41NSksIHJnYmEoMCwgMCwgMCwgMC41NSkpLCB1cmwoJHtjb2pCYWNrZ3JvdW5kfSkgY2VudGVyIGNlbnRlciAvIGNvdmVyIG5vLXJlcGVhdCBmaXhlZGAsXG4gICAgICAgICAgICBmb250RmFtaWx5OlwiR2lsbCBTYW5zIE1ULCBzYW5zLXNlcmlmXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHsvKiBDT0ogbG9nbywgcGlubmVkIHRvcC1sZWZ0LiBwb3NpdGlvbjphYnNvbHV0ZSBzbyBpdCBmbG9hdHNcbiAgICAgICAgICAgICAgICBvdmVyIHRoZSBleGlzdGluZyBmb3JtIGxheW91dCB3aXRob3V0IGRpc3R1cmJpbmcgdGhlXG4gICAgICAgICAgICAgICAgdmVydGljYWxseS1jZW50ZXJlZCBsb2dpbkNvbnRhaW5lciBiZWxvdy4gU2FtZSBcImhhcmRjb2RlZFxuICAgICAgICAgICAgICAgIHVudGlsIENvZ25pdG8gdGVuYW50IGN1c3RvbWlzYXRpb24gbGFuZHNcIiBjYXZlYXQgYXMgdGhlXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC4gKi99XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgc3JjPXtjb2pMb2dvfVxuICAgICAgICAgICAgICAgIGFsdD1cIkNpdHkgb2YgSm9oYW5uZXNidXJnXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAnMjRweCcsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6ICcyNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNjRweCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMSxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGhlaWdodDogJzkyJScsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICdhdXRvJ1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e21heFdpZHRoOiAnNDAwcHgnLCBtYXJnaW46ICdhdXRvJywgaGVpZ2h0OiAnMTAwJScsIGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLCBhbGlnbkl0ZW1zOiAnY2VudGVyJ319PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7Li4uc3R5bGVzLmxvZ2luQ29udGFpbmVyLCBtYXJnaW46ICcwIGF1dG8nfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFwZXIgc3R5bGU9e3N0eWxlcy5wYXBlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicm93IG5vLW1hcmdpbiBuby1wYWRkaW5nXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7dGV4dEFsaWduOiAncmlnaHQnLCB3aWR0aDogJzEwMCUnLCBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgbWFyZ2luQm90dG9tOiAnMTZweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtwcm9wcy5sb2dvfSBhbHQ9XCIuLi5cIiBzdHlsZT17e3dpZHRoOiAnNjAlJywgcGFkZGluZ0JvdHRvbTogJzhweCcsIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTFlMWUxJ319Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3t3aWR0aDogcHJvcHMudGl0bGUubGVuZ3RoID09PSAwID8gJzAnIDogJzcwJScsIHRleHRBbGlnbjogJ2xlZnQnLCBtYXJnaW46ICdhdXRvJywgcGFkZGluZ0xlZnQ6ICcxNnB4JywgY29sb3I6IHByb3BzLnRpdGxlQ29sb3J9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2NvbCd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IVV0aWxzLmlzTnVsbChlcnJvck1lc3NhZ2UpID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luVG9wOiAnMTZweCcsIG1hcmdpbkJvdHRvbTogJzAnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdz17IVV0aWxzLmlzTnVsbChlcnJvck1lc3NhZ2UpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0RXJyb3JNZXNzYWdlKG51bGwpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzbWlzc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0LkhlYWRpbmc+TG9naW4gZXJyb3IhPC9BbGVydC5IZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e2Vycm9yTWVzc2FnZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWxlcnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dXNlcm5hbWVFcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiVXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3VzZXJuYW1lIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJuYW1lUHJlc2VudCA9ICFVdGlscy5pc051bGwoZS50YXJnZXQudmFsdWUpICYmIGUudGFyZ2V0LnZhbHVlLnRyaW0oKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFVzZXJuYW1lKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRVc2VybmFtZUVycm9yKCF1c2VybmFtZVByZXNlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbj1cIm5vcm1hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3ttaW5XaWR0aDogXCIyMDBweFwiLCB3aWR0aDogXCIxMDAlXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0RmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXtwYXNzd29yZEVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17c2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYXNzd29yZCB8fCAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXNzd29yZFByZXNlbnQgPSAhVXRpbHMuaXNOdWxsKGUudGFyZ2V0LnZhbHVlKSAmJiBlLnRhcmdldC52YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQYXNzd29yZChlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFzc3dvcmRFcnJvcighcGFzc3dvcmRQcmVzZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW49XCJub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZEFkb3JubWVudDogPElucHV0QWRvcm5tZW50IHBvc2l0aW9uPVwiZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwidG9nZ2xlIHBhc3N3b3JkIHZpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2tTaG93UGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3duUGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGdlPVwiZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dQYXNzd29yZCA/IDxWaXNpYmlsaXR5Lz4gOiA8VmlzaWJpbGl0eU9mZi8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dEFkb3JubWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3ttaW5XaWR0aDogXCIyMDBweFwiLCB3aWR0aDogXCIxMDAlXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0RmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJuYW1lUHJlc2VudCA9ICFVdGlscy5pc051bGwodXNlcm5hbWUpICYmIHVzZXJuYW1lLnRyaW0oKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFzc3dvcmRQcmVzZW50ID0gIVV0aWxzLmlzTnVsbChwYXNzd29yZCkgJiYgcGFzc3dvcmQudHJpbSgpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VXNlcm5hbWVFcnJvcighdXNlcm5hbWVQcmVzZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFzc3dvcmRFcnJvcighcGFzc3dvcmRQcmVzZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlcm5hbWVQcmVzZW50ICYmIHBhc3N3b3JkUHJlc2VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW4ocHJvcHMudXJsLCB1c2VybmFtZSwgcGFzc3dvcmQsIChhdXRoZW50aWNhdGVkLCBtZXNzYWdlLCByZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHJlc3BvbnNlKSAmJiByZXNwb25zZS5mb3JjZVBhc3N3b3JkQ2hhbmdlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZShgL2NoYW5nZS1wYXNzd29yZD91c2VybmFtZT0ke3VzZXJuYW1lfSZzZXNzaW9uSWQ9JHtyZXNwb25zZS5zZXNzaW9uSWR9JmNoYWxsZW5nZVBhcmFtZW50ZXJzPSR7ZW5jb2RlVVJJKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmNoYWxsYW5nZVBhcmFtZXRlcnMpKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlKCcvJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2UobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZXMubG9naW5CdG59PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmcgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmEgZmEtcmVmcmVzaCBmYS1zcGluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luUmlnaHQ6IFwiOHB4XCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZyAmJiA8c3Bhbj5MT0FESU5HLi4uPC9zcGFuPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IWlzTG9hZGluZyAmJiA8c3Bhbj5MT0dJTjwvc3Bhbj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5idXR0b25zRGl2fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRm9yZ290IFBhc3N3b3JkP1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvZm9yZ290LXBhc3N3b3JkYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5mbGF0QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxIZWxwLz59PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3Jnb3QgUGFzc3dvcmQ/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3tjb2xvcjogc3R5bGVzLmZsYXRCdXR0b24uY29sb3IsIG1hcmdpbjogJzAgNHB4J319Pnw8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlJlZ2lzdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9yZWdpc3RlcmB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZXMuZmxhdEJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8UGVyc29uQWRkLz59PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7ZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcid9fT5cbiAgICAgICAgICAgICAgICA8Rm9vdGVyIHdoaXRlIGxvZ289e3Byb3BzLmZvb3RlckxvZ299IHRleHQ9e3Byb3BzLmZvb3RlclRleHR9IHdpZHRoPXsvKnByb3BzLmZvb3RlcldpZHRoKi9udWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXR0ZXJDb2xvcj17Lypwcm9wcy5mb290ZXJTcGxpdHRlckNvbG9yKi8ndHJhbnNwYXJlbnQnfS8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhSb3V0ZXIoY29ubmVjdChcbiAgICBkaXNwYXRjaCA9PiBiaW5kQWN0aW9uQ3JlYXRvcnMoYWN0aW9uQ3JlYXRvcnMsIGRpc3BhdGNoKVxuKShMb2dpbkludGVyYWN0aW9uUG9ydGFsKSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsY0FBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksTUFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsV0FBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWUsbUJBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0IsTUFBQSxHQUFBakIsc0JB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
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactRouterDom = require("react-router-dom");
|
|
9
|
+
var _material = require("@mui/material");
|
|
10
|
+
var _ThemeProvider = _interopRequireDefault(require("@mui/styles/ThemeProvider"));
|
|
11
|
+
var _react2 = require("@emotion/react");
|
|
12
|
+
var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
|
|
13
|
+
var _ViewPort = _interopRequireDefault(require("../../components/layout/ViewPort"));
|
|
14
|
+
var _LoadingIndicator = _interopRequireDefault(require("../../components/LoadingIndicator"));
|
|
15
|
+
var _Utils = _interopRequireDefault(require("../../Utils"));
|
|
16
|
+
var _RestUtils = require("../../RestUtils");
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
// Hostname only — matches the URL-construction style in
|
|
19
|
+
// InteractionPortalAppHome.js. context-root + service path get appended
|
|
20
|
+
// when the actual request is built.
|
|
21
|
+
const host = window.location.protocol + "//" + window.location.hostname;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Skeleton for the registration portal — wires the ApplicationManager,
|
|
25
|
+
* the dual Emotion/MUI theme providers, and a CDUI {@link ViewPort}.
|
|
26
|
+
* The actual registration view lands in a follow-up sprint
|
|
27
|
+
* (spec/registration.md §2). Mirrors {@code InteractionPortalAppHome.js}
|
|
28
|
+
* for theme + manager init but omits the {@code /system/setup} and
|
|
29
|
+
* {@code /auth/user/find} endpoints — the registration flow runs
|
|
30
|
+
* unauthenticated and there is no logged-in user to look up.
|
|
31
|
+
*
|
|
32
|
+
* <p>Because no {@code dashboardSettings} is loaded here (no auth), both
|
|
33
|
+
* the Emotion outer and Material inner themes are seeded from
|
|
34
|
+
* {@code props.implConfig.primaryColor / secondaryColor} — the same
|
|
35
|
+
* fallback the login portal uses.
|
|
36
|
+
*/
|
|
37
|
+
// Type-scoped registration: each type has its own wizard JSON under
|
|
38
|
+
// /portal/views/registration/. New types add an entry here.
|
|
39
|
+
const REGISTRATION_TYPE_TO_VIEW = {
|
|
40
|
+
vendor: '/portal/views/registration/registration-vendor.json'
|
|
41
|
+
};
|
|
42
|
+
const RegisterInteractionPortal = props => {
|
|
43
|
+
const navigate = (0, _reactRouterDom.useNavigate)();
|
|
44
|
+
// The :type route segment (e.g. 'vendor'). Falls back to 'vendor'
|
|
45
|
+
// when the route has no type segment yet — keeps a bare /register
|
|
46
|
+
// request working during the rollout window.
|
|
47
|
+
const {
|
|
48
|
+
type: rawType
|
|
49
|
+
} = (0, _reactRouterDom.useParams)();
|
|
50
|
+
const type = (rawType || 'vendor').toLowerCase();
|
|
51
|
+
const viewPath = REGISTRATION_TYPE_TO_VIEW[type];
|
|
52
|
+
|
|
53
|
+
// Gates the render — block the ViewPort mount until the wizard
|
|
54
|
+
// view JSON has been fetched and registered with the
|
|
55
|
+
// ApplicationManager, otherwise the CDUI router has nothing to
|
|
56
|
+
// resolve when it lands on /view/<viewId>.
|
|
57
|
+
const [viewLoaded, setViewLoaded] = _react.default.useState(false);
|
|
58
|
+
const [error, setError] = _react.default.useState(null);
|
|
59
|
+
_react.default.useEffect(() => {
|
|
60
|
+
if (!viewPath) {
|
|
61
|
+
setError("Registration type \"".concat(type, "\" is not supported."));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
_ApplicationManager.default.setServiceApiPath(props.implConfig.serviceApiPath);
|
|
65
|
+
_ApplicationManager.default.setUIConfigPath(props.implConfig.uiConfigPath);
|
|
66
|
+
_ApplicationManager.default.setContextRoot(props.contextRoot);
|
|
67
|
+
_ApplicationManager.default.setFilesApiPath(props.implConfig.filesApiPath);
|
|
68
|
+
_ApplicationManager.default.setNavigator(path => {
|
|
69
|
+
navigate(path);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Public CDUI fetch — hits the unprotected endpoint we added
|
|
73
|
+
// to oui-server (whitelisted in ResourceServerConfig). The
|
|
74
|
+
// returned JSON is wrapped into the {config, parameters, parent,
|
|
75
|
+
// handle.api} envelope expected by addView (mirrors the pattern
|
|
76
|
+
// in RouteActionHandler.execute) and registered against the
|
|
77
|
+
// 'main' context so the ViewPort below resolves it when it
|
|
78
|
+
// lands on /view/<viewId>.
|
|
79
|
+
(0, _RestUtils.sendRequest)(host + _ApplicationManager.default.getContextRoot() + '/ui/api/v1/view/public/get?version=1.0&id=' + encodeURIComponent(viewPath), data => {
|
|
80
|
+
// graph (wizard) AND view (single page) are both addable.
|
|
81
|
+
if (data && (data.type === 'view' || data.type === 'graph')) {
|
|
82
|
+
const defaultModel = {};
|
|
83
|
+
const view = {
|
|
84
|
+
config: data,
|
|
85
|
+
parameters: [],
|
|
86
|
+
parent: false,
|
|
87
|
+
handle: {
|
|
88
|
+
api: {
|
|
89
|
+
get id() {
|
|
90
|
+
return data.id;
|
|
91
|
+
},
|
|
92
|
+
get model() {
|
|
93
|
+
return defaultModel;
|
|
94
|
+
},
|
|
95
|
+
getChild: () => null,
|
|
96
|
+
updateModel: values => {
|
|
97
|
+
_Utils.default.updateModel(values, defaultModel);
|
|
98
|
+
},
|
|
99
|
+
setModelValue: (key, value) => {
|
|
100
|
+
defaultModel[key] = value;
|
|
101
|
+
},
|
|
102
|
+
getModelValue: key => defaultModel[key],
|
|
103
|
+
loaded: () => false
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
_ApplicationManager.default.addView(view, data.id, true, 'main');
|
|
108
|
+
setViewLoaded(true);
|
|
109
|
+
_ApplicationManager.default.navigate('/register/' + type + '/' + data.id);
|
|
110
|
+
} else {
|
|
111
|
+
console.error('Public registration view fetch returned unexpected payload', data);
|
|
112
|
+
setError('Registration view could not be loaded.');
|
|
113
|
+
}
|
|
114
|
+
}, e => {
|
|
115
|
+
console.error('Failed to load registration view', e);
|
|
116
|
+
setError('Registration view could not be loaded.');
|
|
117
|
+
}, false, true);
|
|
118
|
+
}, [type, viewPath]);
|
|
119
|
+
if (error) {
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
121
|
+
className: "main w-100 h-100 d-inline-block coj-skin",
|
|
122
|
+
style: {
|
|
123
|
+
display: 'flex',
|
|
124
|
+
alignItems: 'center',
|
|
125
|
+
justifyContent: 'center'
|
|
126
|
+
}
|
|
127
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
128
|
+
style: {
|
|
129
|
+
maxWidth: 420,
|
|
130
|
+
padding: 32,
|
|
131
|
+
textAlign: 'center'
|
|
132
|
+
}
|
|
133
|
+
}, /*#__PURE__*/_react.default.createElement("h2", {
|
|
134
|
+
style: {
|
|
135
|
+
color: '#1a3c5e',
|
|
136
|
+
margin: '0 0 12px'
|
|
137
|
+
}
|
|
138
|
+
}, "Not available"), /*#__PURE__*/_react.default.createElement("p", {
|
|
139
|
+
style: {
|
|
140
|
+
color: '#6b7785',
|
|
141
|
+
margin: '0 0 16px'
|
|
142
|
+
}
|
|
143
|
+
}, error), /*#__PURE__*/_react.default.createElement("a", {
|
|
144
|
+
href: "/login",
|
|
145
|
+
style: {
|
|
146
|
+
color: '#1a3c5e',
|
|
147
|
+
textDecoration: 'none',
|
|
148
|
+
fontWeight: 500
|
|
149
|
+
}
|
|
150
|
+
}, "Back to login")));
|
|
151
|
+
}
|
|
152
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
153
|
+
className: "main w-100 h-100 d-inline-block coj-skin"
|
|
154
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
155
|
+
className: "w-100 h-100"
|
|
156
|
+
}, /*#__PURE__*/_react.default.createElement(_react2.ThemeProvider, {
|
|
157
|
+
theme: (0, _material.createTheme)({
|
|
158
|
+
palette: {
|
|
159
|
+
primary: {
|
|
160
|
+
main: props.implConfig.primaryColor
|
|
161
|
+
},
|
|
162
|
+
secondary: {
|
|
163
|
+
main: props.implConfig.secondaryColor
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
}, /*#__PURE__*/_react.default.createElement(_ThemeProvider.default, {
|
|
168
|
+
theme: (0, _material.createTheme)({
|
|
169
|
+
palette: {
|
|
170
|
+
primary: {
|
|
171
|
+
main: props.implConfig.primaryColor
|
|
172
|
+
},
|
|
173
|
+
secondary: {
|
|
174
|
+
main: props.implConfig.secondaryColor
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
components: {
|
|
178
|
+
MuiCssBaseline: {
|
|
179
|
+
styleOverrides: {
|
|
180
|
+
body: {
|
|
181
|
+
// Firefox
|
|
182
|
+
scrollbarColor: 'rgba(100, 100, 100, 0.4) transparent',
|
|
183
|
+
scrollbarWidth: 'thin'
|
|
184
|
+
},
|
|
185
|
+
// WebKit browsers
|
|
186
|
+
'::-webkit-scrollbar': {
|
|
187
|
+
width: '8px',
|
|
188
|
+
height: '8px'
|
|
189
|
+
},
|
|
190
|
+
'::-webkit-scrollbar-track': {
|
|
191
|
+
background: 'transparent'
|
|
192
|
+
},
|
|
193
|
+
'::-webkit-scrollbar-thumb': {
|
|
194
|
+
backgroundColor: 'rgba(100, 100, 100, 0.4)',
|
|
195
|
+
borderRadius: '4px',
|
|
196
|
+
transition: 'background-color 0.3s'
|
|
197
|
+
},
|
|
198
|
+
'::-webkit-scrollbar-thumb:hover': {
|
|
199
|
+
backgroundColor: 'rgba(100, 100, 100, 0.6)'
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
})
|
|
205
|
+
}, /*#__PURE__*/_react.default.createElement(_material.CssBaseline, null), /*#__PURE__*/_react.default.createElement(_ViewPort.default, {
|
|
206
|
+
windowPinned: false,
|
|
207
|
+
menuOffset: 0,
|
|
208
|
+
landingPage: "NONE",
|
|
209
|
+
style: {
|
|
210
|
+
width: '100%',
|
|
211
|
+
height: '100%'
|
|
212
|
+
}
|
|
213
|
+
})))));
|
|
214
|
+
};
|
|
215
|
+
var _default = exports.default = RegisterInteractionPortal;
|
|
216
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFJvdXRlckRvbSIsIl9tYXRlcmlhbCIsIl9UaGVtZVByb3ZpZGVyIiwiX3JlYWN0MiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfVmlld1BvcnQiLCJfTG9hZGluZ0luZGljYXRvciIsIl9VdGlscyIsIl9SZXN0VXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJob3N0Iiwid2luZG93IiwibG9jYXRpb24iLCJwcm90b2NvbCIsImhvc3RuYW1lIiwiUkVHSVNUUkFUSU9OX1RZUEVfVE9fVklFVyIsInZlbmRvciIsIlJlZ2lzdGVySW50ZXJhY3Rpb25Qb3J0YWwiLCJwcm9wcyIsIm5hdmlnYXRlIiwidXNlTmF2aWdhdGUiLCJ0eXBlIiwicmF3VHlwZSIsInVzZVBhcmFtcyIsInRvTG93ZXJDYXNlIiwidmlld1BhdGgiLCJ2aWV3TG9hZGVkIiwic2V0Vmlld0xvYWRlZCIsIlJlYWN0IiwidXNlU3RhdGUiLCJlcnJvciIsInNldEVycm9yIiwidXNlRWZmZWN0IiwiY29uY2F0IiwiYXBwbGljYXRpb01hbmFnZXIiLCJzZXRTZXJ2aWNlQXBpUGF0aCIsImltcGxDb25maWciLCJzZXJ2aWNlQXBpUGF0aCIsInNldFVJQ29uZmlnUGF0aCIsInVpQ29uZmlnUGF0aCIsInNldENvbnRleHRSb290IiwiY29udGV4dFJvb3QiLCJzZXRGaWxlc0FwaVBhdGgiLCJmaWxlc0FwaVBhdGgiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJzZXROYXZpZ2F0b3IiLCJwYXRoIiwic2VuZFJlcXVlc3QiLCJnZXRDb250ZXh0Um9vdCIsImVuY29kZVVSSUNvbXBvbmVudCIsImRhdGEiLCJkZWZhdWx0TW9kZWwiLCJ2aWV3IiwiY29uZmlnIiwicGFyYW1ldGVycyIsInBhcmVudCIsImhhbmRsZSIsImFwaSIsImlkIiwibW9kZWwiLCJnZXRDaGlsZCIsInVwZGF0ZU1vZGVsIiwidmFsdWVzIiwiVXRpbHMiLCJzZXRNb2RlbFZhbHVlIiwia2V5IiwidmFsdWUiLCJnZXRNb2RlbFZhbHVlIiwibG9hZGVkIiwiYWRkVmlldyIsImNvbnNvbGUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwibWF4V2lkdGgiLCJwYWRkaW5nIiwidGV4dEFsaWduIiwiY29sb3IiLCJtYXJnaW4iLCJocmVmIiwidGV4dERlY29yYXRpb24iLCJmb250V2VpZ2h0IiwiVGhlbWVQcm92aWRlciIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJwYWxldHRlIiwicHJpbWFyeSIsIm1haW4iLCJwcmltYXJ5Q29sb3IiLCJzZWNvbmRhcnkiLCJzZWNvbmRhcnlDb2xvciIsImNvbXBvbmVudHMiLCJNdWlDc3NCYXNlbGluZSIsInN0eWxlT3ZlcnJpZGVzIiwiYm9keSIsInNjcm9sbGJhckNvbG9yIiwic2Nyb2xsYmFyV2lkdGgiLCJ3aWR0aCIsImhlaWdodCIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJ0cmFuc2l0aW9uIiwiQ3NzQmFzZWxpbmUiLCJ3aW5kb3dQaW5uZWQiLCJtZW51T2Zmc2V0IiwibGFuZGluZ1BhZ2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ZpZXcvc2VjdXJpdHkvUmVnaXN0ZXJJbnRlcmFjdGlvblBvcnRhbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHt1c2VOYXZpZ2F0ZSwgdXNlUGFyYW1zfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHtjcmVhdGVUaGVtZSwgQ3NzQmFzZWxpbmV9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgVGhlbWVQcm92aWRlciBmcm9tIFwiQG11aS9zdHlsZXMvVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtUaGVtZVByb3ZpZGVyIGFzIEVtb3Rpb25UaGVtZVByb3ZpZGVyfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcblxuaW1wb3J0IGFwcGxpY2F0aW9NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IFZpZXdQb3J0IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2xheW91dC9WaWV3UG9ydFwiO1xuaW1wb3J0IExvYWRpbmdJbmRpY2F0b3IgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTG9hZGluZ0luZGljYXRvclwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IHtzZW5kUmVxdWVzdH0gZnJvbSBcIi4uLy4uL1Jlc3RVdGlsc1wiO1xuXG4vLyBIb3N0bmFtZSBvbmx5IOKAlCBtYXRjaGVzIHRoZSBVUkwtY29uc3RydWN0aW9uIHN0eWxlIGluXG4vLyBJbnRlcmFjdGlvblBvcnRhbEFwcEhvbWUuanMuIGNvbnRleHQtcm9vdCArIHNlcnZpY2UgcGF0aCBnZXQgYXBwZW5kZWRcbi8vIHdoZW4gdGhlIGFjdHVhbCByZXF1ZXN0IGlzIGJ1aWx0LlxuY29uc3QgaG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuLyoqXG4gKiBTa2VsZXRvbiBmb3IgdGhlIHJlZ2lzdHJhdGlvbiBwb3J0YWwg4oCUIHdpcmVzIHRoZSBBcHBsaWNhdGlvbk1hbmFnZXIsXG4gKiB0aGUgZHVhbCBFbW90aW9uL01VSSB0aGVtZSBwcm92aWRlcnMsIGFuZCBhIENEVUkge0BsaW5rIFZpZXdQb3J0fS5cbiAqIFRoZSBhY3R1YWwgcmVnaXN0cmF0aW9uIHZpZXcgbGFuZHMgaW4gYSBmb2xsb3ctdXAgc3ByaW50XG4gKiAoc3BlYy9yZWdpc3RyYXRpb24ubWQgwqcyKS4gTWlycm9ycyB7QGNvZGUgSW50ZXJhY3Rpb25Qb3J0YWxBcHBIb21lLmpzfVxuICogZm9yIHRoZW1lICsgbWFuYWdlciBpbml0IGJ1dCBvbWl0cyB0aGUge0Bjb2RlIC9zeXN0ZW0vc2V0dXB9IGFuZFxuICoge0Bjb2RlIC9hdXRoL3VzZXIvZmluZH0gZW5kcG9pbnRzIOKAlCB0aGUgcmVnaXN0cmF0aW9uIGZsb3cgcnVuc1xuICogdW5hdXRoZW50aWNhdGVkIGFuZCB0aGVyZSBpcyBubyBsb2dnZWQtaW4gdXNlciB0byBsb29rIHVwLlxuICpcbiAqIDxwPkJlY2F1c2Ugbm8ge0Bjb2RlIGRhc2hib2FyZFNldHRpbmdzfSBpcyBsb2FkZWQgaGVyZSAobm8gYXV0aCksIGJvdGhcbiAqIHRoZSBFbW90aW9uIG91dGVyIGFuZCBNYXRlcmlhbCBpbm5lciB0aGVtZXMgYXJlIHNlZWRlZCBmcm9tXG4gKiB7QGNvZGUgcHJvcHMuaW1wbENvbmZpZy5wcmltYXJ5Q29sb3IgLyBzZWNvbmRhcnlDb2xvcn0g4oCUIHRoZSBzYW1lXG4gKiBmYWxsYmFjayB0aGUgbG9naW4gcG9ydGFsIHVzZXMuXG4gKi9cbi8vIFR5cGUtc2NvcGVkIHJlZ2lzdHJhdGlvbjogZWFjaCB0eXBlIGhhcyBpdHMgb3duIHdpemFyZCBKU09OIHVuZGVyXG4vLyAvcG9ydGFsL3ZpZXdzL3JlZ2lzdHJhdGlvbi8uIE5ldyB0eXBlcyBhZGQgYW4gZW50cnkgaGVyZS5cbmNvbnN0IFJFR0lTVFJBVElPTl9UWVBFX1RPX1ZJRVcgPSB7XG4gICAgdmVuZG9yOiAnL3BvcnRhbC92aWV3cy9yZWdpc3RyYXRpb24vcmVnaXN0cmF0aW9uLXZlbmRvci5qc29uJyxcbn07XG5cbmNvbnN0IFJlZ2lzdGVySW50ZXJhY3Rpb25Qb3J0YWwgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gICAgLy8gVGhlIDp0eXBlIHJvdXRlIHNlZ21lbnQgKGUuZy4gJ3ZlbmRvcicpLiBGYWxscyBiYWNrIHRvICd2ZW5kb3InXG4gICAgLy8gd2hlbiB0aGUgcm91dGUgaGFzIG5vIHR5cGUgc2VnbWVudCB5ZXQg4oCUIGtlZXBzIGEgYmFyZSAvcmVnaXN0ZXJcbiAgICAvLyByZXF1ZXN0IHdvcmtpbmcgZHVyaW5nIHRoZSByb2xsb3V0IHdpbmRvdy5cbiAgICBjb25zdCB7dHlwZTogcmF3VHlwZX0gPSB1c2VQYXJhbXMoKTtcbiAgICBjb25zdCB0eXBlID0gKHJhd1R5cGUgfHwgJ3ZlbmRvcicpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgdmlld1BhdGggPSBSRUdJU1RSQVRJT05fVFlQRV9UT19WSUVXW3R5cGVdO1xuXG4gICAgLy8gR2F0ZXMgdGhlIHJlbmRlciDigJQgYmxvY2sgdGhlIFZpZXdQb3J0IG1vdW50IHVudGlsIHRoZSB3aXphcmRcbiAgICAvLyB2aWV3IEpTT04gaGFzIGJlZW4gZmV0Y2hlZCBhbmQgcmVnaXN0ZXJlZCB3aXRoIHRoZVxuICAgIC8vIEFwcGxpY2F0aW9uTWFuYWdlciwgb3RoZXJ3aXNlIHRoZSBDRFVJIHJvdXRlciBoYXMgbm90aGluZyB0b1xuICAgIC8vIHJlc29sdmUgd2hlbiBpdCBsYW5kcyBvbiAvdmlldy88dmlld0lkPi5cbiAgICBjb25zdCBbdmlld0xvYWRlZCwgc2V0Vmlld0xvYWRlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdmlld1BhdGgpIHtcbiAgICAgICAgICAgIHNldEVycm9yKGBSZWdpc3RyYXRpb24gdHlwZSBcIiR7dHlwZX1cIiBpcyBub3Qgc3VwcG9ydGVkLmApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwbGljYXRpb01hbmFnZXIuc2V0U2VydmljZUFwaVBhdGgocHJvcHMuaW1wbENvbmZpZy5zZXJ2aWNlQXBpUGF0aCk7XG4gICAgICAgIGFwcGxpY2F0aW9NYW5hZ2VyLnNldFVJQ29uZmlnUGF0aChwcm9wcy5pbXBsQ29uZmlnLnVpQ29uZmlnUGF0aCk7XG4gICAgICAgIGFwcGxpY2F0aW9NYW5hZ2VyLnNldENvbnRleHRSb290KHByb3BzLmNvbnRleHRSb290KTtcbiAgICAgICAgYXBwbGljYXRpb01hbmFnZXIuc2V0RmlsZXNBcGlQYXRoKHByb3BzLmltcGxDb25maWcuZmlsZXNBcGlQYXRoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnNldE5hdmlnYXRvcigocGF0aCkgPT4ge1xuICAgICAgICAgICAgbmF2aWdhdGUocGF0aCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFB1YmxpYyBDRFVJIGZldGNoIOKAlCBoaXRzIHRoZSB1bnByb3RlY3RlZCBlbmRwb2ludCB3ZSBhZGRlZFxuICAgICAgICAvLyB0byBvdWktc2VydmVyICh3aGl0ZWxpc3RlZCBpbiBSZXNvdXJjZVNlcnZlckNvbmZpZykuIFRoZVxuICAgICAgICAvLyByZXR1cm5lZCBKU09OIGlzIHdyYXBwZWQgaW50byB0aGUge2NvbmZpZywgcGFyYW1ldGVycywgcGFyZW50LFxuICAgICAgICAvLyBoYW5kbGUuYXBpfSBlbnZlbG9wZSBleHBlY3RlZCBieSBhZGRWaWV3IChtaXJyb3JzIHRoZSBwYXR0ZXJuXG4gICAgICAgIC8vIGluIFJvdXRlQWN0aW9uSGFuZGxlci5leGVjdXRlKSBhbmQgcmVnaXN0ZXJlZCBhZ2FpbnN0IHRoZVxuICAgICAgICAvLyAnbWFpbicgY29udGV4dCBzbyB0aGUgVmlld1BvcnQgYmVsb3cgcmVzb2x2ZXMgaXQgd2hlbiBpdFxuICAgICAgICAvLyBsYW5kcyBvbiAvdmlldy88dmlld0lkPi5cbiAgICAgICAgc2VuZFJlcXVlc3QoXG4gICAgICAgICAgICBob3N0ICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL3VpL2FwaS92MS92aWV3L3B1YmxpYy9nZXQ/dmVyc2lvbj0xLjAmaWQ9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2aWV3UGF0aCksXG4gICAgICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGdyYXBoICh3aXphcmQpIEFORCB2aWV3IChzaW5nbGUgcGFnZSkgYXJlIGJvdGggYWRkYWJsZS5cbiAgICAgICAgICAgICAgICBpZiAoZGF0YSAmJiAoZGF0YS50eXBlID09PSAndmlldycgfHwgZGF0YS50eXBlID09PSAnZ3JhcGgnKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0TW9kZWwgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgaWQoKSB7IHJldHVybiBkYXRhLmlkOyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgbW9kZWwoKSB7IHJldHVybiBkZWZhdWx0TW9kZWw7IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENoaWxkOiAoKSA9PiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb2RlbDogKHZhbHVlcykgPT4geyBVdGlscy51cGRhdGVNb2RlbCh2YWx1ZXMsIGRlZmF1bHRNb2RlbCk7IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vZGVsVmFsdWU6IChrZXksIHZhbHVlKSA9PiB7IGRlZmF1bHRNb2RlbFtrZXldID0gdmFsdWU7IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE1vZGVsVmFsdWU6IChrZXkpID0+IGRlZmF1bHRNb2RlbFtrZXldLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6ICgpID0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkVmlldyh2aWV3LCBkYXRhLmlkLCB0cnVlLCAnbWFpbicpO1xuICAgICAgICAgICAgICAgICAgICBzZXRWaWV3TG9hZGVkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9yZWdpc3Rlci8nICsgdHlwZSArICcvJyArIGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1B1YmxpYyByZWdpc3RyYXRpb24gdmlldyBmZXRjaCByZXR1cm5lZCB1bmV4cGVjdGVkIHBheWxvYWQnLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0RXJyb3IoJ1JlZ2lzdHJhdGlvbiB2aWV3IGNvdWxkIG5vdCBiZSBsb2FkZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgcmVnaXN0cmF0aW9uIHZpZXcnLCBlKTtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcignUmVnaXN0cmF0aW9uIHZpZXcgY291bGQgbm90IGJlIGxvYWRlZC4nKTtcbiAgICAgICAgICAgIH0sIGZhbHNlLCB0cnVlXG4gICAgICAgICk7XG4gICAgfSwgW3R5cGUsIHZpZXdQYXRoXSk7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpbiB3LTEwMCBoLTEwMCBkLWlubGluZS1ibG9jayBjb2otc2tpblwiIHN0eWxlPXt7ZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInfX0+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e21heFdpZHRoOiA0MjAsIHBhZGRpbmc6IDMyLCB0ZXh0QWxpZ246ICdjZW50ZXInfX0+XG4gICAgICAgICAgICAgICAgICAgIDxoMiBzdHlsZT17e2NvbG9yOiAnIzFhM2M1ZScsIG1hcmdpbjogJzAgMCAxMnB4J319Pk5vdCBhdmFpbGFibGU8L2gyPlxuICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT17e2NvbG9yOiAnIzZiNzc4NScsIG1hcmdpbjogJzAgMCAxNnB4J319PntlcnJvcn08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvbG9naW5cIiBzdHlsZT17e2NvbG9yOiAnIzFhM2M1ZScsIHRleHREZWNvcmF0aW9uOiAnbm9uZScsIGZvbnRXZWlnaHQ6IDUwMH19PkJhY2sgdG8gbG9naW48L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW4gdy0xMDAgaC0xMDAgZC1pbmxpbmUtYmxvY2sgY29qLXNraW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMDAgaC0xMDBcIj5cbiAgICAgICAgICAgICAgICA8RW1vdGlvblRoZW1lUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdGhlbWU9e2NyZWF0ZVRoZW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW46IHByb3BzLmltcGxDb25maWcucHJpbWFyeUNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW46IHByb3BzLmltcGxDb25maWcuc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lPXtjcmVhdGVUaGVtZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluOiBwcm9wcy5pbXBsQ29uZmlnLnByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluOiBwcm9wcy5pbXBsQ29uZmlnLnNlY29uZGFyeUNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWlDc3NCYXNlbGluZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVPdmVycmlkZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpcmVmb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyQ29sb3I6ICdyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCkgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXJXaWR0aDogJ3RoaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2ViS2l0IGJyb3dzZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzo6LXdlYmtpdC1zY3JvbGxiYXInOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWInOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMTAwLCAxMDAsIDEwMCwgMC40KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIDAuM3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXInOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMTAwLCAxMDAsIDEwMCwgMC42KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q3NzQmFzZWxpbmUvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXdQb3J0IHdpbmRvd1Bpbm5lZD17ZmFsc2V9IG1lbnVPZmZzZXQ9ezB9IGxhbmRpbmdQYWdlPXtcIk5PTkVcIn0gc3R5bGU9e3t3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJ319Lz5cbiAgICAgICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvRW1vdGlvblRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJlZ2lzdGVySW50ZXJhY3Rpb25Qb3J0YWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLG1CQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBTSxTQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsTUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBQTRDLFNBQUFELHVCQUFBVyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTVDO0FBQ0E7QUFDQTtBQUNBLE1BQU1HLElBQUksR0FBR0MsTUFBTSxDQUFDQyxRQUFRLENBQUNDLFFBQVEsR0FBRyxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRSxRQUFROztBQUV2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1DLHlCQUF5QixHQUFHO0VBQzlCQyxNQUFNLEVBQUU7QUFDWixDQUFDO0FBRUQsTUFBTUMseUJBQXlCLEdBQUlDLEtBQUssSUFBSztFQUN6QyxNQUFNQyxRQUFRLEdBQUcsSUFBQUMsMkJBQVcsRUFBQyxDQUFDO0VBQzlCO0VBQ0E7RUFDQTtFQUNBLE1BQU07SUFBQ0MsSUFBSSxFQUFFQztFQUFPLENB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
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED