@1money/component-ui 0.0.77 → 0.0.79
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/es/components/Button/Button.js +17 -15
- package/es/components/Button/constants.d.ts +0 -1
- package/es/components/Button/constants.js +1 -2
- package/es/components/Button/interface.d.ts +7 -0
- package/es/components/Dialog/Dialog.js +64 -210
- package/es/components/Dialog/DialogContent.d.ts +16 -0
- package/es/components/Dialog/DialogContent.js +72 -0
- package/es/components/Dialog/DialogControls.d.ts +27 -0
- package/es/components/Dialog/DialogControls.js +65 -0
- package/es/components/Dialog/className.d.ts +12 -0
- package/es/components/Dialog/className.js +16 -0
- package/es/components/Dialog/hooks.d.ts +5 -0
- package/es/components/Dialog/hooks.js +69 -0
- package/es/components/Dialog/interface.d.ts +1 -0
- package/es/components/Dialog/style/Dialog.css +2 -11
- package/es/components/Dialog/types.d.ts +1 -0
- package/es/components/Dialog/types.js +2 -0
- package/es/components/Grid/Col.js +60 -4
- package/es/components/Grid/Grid.d.ts +4 -1
- package/es/components/Grid/Grid.js +5 -4
- package/es/components/Grid/Row.js +7 -5
- package/es/components/Grid/constants.d.ts +5 -3
- package/es/components/Grid/constants.js +13 -4
- package/es/components/Grid/helper.d.ts +8 -6
- package/es/components/Grid/helper.js +63 -15
- package/es/components/Grid/interface.d.ts +2 -1
- package/es/components/Grid/style/Grid.css +240 -196
- package/es/components/ProForm/ProForm.js +3 -3
- package/es/components/ProForm/constants.d.ts +1 -1
- package/es/components/ProForm/constants.js +5 -2
- package/es/components/ProForm/core/devWarning.d.ts +1 -3
- package/es/components/ProForm/core/devWarning.js +5 -15
- package/es/components/ProForm/layouts/DialogForm.js +2 -4
- package/es/index.css +1 -1
- package/es/utils/devWarn.d.ts +4 -0
- package/es/utils/devWarn.js +23 -0
- package/lib/components/Button/Button.js +17 -15
- package/lib/components/Button/constants.d.ts +0 -1
- package/lib/components/Button/constants.js +2 -3
- package/lib/components/Button/interface.d.ts +7 -0
- package/lib/components/Dialog/Dialog.js +66 -212
- package/lib/components/Dialog/DialogContent.d.ts +16 -0
- package/lib/components/Dialog/DialogContent.js +78 -0
- package/lib/components/Dialog/DialogControls.d.ts +27 -0
- package/lib/components/Dialog/DialogControls.js +72 -0
- package/lib/components/Dialog/className.d.ts +12 -0
- package/lib/components/Dialog/className.js +23 -0
- package/lib/components/Dialog/hooks.d.ts +5 -0
- package/lib/components/Dialog/hooks.js +75 -0
- package/lib/components/Dialog/interface.d.ts +1 -0
- package/lib/components/Dialog/style/Dialog.css +2 -11
- package/lib/components/Dialog/types.d.ts +1 -0
- package/lib/components/Dialog/types.js +6 -0
- package/lib/components/Grid/Col.js +59 -3
- package/lib/components/Grid/Grid.d.ts +4 -1
- package/lib/components/Grid/Grid.js +5 -4
- package/lib/components/Grid/Row.js +6 -4
- package/lib/components/Grid/constants.d.ts +5 -3
- package/lib/components/Grid/constants.js +14 -5
- package/lib/components/Grid/helper.d.ts +8 -6
- package/lib/components/Grid/helper.js +63 -15
- package/lib/components/Grid/interface.d.ts +2 -1
- package/lib/components/Grid/style/Grid.css +240 -196
- package/lib/components/ProForm/ProForm.js +2 -2
- package/lib/components/ProForm/constants.d.ts +1 -1
- package/lib/components/ProForm/constants.js +5 -2
- package/lib/components/ProForm/core/devWarning.d.ts +1 -3
- package/lib/components/ProForm/core/devWarning.js +23 -24
- package/lib/components/ProForm/layouts/DialogForm.js +2 -4
- package/lib/index.css +1 -1
- package/lib/utils/devWarn.d.ts +4 -0
- package/lib/utils/devWarn.js +31 -0
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +171 -57
- package/scripts/mcp-server/index.generated.json +94 -10
|
@@ -7,14 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports["default"] = exports.Dialog = void 0;
|
|
8
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
9
|
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
10
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
10
|
var _react = require("react");
|
|
12
|
-
var _Button = require("../Button");
|
|
13
|
-
var _Icons = require("../Icons");
|
|
14
11
|
var _Portal = require("../Portal");
|
|
15
|
-
var
|
|
16
|
-
var
|
|
12
|
+
var _ref = require("../../utils/ref");
|
|
13
|
+
var _className = require("./className");
|
|
17
14
|
var _constants = require("./constants");
|
|
15
|
+
var _DialogContent = require("./DialogContent");
|
|
16
|
+
var _DialogControls = require("./DialogControls");
|
|
17
|
+
var _hooks = require("./hooks");
|
|
18
18
|
require("./style");
|
|
19
19
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
20
20
|
var t = {};
|
|
@@ -24,147 +24,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
24
24
|
}
|
|
25
25
|
return t;
|
|
26
26
|
};
|
|
27
|
-
var scrollLockCount = 0;
|
|
28
|
-
var getClassName = function getClassName(prefixCls, slot, modifier) {
|
|
29
|
-
var baseClassName = "".concat(_constants.DIALOG_NAMESPACE, "-").concat(prefixCls).concat(slot ? "-".concat(slot) : '');
|
|
30
|
-
return modifier ? "".concat(baseClassName, "-").concat(modifier) : baseClassName;
|
|
31
|
-
};
|
|
32
|
-
var setBodyOverflow = function setBodyOverflow(value) {
|
|
33
|
-
if (typeof document === 'undefined') return;
|
|
34
|
-
document.body.style.overflow = value;
|
|
35
|
-
};
|
|
36
|
-
var lockBodyScroll = function lockBodyScroll() {
|
|
37
|
-
scrollLockCount += 1;
|
|
38
|
-
setBodyOverflow(_constants.DIALOG_DEFAULTS.overflowHidden);
|
|
39
|
-
};
|
|
40
|
-
var unlockBodyScroll = function unlockBodyScroll() {
|
|
41
|
-
scrollLockCount = Math.max(0, scrollLockCount - 1);
|
|
42
|
-
if (scrollLockCount === 0) {
|
|
43
|
-
requestAnimationFrame(function () {
|
|
44
|
-
if (scrollLockCount === 0) {
|
|
45
|
-
setBodyOverflow(_constants.DIALOG_DEFAULTS.overflowReset);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
var useBodyScrollLock = function useBodyScrollLock(locked) {
|
|
51
|
-
var isLockedRef = (0, _react.useRef)(false);
|
|
52
|
-
(0, _react.useEffect)(function () {
|
|
53
|
-
if (!locked || isLockedRef.current) return undefined;
|
|
54
|
-
isLockedRef.current = true;
|
|
55
|
-
lockBodyScroll();
|
|
56
|
-
return function () {
|
|
57
|
-
if (!isLockedRef.current) return;
|
|
58
|
-
isLockedRef.current = false;
|
|
59
|
-
unlockBodyScroll();
|
|
60
|
-
};
|
|
61
|
-
}, [locked]);
|
|
62
|
-
};
|
|
63
|
-
var useDialogFocus = function useDialogFocus(active, dialogRef) {
|
|
64
|
-
var previousActiveElementRef = (0, _react.useRef)(null);
|
|
65
|
-
(0, _react.useEffect)(function () {
|
|
66
|
-
if (!active || typeof document === 'undefined') return undefined;
|
|
67
|
-
previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
68
|
-
var frame = window.requestAnimationFrame(function () {
|
|
69
|
-
var _a;
|
|
70
|
-
(_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
71
|
-
});
|
|
72
|
-
return function () {
|
|
73
|
-
window.cancelAnimationFrame(frame);
|
|
74
|
-
};
|
|
75
|
-
}, [active, dialogRef]);
|
|
76
|
-
(0, _react.useEffect)(function () {
|
|
77
|
-
var _a, _b;
|
|
78
|
-
if (active) return;
|
|
79
|
-
(_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
80
|
-
previousActiveElementRef.current = null;
|
|
81
|
-
}, [active]);
|
|
82
|
-
};
|
|
83
|
-
var useEscapeClose = function useEscapeClose(enabled, onClose) {
|
|
84
|
-
(0, _react.useEffect)(function () {
|
|
85
|
-
if (!enabled || typeof document === 'undefined') return undefined;
|
|
86
|
-
var handleKeyDown = function handleKeyDown(event) {
|
|
87
|
-
if (event.key !== _constants.DIALOG_DEFAULTS.escapeKey) return;
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
void (onClose === null || onClose === void 0 ? void 0 : onClose());
|
|
90
|
-
};
|
|
91
|
-
document.addEventListener(_constants.DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
|
|
92
|
-
return function () {
|
|
93
|
-
document.removeEventListener(_constants.DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
|
|
94
|
-
};
|
|
95
|
-
}, [enabled, onClose]);
|
|
96
|
-
};
|
|
97
|
-
var renderTypographyNode = function renderTypographyNode(node, renderText) {
|
|
98
|
-
if (node == null || typeof node === 'boolean') return null;
|
|
99
|
-
if (typeof node === 'string' || typeof node === 'number') {
|
|
100
|
-
return renderText(node);
|
|
101
|
-
}
|
|
102
|
-
return node;
|
|
103
|
-
};
|
|
104
|
-
var renderIllustrationNode = function renderIllustrationNode(illustration) {
|
|
105
|
-
if (!illustration) return null;
|
|
106
|
-
if (typeof illustration === 'string') {
|
|
107
|
-
return (0, _jsxRuntime.jsx)(_Icons.Icons, {
|
|
108
|
-
name: illustration,
|
|
109
|
-
size: _constants.DIALOG_DEFAULTS.illustrationSize
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
return /*#__PURE__*/(0, _react.isValidElement)(illustration) ? illustration : null;
|
|
113
|
-
};
|
|
114
|
-
var toVoidHandler = function toVoidHandler(action) {
|
|
115
|
-
return function () {
|
|
116
|
-
void (action === null || action === void 0 ? void 0 : action());
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
var createActionHandler = function createActionHandler(action, buttonClick) {
|
|
120
|
-
return function (event) {
|
|
121
|
-
buttonClick === null || buttonClick === void 0 ? void 0 : buttonClick(event);
|
|
122
|
-
if (event.defaultPrevented || !action) return;
|
|
123
|
-
void action();
|
|
124
|
-
};
|
|
125
|
-
};
|
|
126
|
-
var renderControlButton = function renderControlButton(prefixCls, type, iconNode, onClick) {
|
|
127
|
-
return (0, _jsxRuntime.jsx)("button", {
|
|
128
|
-
type: _constants.DIALOG_DEFAULTS.buttonHtmlType,
|
|
129
|
-
className: (0, _classnames["default"])(getClassName(prefixCls, _constants.DIALOG_SLOT.control), getClassName(prefixCls, _constants.DIALOG_SLOT.control, type)),
|
|
130
|
-
"aria-label": _constants.DIALOG_CONTROL_LABELS[type],
|
|
131
|
-
onClick: toVoidHandler(onClick),
|
|
132
|
-
children: iconNode
|
|
133
|
-
});
|
|
134
|
-
};
|
|
135
|
-
var renderActionButton = function renderActionButton(_ref) {
|
|
136
|
-
var prefixCls = _ref.prefixCls,
|
|
137
|
-
kind = _ref.kind,
|
|
138
|
-
text = _ref.text,
|
|
139
|
-
action = _ref.action,
|
|
140
|
-
buttonProps = _ref.buttonProps;
|
|
141
|
-
var _a;
|
|
142
|
-
if (text == null || !action) return null;
|
|
143
|
-
return (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({}, buttonProps, {
|
|
144
|
-
type: _constants.DIALOG_DEFAULTS.buttonHtmlType,
|
|
145
|
-
size: _constants.DIALOG_DEFAULTS.buttonSize,
|
|
146
|
-
color: (_a = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.color) !== null && _a !== void 0 ? _a : _constants.DIALOG_DEFAULT_BUTTON_COLORS[kind],
|
|
147
|
-
className: (0, _classnames["default"])(getClassName(prefixCls, _constants.DIALOG_SLOT.actionButton), getClassName(prefixCls, _constants.DIALOG_SLOT.actionButton, kind), buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.className),
|
|
148
|
-
style: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.style,
|
|
149
|
-
onClick: createActionHandler(action, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.onClick),
|
|
150
|
-
children: text
|
|
151
|
-
}));
|
|
152
|
-
};
|
|
153
|
-
var resolveFooterNode = function resolveFooterNode(_ref2) {
|
|
154
|
-
var footer = _ref2.footer,
|
|
155
|
-
size = _ref2.size,
|
|
156
|
-
cancelButton = _ref2.cancelButton,
|
|
157
|
-
okButton = _ref2.okButton;
|
|
158
|
-
if (footer === null) return null;
|
|
159
|
-
if (typeof footer === 'function') return footer(cancelButton, okButton);
|
|
160
|
-
if (footer !== undefined) return footer;
|
|
161
|
-
if (!cancelButton && !okButton) return null;
|
|
162
|
-
return size === _constants.DIALOG_SIZE.large ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
163
|
-
children: [cancelButton, okButton]
|
|
164
|
-
}) : (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
165
|
-
children: [okButton, cancelButton]
|
|
166
|
-
});
|
|
167
|
-
};
|
|
168
27
|
var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
169
28
|
var className = props.className,
|
|
170
29
|
style = props.style,
|
|
@@ -184,6 +43,7 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
184
43
|
fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
|
|
185
44
|
_props$fixed = props.fixed,
|
|
186
45
|
fixed = _props$fixed === void 0 ? false : _props$fixed,
|
|
46
|
+
width = props.width,
|
|
187
47
|
title = props.title,
|
|
188
48
|
children = props.children,
|
|
189
49
|
illustration = props.illustration,
|
|
@@ -206,19 +66,16 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
206
66
|
footerStyle = props.footerStyle,
|
|
207
67
|
cancelButtonProps = props.cancelButtonProps,
|
|
208
68
|
okButtonProps = props.okButtonProps,
|
|
209
|
-
rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
|
|
69
|
+
rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "width", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
|
|
210
70
|
var dialogRef = (0, _react.useRef)(null);
|
|
211
71
|
var titleId = (0, _react.useId)();
|
|
212
72
|
var handleSetDialogRef = (0, _react.useCallback)(function (node) {
|
|
213
73
|
dialogRef.current = node;
|
|
214
|
-
(0,
|
|
74
|
+
(0, _ref.fillRef)(ref, node);
|
|
215
75
|
}, [ref]);
|
|
216
76
|
var handleCancel = (0, _useEventCallback["default"])(function () {
|
|
217
77
|
void (onCancel === null || onCancel === void 0 ? void 0 : onCancel());
|
|
218
78
|
});
|
|
219
|
-
var handleOk = (0, _useEventCallback["default"])(function () {
|
|
220
|
-
void (onOk === null || onOk === void 0 ? void 0 : onOk());
|
|
221
|
-
});
|
|
222
79
|
var handleBack = (0, _useEventCallback["default"])(function () {
|
|
223
80
|
void (onBack === null || onBack === void 0 ? void 0 : onBack());
|
|
224
81
|
});
|
|
@@ -226,110 +83,107 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
226
83
|
if (!maskClosable) return;
|
|
227
84
|
handleCancel();
|
|
228
85
|
});
|
|
229
|
-
useBodyScrollLock(open);
|
|
230
|
-
useDialogFocus(open, dialogRef);
|
|
231
|
-
useEscapeClose(open, handleCancel);
|
|
86
|
+
(0, _hooks.useBodyScrollLock)(open);
|
|
87
|
+
(0, _hooks.useDialogFocus)(open, dialogRef);
|
|
88
|
+
(0, _hooks.useEscapeClose)(open, handleCancel);
|
|
232
89
|
var hasMedia = media != null;
|
|
233
|
-
var closeControlNode = showCloseIcon ?
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
var childrenNode = renderTypographyNode(children, function (value) {
|
|
251
|
-
return (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
|
|
252
|
-
size: "md",
|
|
253
|
-
as: "p",
|
|
254
|
-
strong: true,
|
|
255
|
-
color: "default-secondary",
|
|
256
|
-
children: value
|
|
257
|
-
});
|
|
90
|
+
var closeControlNode = showCloseIcon ? (0, _DialogControls.renderDialogControlButton)({
|
|
91
|
+
prefixCls: prefixCls,
|
|
92
|
+
type: _constants.DIALOG_CONTROL_TYPE.close,
|
|
93
|
+
icon: closeIcon,
|
|
94
|
+
onClick: handleCancel
|
|
95
|
+
}) : null;
|
|
96
|
+
var backControlNode = showBackIcon ? (0, _DialogControls.renderDialogControlButton)({
|
|
97
|
+
prefixCls: prefixCls,
|
|
98
|
+
type: _constants.DIALOG_CONTROL_TYPE.back,
|
|
99
|
+
icon: backIcon,
|
|
100
|
+
onClick: handleBack
|
|
101
|
+
}) : null;
|
|
102
|
+
var hasHeading = (0, _DialogContent.hasDialogHeadingContent)({
|
|
103
|
+
title: title,
|
|
104
|
+
illustration: illustration
|
|
258
105
|
});
|
|
259
|
-
var
|
|
106
|
+
var headingNode = hasHeading ? (0, _jsxRuntime.jsx)(_DialogContent.DialogHeading, {
|
|
107
|
+
prefixCls: prefixCls,
|
|
108
|
+
titleId: titleId,
|
|
109
|
+
title: title,
|
|
110
|
+
illustration: illustration
|
|
111
|
+
}) : null;
|
|
112
|
+
var childrenNode = (0, _DialogContent.renderDialogBodyContent)(children);
|
|
113
|
+
var cancelButton = (0, _DialogControls.renderDialogActionButton)({
|
|
260
114
|
prefixCls: prefixCls,
|
|
261
115
|
kind: _constants.DIALOG_ACTION_KIND.cancel,
|
|
262
116
|
text: cancelText,
|
|
263
117
|
action: onCancel,
|
|
264
118
|
buttonProps: cancelButtonProps
|
|
265
119
|
});
|
|
266
|
-
var okButton =
|
|
120
|
+
var okButton = (0, _DialogControls.renderDialogActionButton)({
|
|
267
121
|
prefixCls: prefixCls,
|
|
268
122
|
kind: _constants.DIALOG_ACTION_KIND.ok,
|
|
269
123
|
text: okText,
|
|
270
124
|
action: onOk,
|
|
271
125
|
buttonProps: okButtonProps
|
|
272
126
|
});
|
|
273
|
-
var footerNode =
|
|
127
|
+
var footerNode = (0, _DialogControls.resolveDialogFooter)({
|
|
274
128
|
footer: footer,
|
|
275
|
-
size: size,
|
|
276
129
|
cancelButton: cancelButton,
|
|
277
130
|
okButton: okButton
|
|
278
131
|
});
|
|
132
|
+
var panelClassName = (0, _className.getDialogPanelClassName)({
|
|
133
|
+
prefixCls: prefixCls,
|
|
134
|
+
size: size,
|
|
135
|
+
fullWidth: fullWidth,
|
|
136
|
+
fixed: fixed,
|
|
137
|
+
hasMedia: hasMedia,
|
|
138
|
+
className: className
|
|
139
|
+
});
|
|
140
|
+
// `width` is a convenience that sets the panel's width inline, overriding the
|
|
141
|
+
// `size` preset's class-level width. An explicit `style.width` still wins (it is
|
|
142
|
+
// spread last). Note: `width` is not meant to be combined with `fullWidth`, whose
|
|
143
|
+
// `max-width: none` / `width: 100%` rules govern sizing on their own.
|
|
144
|
+
var panelStyle = Object.assign({
|
|
145
|
+
width: width
|
|
146
|
+
}, style);
|
|
279
147
|
if (!open) return null;
|
|
280
148
|
return (0, _jsxRuntime.jsx)(_Portal.Portal, {
|
|
281
149
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
282
150
|
style: rootStyle,
|
|
283
|
-
className:
|
|
151
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.root),
|
|
284
152
|
children: [(0, _jsxRuntime.jsx)("div", {
|
|
285
153
|
"aria-hidden": "true",
|
|
286
|
-
className:
|
|
154
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.overlay),
|
|
287
155
|
onClick: handleOverlayClick
|
|
288
156
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
289
157
|
style: wrapperStyle,
|
|
290
|
-
className:
|
|
158
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.wrapper),
|
|
291
159
|
children: (0, _jsxRuntime.jsxs)("div", Object.assign({}, rest, {
|
|
292
160
|
ref: handleSetDialogRef,
|
|
293
161
|
role: "dialog",
|
|
294
162
|
"aria-modal": "true",
|
|
295
163
|
"aria-labelledby": title ? titleId : undefined,
|
|
296
164
|
tabIndex: -1,
|
|
297
|
-
style:
|
|
298
|
-
className:
|
|
165
|
+
style: panelStyle,
|
|
166
|
+
className: panelClassName,
|
|
299
167
|
children: [closeControlNode, hasMedia && (0, _jsxRuntime.jsx)("div", {
|
|
300
|
-
className:
|
|
168
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.media),
|
|
301
169
|
children: media
|
|
302
170
|
}), (0, _jsxRuntime.jsxs)("div", {
|
|
303
|
-
className:
|
|
304
|
-
children: [(backControlNode || fixed &&
|
|
171
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.inner),
|
|
172
|
+
children: [(backControlNode || fixed && headingNode) && (0, _jsxRuntime.jsxs)("div", {
|
|
305
173
|
style: headerStyle,
|
|
306
|
-
className:
|
|
307
|
-
children: [backControlNode, fixed &&
|
|
308
|
-
className: getClassName(prefixCls, _constants.DIALOG_SLOT.illustration),
|
|
309
|
-
children: illustrationNode
|
|
310
|
-
}), fixed && titleNode && (0, _jsxRuntime.jsx)("div", {
|
|
311
|
-
id: titleId,
|
|
312
|
-
className: getClassName(prefixCls, _constants.DIALOG_SLOT.title),
|
|
313
|
-
children: titleNode
|
|
314
|
-
})]
|
|
174
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.header),
|
|
175
|
+
children: [backControlNode, fixed && headingNode]
|
|
315
176
|
}), (0, _jsxRuntime.jsxs)("div", {
|
|
316
177
|
style: bodyStyle,
|
|
317
|
-
className:
|
|
318
|
-
children: [!fixed &&
|
|
319
|
-
className: getClassName(prefixCls, _constants.DIALOG_SLOT.illustration),
|
|
320
|
-
children: illustrationNode
|
|
321
|
-
}), !fixed && titleNode && (0, _jsxRuntime.jsx)("div", {
|
|
322
|
-
id: titleId,
|
|
323
|
-
className: getClassName(prefixCls, _constants.DIALOG_SLOT.title),
|
|
324
|
-
children: titleNode
|
|
325
|
-
}), childrenNode && (0, _jsxRuntime.jsx)("div", {
|
|
178
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.body),
|
|
179
|
+
children: [!fixed && headingNode, childrenNode && (0, _jsxRuntime.jsx)("div", {
|
|
326
180
|
style: contentStyle,
|
|
327
|
-
className:
|
|
181
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.content),
|
|
328
182
|
children: childrenNode
|
|
329
183
|
})]
|
|
330
184
|
}), footerNode && (0, _jsxRuntime.jsx)("div", {
|
|
331
185
|
style: footerStyle,
|
|
332
|
-
className: (0,
|
|
186
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.footer),
|
|
333
187
|
children: footerNode
|
|
334
188
|
})]
|
|
335
189
|
})]
|
|
@@ -342,4 +196,4 @@ DialogBase.displayName = 'Dialog';
|
|
|
342
196
|
var Dialog = exports.Dialog = /*#__PURE__*/(0, _react.memo)(DialogBase);
|
|
343
197
|
Dialog.displayName = 'Dialog';
|
|
344
198
|
var _default = exports["default"] = Dialog;
|
|
345
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NsYXNzbmFtZXMiLCJfcmVhY3QiLCJfQnV0dG9uIiwiX0ljb25zIiwiX1BvcnRhbCIsIl9UeXBvZ3JhcGh5IiwiX3JlZjMiLCJfY29uc3RhbnRzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0IiwiRElBTE9HX05BTUVTUEFDRSIsInNldEJvZHlPdmVyZmxvdyIsInZhbHVlIiwiZG9jdW1lbnQiLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsImxvY2tCb2R5U2Nyb2xsIiwiRElBTE9HX0RFRkFVTFRTIiwib3ZlcmZsb3dIaWRkZW4iLCJ1bmxvY2tCb2R5U2Nyb2xsIiwiTWF0aCIsIm1heCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm92ZXJmbG93UmVzZXQiLCJ1c2VCb2R5U2Nyb2xsTG9jayIsImxvY2tlZCIsImlzTG9ja2VkUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsInVuZGVmaW5lZCIsInVzZURpYWxvZ0ZvY3VzIiwiYWN0aXZlIiwiZGlhbG9nUmVmIiwicHJldmlvdXNBY3RpdmVFbGVtZW50UmVmIiwiYWN0aXZlRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiZnJhbWUiLCJ3aW5kb3ciLCJfYSIsImZvY3VzIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJfYiIsInVzZUVzY2FwZUNsb3NlIiwiZW5hYmxlZCIsIm9uQ2xvc2UiLCJoYW5kbGVLZXlEb3duIiwiZXZlbnQiLCJrZXkiLCJlc2NhcGVLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJrZXlkb3duRXZlbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyVHlwb2dyYXBoeU5vZGUiLCJub2RlIiwicmVuZGVyVGV4dCIsInJlbmRlcklsbHVzdHJhdGlvbk5vZGUiLCJpbGx1c3RyYXRpb24iLCJfanN4IiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsImlsbHVzdHJhdGlvblNpemUiLCJpc1ZhbGlkRWxlbWVudCIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJESUFMT0dfU0xPVCIsImNvbnRyb2wiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiQnV0dG9uIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsImFjdGlvbkJ1dHRvbiIsInJlc29sdmVGb290ZXJOb2RlIiwiX3JlZjIiLCJmb290ZXIiLCJjYW5jZWxCdXR0b24iLCJva0J1dHRvbiIsIkRJQUxPR19TSVpFIiwibGFyZ2UiLCJfanN4cyIsIl9GcmFnbWVudCIsIkRpYWxvZ0Jhc2UiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwidGl0bGUiLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwidGl0bGVJZCIsInVzZUlkIiwiaGFuZGxlU2V0RGlhbG9nUmVmIiwidXNlQ2FsbGJhY2siLCJmaWxsUmVmIiwiaGFuZGxlQ2FuY2VsIiwidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZU9rIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsIkRJQUxPR19DT05UUk9MX1RZUEUiLCJjbG9zZSIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiY29udHJvbEljb25TaXplIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJUeXBvZ3JhcGh5SGVhZGxpbmUiLCJhcyIsImNoaWxkcmVuTm9kZSIsIlR5cG9ncmFwaHlCb2R5Iiwic3Ryb25nIiwiRElBTE9HX0FDVElPTl9LSU5EIiwiY2FuY2VsIiwib2siLCJmb290ZXJOb2RlIiwiUG9ydGFsIiwicm9vdCIsIm92ZXJsYXkiLCJ3cmFwcGVyIiwicm9sZSIsInRhYkluZGV4IiwiRElBTE9HX01PRElGSUVSIiwid2l0aE1lZGlhIiwiaW5uZXIiLCJoZWFkZXIiLCJpZCIsImNvbnRlbnQiLCJkaXNwbGF5TmFtZSIsIkRpYWxvZyIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBU0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsS0FBQSxHQUFBVCxPQUFBO0FBSUEsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBZUFBLE9BQUE7QURsQ0EsSUFBSVcsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FB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L0RpYWxvZy9EaWFsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBpc1ZhbGlkRWxlbWVudCwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlSWQsIHVzZVJlZiwgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICcuLi9Qb3J0YWwnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZmlsbFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzL3JlZic7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX0xBQkVMUywgRElBTE9HX0NPTlRST0xfVFlQRSwgRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUywgRElBTE9HX0RFRkFVTFRfSUNPTlMsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfTU9ESUZJRVIsIERJQUxPR19OQU1FU1BBQ0UsIERJQUxPR19TSVpFLCBESUFMT0dfU0xPVCwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xubGV0IHNjcm9sbExvY2tDb3VudCA9IDA7XG5jb25zdCBnZXRDbGFzc05hbWUgPSAocHJlZml4Q2xzLCBzbG90LCBtb2RpZmllcikgPT4ge1xuICAgIGNvbnN0IGJhc2VDbGFzc05hbWUgPSBgJHtESUFMT0dfTkFNRVNQQUNFfS0ke3ByZWZpeENsc30ke3Nsb3QgPyBgLSR7c2xvdH1gIDogJyd9YDtcbiAgICByZXR1cm4gbW9kaWZpZXIgPyBgJHtiYXNlQ2xhc3NOYW1lfS0ke21vZGlmaWVyfWAgOiBiYXNlQ2xhc3NOYW1lO1xufTtcbmNvbnN0IHNldEJvZHlPdmVyZmxvdyA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm47XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHZhbHVlO1xufTtcbmNvbnN0IGxvY2tCb2R5U2Nyb2xsID0gKCkgPT4ge1xuICAgIHNjcm9sbExvY2tDb3VudCArPSAxO1xuICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dIaWRkZW4pO1xufTtcbmNvbnN0IHVubG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ID0gTWF0aC5tYXgoMCwgc2Nyb2xsTG9ja0NvdW50IC0gMSk7XG4gICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dSZXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5jb25zdCB1c2VCb2R5U2Nyb2xsTG9jayA9IChsb2NrZWQpID0+IHtcbiAgICBjb25zdCBpc0xvY2tlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFsb2NrZWQgfHwgaXNMb2NrZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlzTG9ja2VkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBsb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlzTG9ja2VkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHVubG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbG9ja2VkXSk7XG59O1xuY29uc3QgdXNlRGlhbG9nRm9jdXMgPSAoYWN0aXZlLCBkaWFsb2dSZWYpID0+IHtcbiAgICBjb25zdCBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFhY3RpdmUgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgICAgICBjb25zdCBmcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgKF9hID0gZGlhbG9nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW2FjdGl2ZSwgZGlhbG9nUmVmXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGFjdGl2ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgKF9iID0gKF9hID0gcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW2FjdGl2ZV0pO1xufTtcbmNvbnN0IHVzZUVzY2FwZUNsb3NlID0gKGVuYWJsZWQsIG9uQ2xvc2UpID0+IHtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVuYWJsZWQgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgIT09IERJQUxPR19ERUZBVUxUUy5lc2NhcGVLZXkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHZvaWQgKG9uQ2xvc2UgPT09IG51bGwgfHwgb25DbG9zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbG9zZSgpKTtcbiAgICAgICAgfTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoRElBTE9HX0RFRkFVTFRTLmtleWRvd25FdmVudCwgaGFuZGxlS2V5RG93bik7XG4gICAgICAgIH07XG4gICAgfSwgW2VuYWJsZWQsIG9uQ2xvc2VdKTtcbn07XG5jb25zdCByZW5kZXJUeXBvZ3JhcGh5Tm9kZSA9IChub2RlLCByZW5kZXJUZXh0KSA9PiB7XG4gICAgaWYgKG5vZGUgPT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSA9PT0gJ2Jvb2xlYW4nKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBub2RlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gcmVuZGVyVGV4dChub2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG59O1xuY29uc3QgcmVuZGVySWxsdXN0cmF0aW9uTm9kZSA9IChpbGx1c3RyYXRpb24pID0+IHtcbiAgICBpZiAoIWlsbHVzdHJhdGlvbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBpbGx1c3RyYXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6IGlsbHVzdHJhdGlvbiwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmlsbHVzdHJhdGlvblNpemUgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkRWxlbWVudChpbGx1c3RyYXRpb24pID8gaWxsdXN0cmF0aW9uIDogbnVsbDtcbn07XG5jb25zdCB0b1ZvaWRIYW5kbGVyID0gKGFjdGlvbikgPT4gKCkgPT4ge1xuICAgIHZvaWQgKGFjdGlvbiA9PT0gbnVsbCB8fCBhY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGlvbigpKTtcbn07XG5jb25zdCBjcmVhdGVBY3Rpb25IYW5kbGVyID0gKGFjdGlvbiwgYnV0dG9uQ2xpY2spID0+IChldmVudCkgPT4ge1xuICAgIGJ1dHRvbkNsaWNrID09PSBudWxsIHx8IGJ1dHRvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25DbGljayhldmVudCk7XG4gICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHwgIWFjdGlvbilcbiAgICAgICAgcmV0dXJuO1xuICAgIHZvaWQgYWN0aW9uKCk7XG59O1xuY29uc3QgcmVuZGVyQ29udHJvbEJ1dHRvbiA9IChwcmVmaXhDbHMsIHR5cGUsIGljb25Ob2RlLCBvbkNsaWNrKSA9PiAoX2pzeChcImJ1dHRvblwiLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250cm9sLCB0eXBlKSksIFwiYXJpYS1sYWJlbFwiOiBESUFMT0dfQ09OVFJPTF9MQUJFTFNbdHlwZV0sIG9uQ2xpY2s6IHRvVm9pZEhhbmRsZXIob25DbGljayksIGNoaWxkcmVuOiBpY29uTm9kZSB9KSk7XG5jb25zdCByZW5kZXJBY3Rpb25CdXR0b24gPSAoeyBwcmVmaXhDbHMsIGtpbmQsIHRleHQsIGFjdGlvbiwgYnV0dG9uUHJvcHMsIH0pID0+IHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRleHQgPT0gbnVsbCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHt9LCBidXR0b25Qcm9wcywgeyB0eXBlOiBESUFMT0dfREVGQVVMVFMuYnV0dG9uSHRtbFR5cGUsIHNpemU6IERJQUxPR19ERUZBVUxUUy5idXR0b25TaXplLCBjb2xvcjogKF9hID0gYnV0dG9uUHJvcHMgPT09IG51bGwgfHwgYnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvblByb3BzLmNvbG9yKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTW2tpbmRdLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYWN0aW9uQnV0dG9uKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYWN0aW9uQnV0dG9uLCBraW5kKSwgYnV0dG9uUHJvcHMgPT09IG51bGwgfHwgYnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvblByb3BzLmNsYXNzTmFtZSksIHN0eWxlOiBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuc3R5bGUsIG9uQ2xpY2s6IGNyZWF0ZUFjdGlvbkhhbmRsZXIoYWN0aW9uLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMub25DbGljayksIGNoaWxkcmVuOiB0ZXh0IH0pKSk7XG59O1xuY29uc3QgcmVzb2x2ZUZvb3Rlck5vZGUgPSAoeyBmb290ZXIsIHNpemUsIGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24sIH0pID0+IHtcbiAgICBpZiAoZm9vdGVyID09PSBudWxsKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGZvb3RlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgcmV0dXJuIGZvb3RlcihjYW5jZWxCdXR0b24sIG9rQnV0dG9uKTtcbiAgICBpZiAoZm9vdGVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBmb290ZXI7XG4gICAgaWYgKCFjYW5jZWxCdXR0b24gJiYgIW9rQnV0dG9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gc2l6ZSA9PT0gRElBTE9HX1NJWkUubGFyZ2VcbiAgICAgICAgPyAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbY2FuY2VsQnV0dG9uLCBva0J1dHRvbl0gfSkpXG4gICAgICAgIDogKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW29rQnV0dG9uLCBjYW5jZWxCdXR0b25dIH0pKTtcbn07XG5jb25zdCBEaWFsb2dCYXNlID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBzdHlsZSwgcHJlZml4Q2xzID0gRElBTE9HX0RFRkFVTFRfUFJFRklYLCBvcGVuID0gZmFsc2UsIHNpemUgPSBESUFMT0dfU0laRS5zbWFsbCwgbWFza0Nsb3NhYmxlID0gdHJ1ZSwgc2hvd0Nsb3NlSWNvbiA9IHRydWUsIHNob3dCYWNrSWNvbiA9IGZhbHNlLCBmdWxsV2lkdGggPSBmYWxzZSwgZml4ZWQgPSBmYWxzZSwgdGl0bGUsIGNoaWxkcmVuLCBpbGx1c3RyYXRpb24sIG1lZGlhLCBjbG9zZUljb24sIGJhY2tJY29uLCBmb290ZXIsIG9uT2ssIG9uQ2FuY2VsLCBvbkJhY2ssIG9rVGV4dCA9IERJQUxPR19ERUZBVUxUUy5va1RleHQsIGNhbmNlbFRleHQgPSBESUFMT0dfREVGQVVMVFMuY2FuY2VsVGV4dCwgcm9vdFN0eWxlLCB3cmFwcGVyU3R5bGUsIGJvZHlTdHlsZSwgaGVhZGVyU3R5bGUsIGNvbnRlbnRTdHlsZSwgZm9vdGVyU3R5bGUsIGNhbmNlbEJ1dHRvblByb3BzLCBva0J1dHRvblByb3BzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIiwgXCJvcGVuXCIsIFwic2l6ZVwiLCBcIm1hc2tDbG9zYWJsZVwiLCBcInNob3dDbG9zZUljb25cIiwgXCJzaG93QmFja0ljb25cIiwgXCJmdWxsV2lkdGhcIiwgXCJmaXhlZFwiLCBcInRpdGxlXCIsIFwiY2hpbGRyZW5cIiwgXCJpbGx1c3RyYXRpb25cIiwgXCJtZWRpYVwiLCBcImNsb3NlSWNvblwiLCBcImJhY2tJY29uXCIsIFwiZm9vdGVyXCIsIFwib25Pa1wiLCBcIm9uQ2FuY2VsXCIsIFwib25CYWNrXCIsIFwib2tUZXh0XCIsIFwiY2FuY2VsVGV4dFwiLCBcInJvb3RTdHlsZVwiLCBcIndyYXBwZXJTdHlsZVwiLCBcImJvZHlTdHlsZVwiLCBcImhlYWRlclN0eWxlXCIsIFwiY29udGVudFN0eWxlXCIsIFwiZm9vdGVyU3R5bGVcIiwgXCJjYW5jZWxCdXR0b25Qcm9wc1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0aXRsZUlkID0gdXNlSWQoKTtcbiAgICBjb25zdCBoYW5kbGVTZXREaWFsb2dSZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICBkaWFsb2dSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGZpbGxSZWYocmVmLCBub2RlKTtcbiAgICB9LCBbcmVmXSk7XG4gICAgY29uc3QgaGFuZGxlQ2FuY2VsID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQ2FuY2VsID09PSBudWxsIHx8IG9uQ2FuY2VsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNhbmNlbCgpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbk9rID09PSBudWxsIHx8IG9uT2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghbWFza0Nsb3NhYmxlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9KTtcbiAgICB1c2VCb2R5U2Nyb2xsTG9jayhvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhvcGVuLCBkaWFsb2dSZWYpO1xuICAgIHVzZUVzY2FwZUNsb3NlKG9wZW4sIGhhbmRsZUNhbmNlbCk7XG4gICAgY29uc3QgaGFzTWVkaWEgPSBtZWRpYSAhPSBudWxsO1xuICAgIGNvbnN0IGNsb3NlQ29udHJvbE5vZGUgPSBzaG93Q2xvc2VJY29uXG4gICAgICAgID8gcmVuZGVyQ29udHJvbEJ1dHRvbihwcmVmaXhDbHMsIERJQUxPR19DT05UUk9MX1RZUEUuY2xvc2UsIGNsb3NlSWNvbiAhPT0gbnVsbCAmJiBjbG9zZUljb24gIT09IHZvaWQgMCA/IGNsb3NlSWNvbiA6IChfanN4KEljb25zLCB7IG5hbWU6IERJQUxPR19ERUZBVUxUX0lDT05TW0RJQUxPR19DT05UUk9MX1RZUEUuY2xvc2VdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQ2FuY2VsKVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgYmFja0NvbnRyb2xOb2RlID0gc2hvd0JhY2tJY29uXG4gICAgICAgID8gcmVuZGVyQ29udHJvbEJ1dHRvbihwcmVmaXhDbHMsIERJQUxPR19DT05UUk9MX1RZUEUuYmFjaywgYmFja0ljb24gIT09IG51bGwgJiYgYmFja0ljb24gIT09IHZvaWQgMCA/IGJhY2tJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrXSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmNvbnRyb2xJY29uU2l6ZSB9KSksIGhhbmRsZUJhY2spXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBpbGx1c3RyYXRpb25Ob2RlID0gcmVuZGVySWxsdXN0cmF0aW9uTm9kZShpbGx1c3RyYXRpb24pO1xuICAgIGNvbnN0IHRpdGxlTm9kZSA9IHJlbmRlclR5cG9ncmFwaHlOb2RlKHRpdGxlLCAodmFsdWUpID0+IChfanN4KFR5cG9ncmFwaHlIZWFkbGluZSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcImgyXCIsIGNvbG9yOiBcImRlZmF1bHRcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7XG4gICAgY29uc3QgY2hpbGRyZW5Ob2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUoY2hpbGRyZW4sICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogXCJtZFwiLCBhczogXCJwXCIsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IFwiZGVmYXVsdC1zZWNvbmRhcnlcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcmVuZGVyQWN0aW9uQnV0dG9uKHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBraW5kOiBESUFMT0dfQUNUSU9OX0tJTkQuY2FuY2VsLFxuICAgICAgICB0ZXh0OiBjYW5jZWxUZXh0LFxuICAgICAgICBhY3Rpb246IG9uQ2FuY2VsLFxuICAgICAgICBidXR0b25Qcm9wczogY2FuY2VsQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5vayxcbiAgICAgICAgdGV4dDogb2tUZXh0LFxuICAgICAgICBhY3Rpb246IG9uT2ssXG4gICAgICAgIGJ1dHRvblByb3BzOiBva0J1dHRvblByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IGZvb3Rlck5vZGUgPSByZXNvbHZlRm9vdGVyTm9kZSh7XG4gICAgICAgIGZvb3RlcixcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgY2FuY2VsQnV0dG9uLFxuICAgICAgICBva0J1dHRvbixcbiAgICB9KTtcbiAgICBpZiAoIW9wZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHJvb3RTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5yb290KSwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5vdmVybGF5KSwgb25DbGljazogaGFuZGxlT3ZlcmxheUNsaWNrIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHdyYXBwZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC53cmFwcGVyKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBoYW5kbGVTZXREaWFsb2dSZWYsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1tb2RhbFwiOiBcInRydWVcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGUgPyB0aXRsZUlkIDogdW5kZWZpbmVkLCB0YWJJbmRleDogLTEsIHN0eWxlOiBzdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIHNpemUpLCBmdWxsV2lkdGggJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZnVsbFdpZHRoKSwgZml4ZWQgJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZml4ZWQpLCBoYXNNZWRpYSAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi53aXRoTWVkaWEpLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm1lZGlhKSwgY2hpbGRyZW46IG1lZGlhIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaW5uZXIpLCBjaGlsZHJlbjogWyhiYWNrQ29udHJvbE5vZGUgfHwgKGZpeGVkICYmIChpbGx1c3RyYXRpb25Ob2RlIHx8IHRpdGxlTm9kZSkpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpLCBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBib2R5U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYm9keSksIGNoaWxkcmVuOiBbIWZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgIWZpeGVkICYmIHRpdGxlTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGlkOiB0aXRsZUlkLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnRpdGxlKSwgY2hpbGRyZW46IHRpdGxlTm9kZSB9KSksIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3RlciksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3Rlciwgc2l6ZSkpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX1BvcnRhbCIsIl9yZWYiLCJfY2xhc3NOYW1lIiwiX2NvbnN0YW50cyIsIl9EaWFsb2dDb250ZW50IiwiX0RpYWxvZ0NvbnRyb2xzIiwiX2hvb2tzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJEaWFsb2dCYXNlIiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiRElBTE9HX1NJWkUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwid2lkdGgiLCJ0aXRsZSIsImNoaWxkcmVuIiwiaWxsdXN0cmF0aW9uIiwibWVkaWEiLCJjbG9zZUljb24iLCJiYWNrSWNvbiIsImZvb3RlciIsIm9uT2siLCJvbkNhbmNlbCIsIm9uQmFjayIsIl9wcm9wcyRva1RleHQiLCJva1RleHQiLCJESUFMT0dfREVGQVVMVFMiLCJfcHJvcHMkY2FuY2VsVGV4dCIsImNhbmNlbFRleHQiLCJyb290U3R5bGUiLCJ3cmFwcGVyU3R5bGUiLCJib2R5U3R5bGUiLCJoZWFkZXJTdHlsZSIsImNvbnRlbnRTdHlsZSIsImZvb3RlclN0eWxlIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJva0J1dHRvblByb3BzIiwicmVzdCIsImRpYWxvZ1JlZiIsInVzZVJlZiIsInRpdGxlSWQiLCJ1c2VJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsInVzZUNhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJmaWxsUmVmIiwiaGFuZGxlQ2FuY2VsIiwidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZUJhY2siLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJ1c2VCb2R5U2Nyb2xsTG9jayIsInVzZURpYWxvZ0ZvY3VzIiwidXNlRXNjYXBlQ2xvc2UiLCJoYXNNZWRpYSIsImNsb3NlQ29udHJvbE5vZGUiLCJyZW5kZXJEaWFsb2dDb250cm9sQnV0dG9uIiwidHlwZSIsIkRJQUxPR19DT05UUk9MX1RZUEUiLCJjbG9zZSIsImljb24iLCJvbkNsaWNrIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImhhc0hlYWRpbmciLCJoYXNEaWFsb2dIZWFkaW5nQ29udGVudCIsImhlYWRpbmdOb2RlIiwiX2pzeCIsIkRpYWxvZ0hlYWRpbmciLCJjaGlsZHJlbk5vZGUiLCJyZW5kZXJEaWFsb2dCb2R5Q29udGVudCIsImNhbmNlbEJ1dHRvbiIsInJlbmRlckRpYWxvZ0FjdGlvbkJ1dHRvbiIsImtpbmQiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJjYW5jZWwiLCJ0ZXh0IiwiYWN0aW9uIiwiYnV0dG9uUHJvcHMiLCJva0J1dHRvbiIsIm9rIiwiZm9vdGVyTm9kZSIsInJlc29sdmVEaWFsb2dGb290ZXIiLCJwYW5lbENsYXNzTmFtZSIsImdldERpYWxvZ1BhbmVsQ2xhc3NOYW1lIiwicGFuZWxTdHlsZSIsImFzc2lnbiIsIlBvcnRhbCIsIl9qc3hzIiwiZ2V0RGlhbG9nQ2xhc3NOYW1lIiwiRElBTE9HX1NMT1QiLCJyb290Iiwib3ZlcmxheSIsIndyYXBwZXIiLCJyb2xlIiwidW5kZWZpbmVkIiwidGFiSW5kZXgiLCJpbm5lciIsImhlYWRlciIsImJvZHkiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLElBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQVFBLElBQUFRLGNBQUEsR0FBQVIsT0FBQTtBQUtBLElBQUFTLGVBQUEsR0FBQVQsT0FBQTtBQUtBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUVBQSxPQUFBO0FEekJBLElBQUlXLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FB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LEVBQ3JCRyxZQUFZLElBQ1gsSUFBQUYsZUFBQSxFQUFBLEtBQUEsRUFBQTtnQkFDRTFFLEtBQUssRUFBRXdDLFlBQVk7Z0JBQ25CekMsU0FBUyxFQUFFLElBQUFpRyw2QkFBa0IsRUFBQzlGLFNBQVMsRUFBRStGLHNCQUFXLENBQUNVLE9BQU8sQ0FBQztnQkFBQXJGLFFBQUEsRUFFNURzRDtjQUFZLENBQUEsQ0FFaEI7WUFBQSxDQUFBLENBQ0csRUFDTFksVUFBVSxJQUNULElBQUFkLGVBQUEsRUFBQSxLQUFBLEVBQUE7Y0FDRTFFLEtBQUssRUFBRXlDLFdBQVc7Y0FDbEIxQyxTQUFTLEVBQUUsSUFBQWlHLDZCQUFrQixFQUFDOUYsU0FBUyxFQUFFK0Ysc0JBQVcsQ0FBQ3RFLE1BQU0sQ0FBQztjQUFBTCxRQUFBLEVBRTNEa0U7WUFBVSxDQUFBLENBRWQ7VUFBQSxDQUFBLENBQ0c7UUFBQSxDQUFBLENBQUE7TUFDRixDQUFBLENBQ0Y7SUFBQSxDQUFBO0VBQ0YsQ0FBQSxDQUNDO0FBRWIsQ0FBQyxDQUFDO0FBRUY3RixVQUFVLENBQUNpSCxXQUFXLEdBQUcsUUFBUTtBQUUxQixJQUFNQyxNQUFNLEdBQUFDLE9BQUEsQ0FBQUQsTUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNwSCxVQUFVLENBQUM7QUFFdENrSCxNQUFNLENBQUNELFdBQVcsR0FBRyxRQUFRO0FBQUMsSUFBQUksUUFBQSxHQUFBRixPQUFBLGNBRWZELE1BQU0iLCJmaWxlIjoiY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSWQsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IGdldERpYWxvZ0NsYXNzTmFtZSwgZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUgfSBmcm9tICcuL2NsYXNzTmFtZSc7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX1RZUEUsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0laRSwgRElBTE9HX1NMT1QsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGlhbG9nSGVhZGluZywgaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQsIHJlbmRlckRpYWxvZ0JvZHlDb250ZW50LCB9IGZyb20gJy4vRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24sIHJlbmRlckRpYWxvZ0NvbnRyb2xCdXR0b24sIHJlc29sdmVEaWFsb2dGb290ZXIsIH0gZnJvbSAnLi9EaWFsb2dDb250cm9scyc7XG5pbXBvcnQgeyB1c2VCb2R5U2Nyb2xsTG9jaywgdXNlRGlhbG9nRm9jdXMsIHVzZUVzY2FwZUNsb3NlIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgRGlhbG9nQmFzZSA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IERJQUxPR19ERUZBVUxUX1BSRUZJWCwgb3BlbiA9IGZhbHNlLCBzaXplID0gRElBTE9HX1NJWkUuc21hbGwsIG1hc2tDbG9zYWJsZSA9IHRydWUsIHNob3dDbG9zZUljb24gPSB0cnVlLCBzaG93QmFja0ljb24gPSBmYWxzZSwgZnVsbFdpZHRoID0gZmFsc2UsIGZpeGVkID0gZmFsc2UsIHdpZHRoLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwid2lkdGhcIiwgXCJ0aXRsZVwiLCBcImNoaWxkcmVuXCIsIFwiaWxsdXN0cmF0aW9uXCIsIFwibWVkaWFcIiwgXCJjbG9zZUljb25cIiwgXCJiYWNrSWNvblwiLCBcImZvb3RlclwiLCBcIm9uT2tcIiwgXCJvbkNhbmNlbFwiLCBcIm9uQmFja1wiLCBcIm9rVGV4dFwiLCBcImNhbmNlbFRleHRcIiwgXCJyb290U3R5bGVcIiwgXCJ3cmFwcGVyU3R5bGVcIiwgXCJib2R5U3R5bGVcIiwgXCJoZWFkZXJTdHlsZVwiLCBcImNvbnRlbnRTdHlsZVwiLCBcImZvb3RlclN0eWxlXCIsIFwiY2FuY2VsQnV0dG9uUHJvcHNcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdGl0bGVJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaGFuZGxlU2V0RGlhbG9nUmVmID0gdXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgZGlhbG9nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBmaWxsUmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZl0pO1xuICAgIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkNhbmNlbCA9PT0gbnVsbCB8fCBvbkNhbmNlbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DYW5jZWwoKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghbWFza0Nsb3NhYmxlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9KTtcbiAgICB1c2VCb2R5U2Nyb2xsTG9jayhvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhvcGVuLCBkaWFsb2dSZWYpO1xuICAgIHVzZUVzY2FwZUNsb3NlKG9wZW4sIGhhbmRsZUNhbmNlbCk7XG4gICAgY29uc3QgaGFzTWVkaWEgPSBtZWRpYSAhPSBudWxsO1xuICAgIGNvbnN0IGNsb3NlQ29udHJvbE5vZGUgPSBzaG93Q2xvc2VJY29uXG4gICAgICAgID8gcmVuZGVyRGlhbG9nQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICB0eXBlOiBESUFMT0dfQ09OVFJPTF9UWVBFLmNsb3NlLFxuICAgICAgICAgICAgaWNvbjogY2xvc2VJY29uLFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlQ2FuY2VsLFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgYmFja0NvbnRyb2xOb2RlID0gc2hvd0JhY2tJY29uXG4gICAgICAgID8gcmVuZGVyRGlhbG9nQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICB0eXBlOiBESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2ssXG4gICAgICAgICAgICBpY29uOiBiYWNrSWNvbixcbiAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUJhY2ssXG4gICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBoYXNIZWFkaW5nID0gaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQoeyB0aXRsZSwgaWxsdXN0cmF0aW9uIH0pO1xuICAgIGNvbnN0IGhlYWRpbmdOb2RlID0gaGFzSGVhZGluZyA/IChfanN4KERpYWxvZ0hlYWRpbmcsIHsgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHRpdGxlSWQ6IHRpdGxlSWQsIHRpdGxlOiB0aXRsZSwgaWxsdXN0cmF0aW9uOiBpbGx1c3RyYXRpb24gfSkpIDogbnVsbDtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJEaWFsb2dCb2R5Q29udGVudChjaGlsZHJlbik7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcmVuZGVyRGlhbG9nQWN0aW9uQnV0dG9uKHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBraW5kOiBESUFMT0dfQUNUSU9OX0tJTkQuY2FuY2VsLFxuICAgICAgICB0ZXh0OiBjYW5jZWxUZXh0LFxuICAgICAgICBhY3Rpb246IG9uQ2FuY2VsLFxuICAgICAgICBidXR0b25Qcm9wczogY2FuY2VsQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5vayxcbiAgICAgICAgdGV4dDogb2tUZXh0LFxuICAgICAgICBhY3Rpb246IG9uT2ssXG4gICAgICAgIGJ1dHRvblByb3BzOiBva0J1dHRvblByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IGZvb3Rlck5vZGUgPSByZXNvbHZlRGlhbG9nRm9vdGVyKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGNvbnN0IHBhbmVsQ2xhc3NOYW1lID0gZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUoe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGZ1bGxXaWR0aCxcbiAgICAgICAgZml4ZWQsXG4gICAgICAgIGhhc01lZGlhLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgfSk7XG4gICAgLy8gYHdpZHRoYCBpcyBhIGNvbnZlbmllbmNlIHRoYXQgc2V0cyB0aGUgcGFuZWwncyB3aWR0aCBpbmxpbmUsIG92ZXJyaWRpbmcgdGhlXG4gICAgLy8gYHNpemVgIHByZXNldCdzIGNsYXNzLWxldmVsIHdpZHRoLiBBbiBleHBsaWNpdCBgc3R5bGUud2lkdGhgIHN0aWxsIHdpbnMgKGl0IGlzXG4gICAgLy8gc3ByZWFkIGxhc3QpLiBOb3RlOiBgd2lkdGhgIGlzIG5vdCBtZWFudCB0byBiZSBjb21iaW5lZCB3aXRoIGBmdWxsV2lkdGhgLCB3aG9zZVxuICAgIC8vIGBtYXgtd2lkdGg6IG5vbmVgIC8gYHdpZHRoOiAxMDAlYCBydWxlcyBnb3Zlcm4gc2l6aW5nIG9uIHRoZWlyIG93bi5cbiAgICBjb25zdCBwYW5lbFN0eWxlID0gT2JqZWN0LmFzc2lnbih7IHdpZHRoIH0sIHN0eWxlKTtcbiAgICBpZiAoIW9wZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHJvb3RTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5yb290KSwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5vdmVybGF5KSwgb25DbGljazogaGFuZGxlT3ZlcmxheUNsaWNrIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHdyYXBwZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC53cmFwcGVyKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBoYW5kbGVTZXREaWFsb2dSZWYsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1tb2RhbFwiOiBcInRydWVcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGUgPyB0aXRsZUlkIDogdW5kZWZpbmVkLCB0YWJJbmRleDogLTEsIHN0eWxlOiBwYW5lbFN0eWxlLCBjbGFzc05hbWU6IHBhbmVsQ2xhc3NOYW1lLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5tZWRpYSksIGNoaWxkcmVuOiBtZWRpYSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgaGVhZGluZ05vZGUpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGhlYWRpbmdOb2RlXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaGVhZGluZ05vZGUsIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5mb290ZXIpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IconName } from "../Icons";
|
|
3
|
+
interface DialogHeadingProps {
|
|
4
|
+
prefixCls: string;
|
|
5
|
+
titleId: string;
|
|
6
|
+
title?: ReactNode;
|
|
7
|
+
illustration?: ReactNode | IconName;
|
|
8
|
+
}
|
|
9
|
+
interface DialogHeadingContentOptions {
|
|
10
|
+
title?: ReactNode;
|
|
11
|
+
illustration?: ReactNode | IconName;
|
|
12
|
+
}
|
|
13
|
+
export declare const hasDialogHeadingContent: ({ title, illustration, }: DialogHeadingContentOptions) => boolean;
|
|
14
|
+
export declare const DialogHeading: ({ prefixCls, titleId, title, illustration, }: DialogHeadingProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
export declare const renderDialogBodyContent: (children: ReactNode) => ReactNode;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderDialogBodyContent = exports.hasDialogHeadingContent = exports.DialogHeading = void 0;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _Icons = require("../Icons");
|
|
10
|
+
var _Typography = require("../Typography");
|
|
11
|
+
var _className = require("./className");
|
|
12
|
+
var _constants = require("./constants");
|
|
13
|
+
var hasTextNode = function hasTextNode(node) {
|
|
14
|
+
return node != null && typeof node !== 'boolean';
|
|
15
|
+
};
|
|
16
|
+
var hasIllustrationNode = function hasIllustrationNode(illustration) {
|
|
17
|
+
return Boolean(illustration && (typeof illustration === 'string' || /*#__PURE__*/(0, _react.isValidElement)(illustration)));
|
|
18
|
+
};
|
|
19
|
+
var renderTypographyNode = function renderTypographyNode(node, renderText) {
|
|
20
|
+
if (!hasTextNode(node)) return null;
|
|
21
|
+
if (typeof node === 'string' || typeof node === 'number') {
|
|
22
|
+
return renderText(node);
|
|
23
|
+
}
|
|
24
|
+
return node;
|
|
25
|
+
};
|
|
26
|
+
var renderIllustrationNode = function renderIllustrationNode(illustration) {
|
|
27
|
+
if (!illustration) return null;
|
|
28
|
+
if (typeof illustration === 'string') {
|
|
29
|
+
return (0, _jsxRuntime.jsx)(_Icons.Icons, {
|
|
30
|
+
name: illustration,
|
|
31
|
+
size: _constants.DIALOG_DEFAULTS.illustrationSize
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return /*#__PURE__*/(0, _react.isValidElement)(illustration) ? illustration : null;
|
|
35
|
+
};
|
|
36
|
+
var hasDialogHeadingContent = exports.hasDialogHeadingContent = function hasDialogHeadingContent(_ref) {
|
|
37
|
+
var title = _ref.title,
|
|
38
|
+
illustration = _ref.illustration;
|
|
39
|
+
return hasIllustrationNode(illustration) || hasTextNode(title);
|
|
40
|
+
};
|
|
41
|
+
var DialogHeading = exports.DialogHeading = function DialogHeading(_ref2) {
|
|
42
|
+
var prefixCls = _ref2.prefixCls,
|
|
43
|
+
titleId = _ref2.titleId,
|
|
44
|
+
title = _ref2.title,
|
|
45
|
+
illustration = _ref2.illustration;
|
|
46
|
+
var illustrationNode = renderIllustrationNode(illustration);
|
|
47
|
+
var titleNode = renderTypographyNode(title, function (value) {
|
|
48
|
+
return (0, _jsxRuntime.jsx)(_Typography.TypographyHeadline, {
|
|
49
|
+
size: "md",
|
|
50
|
+
as: "h2",
|
|
51
|
+
color: "default",
|
|
52
|
+
children: value
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
if (!illustrationNode && !titleNode) return null;
|
|
56
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
57
|
+
children: [illustrationNode && (0, _jsxRuntime.jsx)("div", {
|
|
58
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.illustration),
|
|
59
|
+
children: illustrationNode
|
|
60
|
+
}), titleNode && (0, _jsxRuntime.jsx)("div", {
|
|
61
|
+
id: titleId,
|
|
62
|
+
className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.title),
|
|
63
|
+
children: titleNode
|
|
64
|
+
})]
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
var renderDialogBodyContent = exports.renderDialogBodyContent = function renderDialogBodyContent(children) {
|
|
68
|
+
return renderTypographyNode(children, function (value) {
|
|
69
|
+
return (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
|
|
70
|
+
size: "md",
|
|
71
|
+
as: "p",
|
|
72
|
+
strong: true,
|
|
73
|
+
color: "default-secondary",
|
|
74
|
+
children: value
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfSWNvbnMiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc05hbWUiLCJfY29uc3RhbnRzIiwiaGFzVGV4dE5vZGUiLCJub2RlIiwiaGFzSWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIkJvb2xlYW4iLCJpc1ZhbGlkRWxlbWVudCIsInJlbmRlclR5cG9ncmFwaHlOb2RlIiwicmVuZGVyVGV4dCIsInJlbmRlcklsbHVzdHJhdGlvbk5vZGUiLCJfanN4IiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsIkRJQUxPR19ERUZBVUxUUyIsImlsbHVzdHJhdGlvblNpemUiLCJoYXNEaWFsb2dIZWFkaW5nQ29udGVudCIsImV4cG9ydHMiLCJfcmVmIiwidGl0bGUiLCJEaWFsb2dIZWFkaW5nIiwiX3JlZjIiLCJwcmVmaXhDbHMiLCJ0aXRsZUlkIiwiaWxsdXN0cmF0aW9uTm9kZSIsInRpdGxlTm9kZSIsInZhbHVlIiwiVHlwb2dyYXBoeUhlYWRsaW5lIiwiYXMiLCJjb2xvciIsImNoaWxkcmVuIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJnZXREaWFsb2dDbGFzc05hbWUiLCJESUFMT0dfU0xPVCIsImlkIiwicmVuZGVyRGlhbG9nQm9keUNvbnRlbnQiLCJUeXBvZ3JhcGh5Qm9keSIsInN0cm9uZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxP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QUEsRUFBQTtNQUFLMEIsRUFBRSxFQUFFYixPQUFPO01BQUVVLFNBQVMsRUFBRSxJQUFBQyw2QkFBa0IsRUFBQ1osU0FBUyxFQUFFYSxzQkFBVyxDQUFDaEIsS0FBSyxDQUFDO01BQUFXLFFBQUEsRUFDMUVMO0lBQVMsQ0FBQSxDQUViO0VBQUEsQ0FBQSxDQUNBO0FBRVAsQ0FBQztBQUVNLElBQU1ZLHVCQUF1QixHQUFBcEIsT0FBQSxDQUFBb0IsdUJBQUEsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJUCxRQUFtQjtFQUFBLE9BQ3pEdkIsb0JBQW9CLENBQUN1QixRQUFRLEVBQUUsVUFBQ0osS0FBSztJQUFBLE9BQ25DLElBQUFoQixlQUFBLEVBQUM0QiwwQkFBYyxFQUFBO01BQUN6QixJQUFJLEVBQUMsSUFBSTtNQUFDZSxFQUFFLEVBQUMsR0FBRztNQUFDVyxNQUFNLEVBQUEsSUFBQTtNQUFDVixLQUFLLEVBQUMsbUJBQW1CO01BQUFDLFFBQUEsRUFDOURKO0lBQUssQ0FBQSxDQUNTO0VBQUEsQ0FDbEIsQ0FBQztBQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZ2V0RGlhbG9nQ2xhc3NOYW1lIH0gZnJvbSAnLi9jbGFzc05hbWUnO1xuaW1wb3J0IHsgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0xPVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGhhc1RleHROb2RlID0gKG5vZGUpID0+IG5vZGUgIT0gbnVsbCAmJiB0eXBlb2Ygbm9kZSAhPT0gJ2Jvb2xlYW4nO1xuY29uc3QgaGFzSWxsdXN0cmF0aW9uTm9kZSA9IChpbGx1c3RyYXRpb24pID0+IEJvb2xlYW4oaWxsdXN0cmF0aW9uICYmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJyB8fCBpc1ZhbGlkRWxlbWVudChpbGx1c3RyYXRpb24pKSk7XG5jb25zdCByZW5kZXJUeXBvZ3JhcGh5Tm9kZSA9IChub2RlLCByZW5kZXJUZXh0KSA9PiB7XG4gICAgaWYgKCFoYXNUZXh0Tm9kZShub2RlKSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygbm9kZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRleHQobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcbmNvbnN0IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUgPSAoaWxsdXN0cmF0aW9uKSA9PiB7XG4gICAgaWYgKCFpbGx1c3RyYXRpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpbGx1c3RyYXRpb24sIHNpemU6IERJQUxPR19ERUZBVUxUUy5pbGx1c3RyYXRpb25TaXplIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZEVsZW1lbnQoaWxsdXN0cmF0aW9uKSA/IGlsbHVzdHJhdGlvbiA6IG51bGw7XG59O1xuZXhwb3J0IGNvbnN0IGhhc0RpYWxvZ0hlYWRpbmdDb250ZW50ID0gKHsgdGl0bGUsIGlsbHVzdHJhdGlvbiwgfSkgPT4gaGFzSWxsdXN0cmF0aW9uTm9kZShpbGx1c3RyYXRpb24pIHx8IGhhc1RleHROb2RlKHRpdGxlKTtcbmV4cG9ydCBjb25zdCBEaWFsb2dIZWFkaW5nID0gKHsgcHJlZml4Q2xzLCB0aXRsZUlkLCB0aXRsZSwgaWxsdXN0cmF0aW9uLCB9KSA9PiB7XG4gICAgY29uc3QgaWxsdXN0cmF0aW9uTm9kZSA9IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUoaWxsdXN0cmF0aW9uKTtcbiAgICBjb25zdCB0aXRsZU5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZSh0aXRsZSwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5SGVhZGxpbmUsIHsgc2l6ZTogXCJtZFwiLCBhczogXCJoMlwiLCBjb2xvcjogXCJkZWZhdWx0XCIsIGNoaWxkcmVuOiB2YWx1ZSB9KSkpO1xuICAgIGlmICghaWxsdXN0cmF0aW9uTm9kZSAmJiAhdGl0bGVOb2RlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2lsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldERpYWxvZ0NsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dCb2R5Q29udGVudCA9IChjaGlsZHJlbikgPT4gcmVuZGVyVHlwb2dyYXBoeU5vZGUoY2hpbGRyZW4sICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogXCJtZFwiLCBhczogXCJwXCIsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IFwiZGVmYXVsdC1zZWNvbmRhcnlcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|