@1money/component-ui 0.0.78 → 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.
Files changed (35) hide show
  1. package/es/components/Button/Button.js +17 -15
  2. package/es/components/Button/constants.d.ts +0 -1
  3. package/es/components/Button/constants.js +1 -2
  4. package/es/components/Button/interface.d.ts +7 -0
  5. package/es/components/Dialog/Dialog.js +54 -208
  6. package/es/components/Dialog/DialogContent.d.ts +16 -0
  7. package/es/components/Dialog/DialogContent.js +72 -0
  8. package/es/components/Dialog/DialogControls.d.ts +27 -0
  9. package/es/components/Dialog/DialogControls.js +65 -0
  10. package/es/components/Dialog/className.d.ts +12 -0
  11. package/es/components/Dialog/className.js +16 -0
  12. package/es/components/Dialog/hooks.d.ts +5 -0
  13. package/es/components/Dialog/hooks.js +69 -0
  14. package/es/components/Dialog/style/Dialog.css +2 -11
  15. package/es/components/Dialog/types.d.ts +1 -0
  16. package/es/components/Dialog/types.js +2 -0
  17. package/es/index.css +1 -1
  18. package/lib/components/Button/Button.js +17 -15
  19. package/lib/components/Button/constants.d.ts +0 -1
  20. package/lib/components/Button/constants.js +2 -3
  21. package/lib/components/Button/interface.d.ts +7 -0
  22. package/lib/components/Dialog/Dialog.js +56 -210
  23. package/lib/components/Dialog/DialogContent.d.ts +16 -0
  24. package/lib/components/Dialog/DialogContent.js +78 -0
  25. package/lib/components/Dialog/DialogControls.d.ts +27 -0
  26. package/lib/components/Dialog/DialogControls.js +72 -0
  27. package/lib/components/Dialog/className.d.ts +12 -0
  28. package/lib/components/Dialog/className.js +23 -0
  29. package/lib/components/Dialog/hooks.d.ts +5 -0
  30. package/lib/components/Dialog/hooks.js +75 -0
  31. package/lib/components/Dialog/style/Dialog.css +2 -11
  32. package/lib/components/Dialog/types.d.ts +1 -0
  33. package/lib/components/Dialog/types.js +6 -0
  34. package/lib/index.css +1 -1
  35. package/package.json +1 -1
@@ -6,158 +6,17 @@ var __rest = this && this.__rest || function (s, e) {
6
6
  }
7
7
  return t;
8
8
  };
9
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import useEventCallback from '@1money/hooks/useEventCallback';
11
- import classNames from 'classnames';
12
- import { forwardRef, isValidElement, memo, useCallback, useEffect, useId, useRef } from 'react';
13
- import { Button } from '../Button';
14
- import { Icons } from '../Icons';
11
+ import { forwardRef, memo, useCallback, useId, useRef } from 'react';
15
12
  import { Portal } from '../Portal';
16
- import { TypographyBody, TypographyHeadline } from '../Typography';
17
13
  import { fillRef } from '../../utils/ref';
18
- import { DIALOG_ACTION_KIND, DIALOG_CONTROL_LABELS, DIALOG_CONTROL_TYPE, DIALOG_DEFAULT_BUTTON_COLORS, DIALOG_DEFAULT_ICONS, DIALOG_DEFAULT_PREFIX, DIALOG_DEFAULTS, DIALOG_MODIFIER, DIALOG_NAMESPACE, DIALOG_SIZE, DIALOG_SLOT } from './constants';
14
+ import { getDialogClassName, getDialogPanelClassName } from './className';
15
+ import { DIALOG_ACTION_KIND, DIALOG_CONTROL_TYPE, DIALOG_DEFAULT_PREFIX, DIALOG_DEFAULTS, DIALOG_SIZE, DIALOG_SLOT } from './constants';
16
+ import { DialogHeading, hasDialogHeadingContent, renderDialogBodyContent } from './DialogContent';
17
+ import { renderDialogActionButton, renderDialogControlButton, resolveDialogFooter } from './DialogControls';
18
+ import { useBodyScrollLock, useDialogFocus, useEscapeClose } from './hooks';
19
19
  import './style';
20
- var scrollLockCount = 0;
21
- var getClassName = function getClassName(prefixCls, slot, modifier) {
22
- var baseClassName = "".concat(DIALOG_NAMESPACE, "-").concat(prefixCls).concat(slot ? "-".concat(slot) : '');
23
- return modifier ? "".concat(baseClassName, "-").concat(modifier) : baseClassName;
24
- };
25
- var setBodyOverflow = function setBodyOverflow(value) {
26
- if (typeof document === 'undefined') return;
27
- document.body.style.overflow = value;
28
- };
29
- var lockBodyScroll = function lockBodyScroll() {
30
- scrollLockCount += 1;
31
- setBodyOverflow(DIALOG_DEFAULTS.overflowHidden);
32
- };
33
- var unlockBodyScroll = function unlockBodyScroll() {
34
- scrollLockCount = Math.max(0, scrollLockCount - 1);
35
- if (scrollLockCount === 0) {
36
- requestAnimationFrame(function () {
37
- if (scrollLockCount === 0) {
38
- setBodyOverflow(DIALOG_DEFAULTS.overflowReset);
39
- }
40
- });
41
- }
42
- };
43
- var useBodyScrollLock = function useBodyScrollLock(locked) {
44
- var isLockedRef = useRef(false);
45
- useEffect(function () {
46
- if (!locked || isLockedRef.current) return undefined;
47
- isLockedRef.current = true;
48
- lockBodyScroll();
49
- return function () {
50
- if (!isLockedRef.current) return;
51
- isLockedRef.current = false;
52
- unlockBodyScroll();
53
- };
54
- }, [locked]);
55
- };
56
- var useDialogFocus = function useDialogFocus(active, dialogRef) {
57
- var previousActiveElementRef = useRef(null);
58
- useEffect(function () {
59
- if (!active || typeof document === 'undefined') return undefined;
60
- previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
61
- var frame = window.requestAnimationFrame(function () {
62
- var _a;
63
- (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
64
- });
65
- return function () {
66
- window.cancelAnimationFrame(frame);
67
- };
68
- }, [active, dialogRef]);
69
- useEffect(function () {
70
- var _a, _b;
71
- if (active) return;
72
- (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
73
- previousActiveElementRef.current = null;
74
- }, [active]);
75
- };
76
- var useEscapeClose = function useEscapeClose(enabled, onClose) {
77
- useEffect(function () {
78
- if (!enabled || typeof document === 'undefined') return undefined;
79
- var handleKeyDown = function handleKeyDown(event) {
80
- if (event.key !== DIALOG_DEFAULTS.escapeKey) return;
81
- event.preventDefault();
82
- void (onClose === null || onClose === void 0 ? void 0 : onClose());
83
- };
84
- document.addEventListener(DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
85
- return function () {
86
- document.removeEventListener(DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
87
- };
88
- }, [enabled, onClose]);
89
- };
90
- var renderTypographyNode = function renderTypographyNode(node, renderText) {
91
- if (node == null || typeof node === 'boolean') return null;
92
- if (typeof node === 'string' || typeof node === 'number') {
93
- return renderText(node);
94
- }
95
- return node;
96
- };
97
- var renderIllustrationNode = function renderIllustrationNode(illustration) {
98
- if (!illustration) return null;
99
- if (typeof illustration === 'string') {
100
- return _jsx(Icons, {
101
- name: illustration,
102
- size: DIALOG_DEFAULTS.illustrationSize
103
- });
104
- }
105
- return /*#__PURE__*/isValidElement(illustration) ? illustration : null;
106
- };
107
- var toVoidHandler = function toVoidHandler(action) {
108
- return function () {
109
- void (action === null || action === void 0 ? void 0 : action());
110
- };
111
- };
112
- var createActionHandler = function createActionHandler(action, buttonClick) {
113
- return function (event) {
114
- buttonClick === null || buttonClick === void 0 ? void 0 : buttonClick(event);
115
- if (event.defaultPrevented || !action) return;
116
- void action();
117
- };
118
- };
119
- var renderControlButton = function renderControlButton(prefixCls, type, iconNode, onClick) {
120
- return _jsx("button", {
121
- type: DIALOG_DEFAULTS.buttonHtmlType,
122
- className: classNames(getClassName(prefixCls, DIALOG_SLOT.control), getClassName(prefixCls, DIALOG_SLOT.control, type)),
123
- "aria-label": DIALOG_CONTROL_LABELS[type],
124
- onClick: toVoidHandler(onClick),
125
- children: iconNode
126
- });
127
- };
128
- var renderActionButton = function renderActionButton(_ref) {
129
- var prefixCls = _ref.prefixCls,
130
- kind = _ref.kind,
131
- text = _ref.text,
132
- action = _ref.action,
133
- buttonProps = _ref.buttonProps;
134
- var _a;
135
- if (text == null || !action) return null;
136
- return _jsx(Button, Object.assign({}, buttonProps, {
137
- type: DIALOG_DEFAULTS.buttonHtmlType,
138
- size: DIALOG_DEFAULTS.buttonSize,
139
- color: (_a = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.color) !== null && _a !== void 0 ? _a : DIALOG_DEFAULT_BUTTON_COLORS[kind],
140
- className: classNames(getClassName(prefixCls, DIALOG_SLOT.actionButton), getClassName(prefixCls, DIALOG_SLOT.actionButton, kind), buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.className),
141
- style: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.style,
142
- onClick: createActionHandler(action, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.onClick),
143
- children: text
144
- }));
145
- };
146
- var resolveFooterNode = function resolveFooterNode(_ref2) {
147
- var footer = _ref2.footer,
148
- size = _ref2.size,
149
- cancelButton = _ref2.cancelButton,
150
- okButton = _ref2.okButton;
151
- if (footer === null) return null;
152
- if (typeof footer === 'function') return footer(cancelButton, okButton);
153
- if (footer !== undefined) return footer;
154
- if (!cancelButton && !okButton) return null;
155
- return size === DIALOG_SIZE.large ? _jsxs(_Fragment, {
156
- children: [cancelButton, okButton]
157
- }) : _jsxs(_Fragment, {
158
- children: [okButton, cancelButton]
159
- });
160
- };
161
20
  var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
162
21
  var className = props.className,
163
22
  style = props.style,
@@ -210,9 +69,6 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
210
69
  var handleCancel = useEventCallback(function () {
211
70
  void (onCancel === null || onCancel === void 0 ? void 0 : onCancel());
212
71
  });
213
- var handleOk = useEventCallback(function () {
214
- void (onOk === null || onOk === void 0 ? void 0 : onOk());
215
- });
216
72
  var handleBack = useEventCallback(function () {
217
73
  void (onBack === null || onBack === void 0 ? void 0 : onBack());
218
74
  });
@@ -224,52 +80,56 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
224
80
  useDialogFocus(open, dialogRef);
225
81
  useEscapeClose(open, handleCancel);
226
82
  var hasMedia = media != null;
227
- var closeControlNode = showCloseIcon ? renderControlButton(prefixCls, DIALOG_CONTROL_TYPE.close, closeIcon !== null && closeIcon !== void 0 ? closeIcon : _jsx(Icons, {
228
- name: DIALOG_DEFAULT_ICONS[DIALOG_CONTROL_TYPE.close],
229
- size: DIALOG_DEFAULTS.controlIconSize
230
- }), handleCancel) : null;
231
- var backControlNode = showBackIcon ? renderControlButton(prefixCls, DIALOG_CONTROL_TYPE.back, backIcon !== null && backIcon !== void 0 ? backIcon : _jsx(Icons, {
232
- name: DIALOG_DEFAULT_ICONS[DIALOG_CONTROL_TYPE.back],
233
- size: DIALOG_DEFAULTS.controlIconSize
234
- }), handleBack) : null;
235
- var illustrationNode = renderIllustrationNode(illustration);
236
- var titleNode = renderTypographyNode(title, function (value) {
237
- return _jsx(TypographyHeadline, {
238
- size: "md",
239
- as: "h2",
240
- color: "default",
241
- children: value
242
- });
243
- });
244
- var childrenNode = renderTypographyNode(children, function (value) {
245
- return _jsx(TypographyBody, {
246
- size: "md",
247
- as: "p",
248
- strong: true,
249
- color: "default-secondary",
250
- children: value
251
- });
83
+ var closeControlNode = showCloseIcon ? renderDialogControlButton({
84
+ prefixCls: prefixCls,
85
+ type: DIALOG_CONTROL_TYPE.close,
86
+ icon: closeIcon,
87
+ onClick: handleCancel
88
+ }) : null;
89
+ var backControlNode = showBackIcon ? renderDialogControlButton({
90
+ prefixCls: prefixCls,
91
+ type: DIALOG_CONTROL_TYPE.back,
92
+ icon: backIcon,
93
+ onClick: handleBack
94
+ }) : null;
95
+ var hasHeading = hasDialogHeadingContent({
96
+ title: title,
97
+ illustration: illustration
252
98
  });
253
- var cancelButton = renderActionButton({
99
+ var headingNode = hasHeading ? _jsx(DialogHeading, {
100
+ prefixCls: prefixCls,
101
+ titleId: titleId,
102
+ title: title,
103
+ illustration: illustration
104
+ }) : null;
105
+ var childrenNode = renderDialogBodyContent(children);
106
+ var cancelButton = renderDialogActionButton({
254
107
  prefixCls: prefixCls,
255
108
  kind: DIALOG_ACTION_KIND.cancel,
256
109
  text: cancelText,
257
110
  action: onCancel,
258
111
  buttonProps: cancelButtonProps
259
112
  });
260
- var okButton = renderActionButton({
113
+ var okButton = renderDialogActionButton({
261
114
  prefixCls: prefixCls,
262
115
  kind: DIALOG_ACTION_KIND.ok,
263
116
  text: okText,
264
117
  action: onOk,
265
118
  buttonProps: okButtonProps
266
119
  });
267
- var footerNode = resolveFooterNode({
120
+ var footerNode = resolveDialogFooter({
268
121
  footer: footer,
269
- size: size,
270
122
  cancelButton: cancelButton,
271
123
  okButton: okButton
272
124
  });
125
+ var panelClassName = getDialogPanelClassName({
126
+ prefixCls: prefixCls,
127
+ size: size,
128
+ fullWidth: fullWidth,
129
+ fixed: fixed,
130
+ hasMedia: hasMedia,
131
+ className: className
132
+ });
273
133
  // `width` is a convenience that sets the panel's width inline, overriding the
274
134
  // `size` preset's class-level width. An explicit `style.width` still wins (it is
275
135
  // spread last). Note: `width` is not meant to be combined with `fullWidth`, whose
@@ -281,14 +141,14 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
281
141
  return _jsx(Portal, {
282
142
  children: _jsxs("div", {
283
143
  style: rootStyle,
284
- className: getClassName(prefixCls, DIALOG_SLOT.root),
144
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.root),
285
145
  children: [_jsx("div", {
286
146
  "aria-hidden": "true",
287
- className: getClassName(prefixCls, DIALOG_SLOT.overlay),
147
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.overlay),
288
148
  onClick: handleOverlayClick
289
149
  }), _jsx("div", {
290
150
  style: wrapperStyle,
291
- className: getClassName(prefixCls, DIALOG_SLOT.wrapper),
151
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.wrapper),
292
152
  children: _jsxs("div", Object.assign({}, rest, {
293
153
  ref: handleSetDialogRef,
294
154
  role: "dialog",
@@ -296,41 +156,27 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
296
156
  "aria-labelledby": title ? titleId : undefined,
297
157
  tabIndex: -1,
298
158
  style: panelStyle,
299
- className: classNames(getClassName(prefixCls), getClassName(prefixCls, undefined, size), fullWidth && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fullWidth), fixed && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fixed), hasMedia && getClassName(prefixCls, undefined, DIALOG_MODIFIER.withMedia), className),
159
+ className: panelClassName,
300
160
  children: [closeControlNode, hasMedia && _jsx("div", {
301
- className: getClassName(prefixCls, DIALOG_SLOT.media),
161
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.media),
302
162
  children: media
303
163
  }), _jsxs("div", {
304
- className: getClassName(prefixCls, DIALOG_SLOT.inner),
305
- children: [(backControlNode || fixed && (illustrationNode || titleNode)) && _jsxs("div", {
164
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.inner),
165
+ children: [(backControlNode || fixed && headingNode) && _jsxs("div", {
306
166
  style: headerStyle,
307
- className: getClassName(prefixCls, DIALOG_SLOT.header),
308
- children: [backControlNode, fixed && illustrationNode && _jsx("div", {
309
- className: getClassName(prefixCls, DIALOG_SLOT.illustration),
310
- children: illustrationNode
311
- }), fixed && titleNode && _jsx("div", {
312
- id: titleId,
313
- className: getClassName(prefixCls, DIALOG_SLOT.title),
314
- children: titleNode
315
- })]
167
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.header),
168
+ children: [backControlNode, fixed && headingNode]
316
169
  }), _jsxs("div", {
317
170
  style: bodyStyle,
318
- className: getClassName(prefixCls, DIALOG_SLOT.body),
319
- children: [!fixed && illustrationNode && _jsx("div", {
320
- className: getClassName(prefixCls, DIALOG_SLOT.illustration),
321
- children: illustrationNode
322
- }), !fixed && titleNode && _jsx("div", {
323
- id: titleId,
324
- className: getClassName(prefixCls, DIALOG_SLOT.title),
325
- children: titleNode
326
- }), childrenNode && _jsx("div", {
171
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.body),
172
+ children: [!fixed && headingNode, childrenNode && _jsx("div", {
327
173
  style: contentStyle,
328
- className: getClassName(prefixCls, DIALOG_SLOT.content),
174
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.content),
329
175
  children: childrenNode
330
176
  })]
331
177
  }), footerNode && _jsx("div", {
332
178
  style: footerStyle,
333
- className: classNames(getClassName(prefixCls, DIALOG_SLOT.footer), getClassName(prefixCls, DIALOG_SLOT.footer, size)),
179
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.footer),
334
180
  children: footerNode
335
181
  })]
336
182
  })]
@@ -343,4 +189,4 @@ DialogBase.displayName = 'Dialog';
343
189
  export var Dialog = /*#__PURE__*/memo(DialogBase);
344
190
  Dialog.displayName = 'Dialog';
345
191
  export default Dialog;
346
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwid2lkdGgiLCJ0aXRsZSIsIm1lZGlhIiwiY2xvc2VJY29uIiwiYmFja0ljb24iLCJvbk9rIiwib25DYW5jZWwiLCJvbkJhY2siLCJfcHJvcHMkb2tUZXh0Iiwib2tUZXh0IiwiX3Byb3BzJGNhbmNlbFRleHQiLCJjYW5jZWxUZXh0Iiwicm9vdFN0eWxlIiwid3JhcHBlclN0eWxlIiwiYm9keVN0eWxlIiwiaGVhZGVyU3R5bGUiLCJjb250ZW50U3R5bGUiLCJmb290ZXJTdHlsZSIsImNhbmNlbEJ1dHRvblByb3BzIiwib2tCdXR0b25Qcm9wcyIsInJlc3QiLCJ0aXRsZUlkIiwiaGFuZGxlU2V0RGlhbG9nUmVmIiwiaGFuZGxlQ2FuY2VsIiwiaGFuZGxlT2siLCJoYW5kbGVCYWNrIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwiaGFzTWVkaWEiLCJjbG9zZUNvbnRyb2xOb2RlIiwiY2xvc2UiLCJjb250cm9sSWNvblNpemUiLCJiYWNrQ29udHJvbE5vZGUiLCJiYWNrIiwiaWxsdXN0cmF0aW9uTm9kZSIsInRpdGxlTm9kZSIsImFzIiwiY2hpbGRyZW5Ob2RlIiwic3Ryb25nIiwiY2FuY2VsIiwib2siLCJmb290ZXJOb2RlIiwicGFuZWxTdHlsZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJE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cyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB3aWR0aCwgdGl0bGUsIGNoaWxkcmVuLCBpbGx1c3RyYXRpb24sIG1lZGlhLCBjbG9zZUljb24sIGJhY2tJY29uLCBmb290ZXIsIG9uT2ssIG9uQ2FuY2VsLCBvbkJhY2ssIG9rVGV4dCA9IERJQUxPR19ERUZBVUxUUy5va1RleHQsIGNhbmNlbFRleHQgPSBESUFMT0dfREVGQVVMVFMuY2FuY2VsVGV4dCwgcm9vdFN0eWxlLCB3cmFwcGVyU3R5bGUsIGJvZHlTdHlsZSwgaGVhZGVyU3R5bGUsIGNvbnRlbnRTdHlsZSwgZm9vdGVyU3R5bGUsIGNhbmNlbEJ1dHRvblByb3BzLCBva0J1dHRvblByb3BzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIiwgXCJvcGVuXCIsIFwic2l6ZVwiLCBcIm1hc2tDbG9zYWJsZVwiLCBcInNob3dDbG9zZUljb25cIiwgXCJzaG93QmFja0ljb25cIiwgXCJmdWxsV2lkdGhcIiwgXCJmaXhlZFwiLCBcIndpZHRoXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIC8vIGB3aWR0aGAgaXMgYSBjb252ZW5pZW5jZSB0aGF0IHNldHMgdGhlIHBhbmVsJ3Mgd2lkdGggaW5saW5lLCBvdmVycmlkaW5nIHRoZVxuICAgIC8vIGBzaXplYCBwcmVzZXQncyBjbGFzcy1sZXZlbCB3aWR0aC4gQW4gZXhwbGljaXQgYHN0eWxlLndpZHRoYCBzdGlsbCB3aW5zIChpdCBpc1xuICAgIC8vIHNwcmVhZCBsYXN0KS4gTm90ZTogYHdpZHRoYCBpcyBub3QgbWVhbnQgdG8gYmUgY29tYmluZWQgd2l0aCBgZnVsbFdpZHRoYCwgd2hvc2VcbiAgICAvLyBgbWF4LXdpZHRoOiBub25lYCAvIGB3aWR0aDogMTAwJWAgcnVsZXMgZ292ZXJuIHNpemluZyBvbiB0aGVpciBvd24uXG4gICAgY29uc3QgcGFuZWxTdHlsZSA9IE9iamVjdC5hc3NpZ24oeyB3aWR0aCB9LCBzdHlsZSk7XG4gICAgaWYgKCFvcGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUG9ydGFsLCB7IGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiByb290U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qucm9vdCksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qub3ZlcmxheSksIG9uQ2xpY2s6IGhhbmRsZU92ZXJsYXlDbGljayB9KSwgX2pzeChcImRpdlwiLCB7IHN0eWxlOiB3cmFwcGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qud3JhcHBlciksIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaGFuZGxlU2V0RGlhbG9nUmVmLCByb2xlOiBcImRpYWxvZ1wiLCBcImFyaWEtbW9kYWxcIjogXCJ0cnVlXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHRpdGxlID8gdGl0bGVJZCA6IHVuZGVmaW5lZCwgdGFiSW5kZXg6IC0xLCBzdHlsZTogcGFuZWxTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIHNpemUpLCBmdWxsV2lkdGggJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZnVsbFdpZHRoKSwgZml4ZWQgJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZml4ZWQpLCBoYXNNZWRpYSAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi53aXRoTWVkaWEpLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm1lZGlhKSwgY2hpbGRyZW46IG1lZGlhIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaW5uZXIpLCBjaGlsZHJlbjogWyhiYWNrQ29udHJvbE5vZGUgfHwgKGZpeGVkICYmIChpbGx1c3RyYXRpb25Ob2RlIHx8IHRpdGxlTm9kZSkpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpLCBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBib2R5U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYm9keSksIGNoaWxkcmVuOiBbIWZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgIWZpeGVkICYmIHRpdGxlTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGlkOiB0aXRsZUlkLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnRpdGxlKSwgY2hpbGRyZW46IHRpdGxlTm9kZSB9KSksIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3RlciksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3Rlciwgc2l6ZSkpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
192
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwidXNlRXZlbnRDYWxsYmFjayIsImZvcndhcmRSZWYiLCJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VJZCIsInVzZVJlZiIsIlBvcnRhbCIsImZpbGxSZWYiLCJnZXREaWFsb2dDbGFzc05hbWUiLCJnZXREaWFsb2dQYW5lbENsYXNzTmFtZSIsIkRJQUxPR19BQ1RJT05fS0lORCIsIkRJQUxPR19DT05UUk9MX1RZUEUiLCJESUFMT0dfREVGQVVMVF9QUkVGSVgiLCJESUFMT0dfREVGQVVMVFMiLCJESUFMT0dfU0laRSIsIkRJQUxPR19TTE9UIiwiRGlhbG9nSGVhZGluZyIsImhhc0RpYWxvZ0hlYWRpbmdDb250ZW50IiwicmVuZGVyRGlhbG9nQm9keUNvbnRlbnQiLCJyZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24iLCJyZW5kZXJEaWFsb2dDb250cm9sQnV0dG9uIiwicmVzb2x2ZURpYWxvZ0Zvb3RlciIsInVzZUJvZHlTY3JvbGxMb2NrIiwidXNlRGlhbG9nRm9jdXMiLCJ1c2VFc2NhcGVDbG9zZSIsIkRpYWxvZ0Jhc2UiLCJwcm9wcyIsInJlZiIsImNsYXNzTmFtZSIsInN0eWxlIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIl9wcm9wcyRvcGVuIiwib3BlbiIsIl9wcm9wcyRzaXplIiwic2l6ZSIsInNtYWxsIiwiX3Byb3BzJG1hc2tDbG9zYWJsZSIsIm1hc2tDbG9zYWJsZSIsIl9wcm9wcyRzaG93Q2xvc2VJY29uIiwic2hvd0Nsb3NlSWNvbiIsIl9wcm9wcyRzaG93QmFja0ljb24iLCJzaG93QmFja0ljb24iLCJfcHJvcHMkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwiX3Byb3BzJGZpeGVkIiwiZml4ZWQiLCJ3aWR0aCIsInRpdGxlIiwiY2hpbGRyZW4iLCJpbGx1c3RyYXRpb24iLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwiZm9vdGVyIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwiZGlhbG9nUmVmIiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlQ2FuY2VsIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsInR5cGUiLCJjbG9zZSIsImljb24iLCJvbkNsaWNrIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImhhc0hlYWRpbmciLCJoZWFkaW5nTm9kZSIsImNoaWxkcmVuTm9kZSIsImNhbmNlbEJ1dHRvbiIsImtpbmQiLCJjYW5jZWwiLCJ0ZXh0IiwiYWN0aW9uIiwiYnV0dG9uUHJvcHMiLCJva0J1dHRvbiIsIm9rIiwiZm9vdGVyTm9kZSIsInBhbmVsQ2xhc3NOYW1lIiwicGFuZWxTdHlsZSIsImFzc2lnbiIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ1bmRlZmluZWQiLCJ0YWJJbmRleCIsImlubmVyIiwiaGVhZGVyIiwiYm9keSIsImNvbnRlbnQiLCJkaXNwbGF5TmFtZSIsIkRpYWxvZyJdLCJtYXBw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QixTQUFTLEVBQUVoQixXQUFXLENBQUNnRyxPQUFPLENBQUM7Z0JBQUE5RCxRQUFBLEVBRTVEd0M7Y0FBWSxDQUFBLENBRWhCO1lBQUEsQ0FBQSxDQUNHLEVBQ0xTLFVBQVUsSUFDVHJHLElBQUEsQ0FBQSxLQUFBLEVBQUE7Y0FDRWdDLEtBQUssRUFBRXNDLFdBQVc7Y0FDbEJ2QyxTQUFTLEVBQUVwQixrQkFBa0IsQ0FBQ3VCLFNBQVMsRUFBRWhCLFdBQVcsQ0FBQ3VDLE1BQU0sQ0FBQztjQUFBTCxRQUFBLEVBRTNEaUQ7WUFBVSxDQUFBLENBRWQ7VUFBQSxDQUFBLENBQ0c7UUFBQSxDQUFBLENBQUE7TUFDRixDQUFBLENBQ0Y7SUFBQSxDQUFBO0VBQ0YsQ0FBQSxDQUNDO0FBRWIsQ0FBQyxDQUFDO0FBRUZ6RSxVQUFVLENBQUN1RixXQUFXLEdBQUcsUUFBUTtBQUVqQyxPQUFPLElBQU1DLE1BQU0sZ0JBQUcvRyxJQUFJLENBQUN1QixVQUFVLENBQUM7QUFFdEN3RixNQUFNLENBQUNELFdBQVcsR0FBRyxRQUFRO0FBRTdCLGVBQWVDLE1BQU0iLCJmaWxlIjoiY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSWQsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IGdldERpYWxvZ0NsYXNzTmFtZSwgZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUgfSBmcm9tICcuL2NsYXNzTmFtZSc7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX1RZUEUsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0laRSwgRElBTE9HX1NMT1QsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGlhbG9nSGVhZGluZywgaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQsIHJlbmRlckRpYWxvZ0JvZHlDb250ZW50LCB9IGZyb20gJy4vRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24sIHJlbmRlckRpYWxvZ0NvbnRyb2xCdXR0b24sIHJlc29sdmVEaWFsb2dGb290ZXIsIH0gZnJvbSAnLi9EaWFsb2dDb250cm9scyc7XG5pbXBvcnQgeyB1c2VCb2R5U2Nyb2xsTG9jaywgdXNlRGlhbG9nRm9jdXMsIHVzZUVzY2FwZUNsb3NlIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgRGlhbG9nQmFzZSA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+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,72 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isValidElement } from 'react';
3
+ import { Icons } from '../Icons';
4
+ import { TypographyBody, TypographyHeadline } from '../Typography';
5
+ import { getDialogClassName } from './className';
6
+ import { DIALOG_DEFAULTS, DIALOG_SLOT } from './constants';
7
+ var hasTextNode = function hasTextNode(node) {
8
+ return node != null && typeof node !== 'boolean';
9
+ };
10
+ var hasIllustrationNode = function hasIllustrationNode(illustration) {
11
+ return Boolean(illustration && (typeof illustration === 'string' || /*#__PURE__*/isValidElement(illustration)));
12
+ };
13
+ var renderTypographyNode = function renderTypographyNode(node, renderText) {
14
+ if (!hasTextNode(node)) return null;
15
+ if (typeof node === 'string' || typeof node === 'number') {
16
+ return renderText(node);
17
+ }
18
+ return node;
19
+ };
20
+ var renderIllustrationNode = function renderIllustrationNode(illustration) {
21
+ if (!illustration) return null;
22
+ if (typeof illustration === 'string') {
23
+ return _jsx(Icons, {
24
+ name: illustration,
25
+ size: DIALOG_DEFAULTS.illustrationSize
26
+ });
27
+ }
28
+ return /*#__PURE__*/isValidElement(illustration) ? illustration : null;
29
+ };
30
+ export var hasDialogHeadingContent = function hasDialogHeadingContent(_ref) {
31
+ var title = _ref.title,
32
+ illustration = _ref.illustration;
33
+ return hasIllustrationNode(illustration) || hasTextNode(title);
34
+ };
35
+ export var DialogHeading = function DialogHeading(_ref2) {
36
+ var prefixCls = _ref2.prefixCls,
37
+ titleId = _ref2.titleId,
38
+ title = _ref2.title,
39
+ illustration = _ref2.illustration;
40
+ var illustrationNode = renderIllustrationNode(illustration);
41
+ var titleNode = renderTypographyNode(title, function (value) {
42
+ return _jsx(TypographyHeadline, {
43
+ size: "md",
44
+ as: "h2",
45
+ color: "default",
46
+ children: value
47
+ });
48
+ });
49
+ if (!illustrationNode && !titleNode) return null;
50
+ return _jsxs(_Fragment, {
51
+ children: [illustrationNode && _jsx("div", {
52
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.illustration),
53
+ children: illustrationNode
54
+ }), titleNode && _jsx("div", {
55
+ id: titleId,
56
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.title),
57
+ children: titleNode
58
+ })]
59
+ });
60
+ };
61
+ export var renderDialogBodyContent = function renderDialogBodyContent(children) {
62
+ return renderTypographyNode(children, function (value) {
63
+ return _jsx(TypographyBody, {
64
+ size: "md",
65
+ as: "p",
66
+ strong: true,
67
+ color: "default-secondary",
68
+ children: value
69
+ });
70
+ });
71
+ };
72
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJpc1ZhbGlkRWxlbWVudCIsIkljb25zIiwiVHlwb2dyYXBoeUJvZHkiLCJUeXBvZ3JhcGh5SGVhZGxpbmUiLCJnZXREaWFsb2dDbGFzc05hbWUiLCJESUFMT0dfREVGQVVMVFMiLCJESUFMT0dfU0xPVCIsImhhc1RleHROb2RlIiwibm9kZSIsImhhc0lsbHVzdHJhdGlvbk5vZGUiLCJpbGx1c3RyYXRpb24iLCJCb29sZWFuIiwicmVuZGVyVHlwb2dyYXBoeU5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsImhhc0RpYWxvZ0hlYWRpbmdDb250ZW50IiwiX3JlZiIsInRpdGxlIiwiRGlhbG9nSGVhZGluZyIsIl9yZWYyIiwicHJlZml4Q2xzIiwidGl0bGVJZCIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJ2YWx1ZSIsImFzIiwiY29sb3IiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImlkIiwicmVuZGVyRGlhbG9nQm9keUNvbnRlbnQiLCJzdHJvbmciXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLGNBQWMsUUFBUSxPQUFPO0FBQ3RDLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLGNBQWMsRUFBRUMsa0JBQWtCLFFBQVEsZUFBZTtBQUNsRSxTQUFTQyxrQkFBa0IsUUFBUSxhQUFhO0FBQ2hELFNBQVNDLGVBQWUsRUFBRUMsV0FB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LEVBQUVqQixXQUFXLENBQUNjLEtBQUssQ0FBQztNQUFBVSxRQUFBLEVBQzFFSjtJQUFTLENBQUEsQ0FFYjtFQUFBLENBQUEsQ0FDQTtBQUVQLENBQUM7QUFFRCxPQUFPLElBQU1PLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlILFFBQW1CO0VBQUEsT0FDekRsQixvQkFBb0IsQ0FBQ2tCLFFBQVEsRUFBRSxVQUFDSCxLQUFLO0lBQUEsT0FDbkNoQyxJQUFBLENBQUNPLGNBQWMsRUFBQTtNQUFDYyxJQUFJLEVBQUMsSUFBSTtNQUFDWSxFQUFFLEVBQUMsR0FBRztNQUFDTSxNQUFNLEVBQUEsSUFBQTtNQUFDTCxLQUFLLEVBQUMsbUJBQW1CO01BQUFDLFFBQUEsRUFDOURIO0lBQUssQ0FBQSxDQUNTO0VBQUEsQ0FDbEIsQ0FBQztBQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZ2V0RGlhbG9nQ2xhc3NOYW1lIH0gZnJvbSAnLi9jbGFzc05hbWUnO1xuaW1wb3J0IHsgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0xPVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGhhc1RleHROb2RlID0gKG5vZGUpID0+IG5vZGUgIT0gbnVsbCAmJiB0eXBlb2Ygbm9kZSAhPT0gJ2Jvb2xlYW4nO1xuY29uc3QgaGFzSWxsdXN0cmF0aW9uTm9kZSA9IChpbGx1c3RyYXRpb24pID0+IEJvb2xlYW4oaWxsdXN0cmF0aW9uICYmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJyB8fCBpc1ZhbGlkRWxlbWVudChpbGx1c3RyYXRpb24pKSk7XG5jb25zdCByZW5kZXJUeXBvZ3JhcGh5Tm9kZSA9IChub2RlLCByZW5kZXJUZXh0KSA9PiB7XG4gICAgaWYgKCFoYXNUZXh0Tm9kZShub2RlKSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygbm9kZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRleHQobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcbmNvbnN0IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUgPSAoaWxsdXN0cmF0aW9uKSA9PiB7XG4gICAgaWYgKCFpbGx1c3RyYXRpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpbGx1c3RyYXRpb24sIHNpemU6IERJQUxPR19ERUZBVUxUUy5pbGx1c3RyYXRpb25TaXplIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZEVsZW1lbnQoaWxsdXN0cmF0aW9uKSA/IGlsbHVzdHJhdGlvbiA6IG51bGw7XG59O1xuZXhwb3J0IGNvbnN0IGhhc0RpYWxvZ0hlYWRpbmdDb250ZW50ID0gKHsgdGl0bGUsIGlsbHVzdHJhdGlvbiwgfSkgPT4gaGFzSWxsdXN0cmF0aW9uTm9kZShpbGx1c3RyYXRpb24pIHx8IGhhc1RleHROb2RlKHRpdGxlKTtcbmV4cG9ydCBjb25zdCBEaWFsb2dIZWFkaW5nID0gKHsgcHJlZml4Q2xzLCB0aXRsZUlkLCB0aXRsZSwgaWxsdXN0cmF0aW9uLCB9KSA9PiB7XG4gICAgY29uc3QgaWxsdXN0cmF0aW9uTm9kZSA9IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUoaWxsdXN0cmF0aW9uKTtcbiAgICBjb25zdCB0aXRsZU5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZSh0aXRsZSwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5SGVhZGxpbmUsIHsgc2l6ZTogXCJtZFwiLCBhczogXCJoMlwiLCBjb2xvcjogXCJkZWZhdWx0XCIsIGNoaWxkcmVuOiB2YWx1ZSB9KSkpO1xuICAgIGlmICghaWxsdXN0cmF0aW9uTm9kZSAmJiAhdGl0bGVOb2RlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2lsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldERpYWxvZ0NsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dCb2R5Q29udGVudCA9IChjaGlsZHJlbikgPT4gcmVuZGVyVHlwb2dyYXBoeU5vZGUoY2hpbGRyZW4sICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogXCJtZFwiLCBhczogXCJwXCIsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IFwiZGVmYXVsdC1zZWNvbmRhcnlcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ButtonProps } from "../Button";
3
+ import type { DialogActionKind, DialogControlType } from './constants';
4
+ import type { DialogProps } from './interface';
5
+ import type { DialogAction } from './types';
6
+ interface DialogControlButtonOptions {
7
+ prefixCls: string;
8
+ type: DialogControlType;
9
+ icon?: ReactNode;
10
+ onClick?: DialogAction;
11
+ }
12
+ interface DialogActionButtonOptions {
13
+ prefixCls: string;
14
+ kind: DialogActionKind;
15
+ text: ReactNode;
16
+ action?: DialogAction;
17
+ buttonProps?: Partial<ButtonProps>;
18
+ }
19
+ interface DialogFooterOptions {
20
+ footer: DialogProps['footer'];
21
+ cancelButton: ReactNode;
22
+ okButton: ReactNode;
23
+ }
24
+ export declare const renderDialogControlButton: ({ prefixCls, type, icon, onClick, }: DialogControlButtonOptions) => import("react/jsx-runtime").JSX.Element;
25
+ export declare const renderDialogActionButton: ({ prefixCls, kind, text, action, buttonProps, }: DialogActionButtonOptions) => import("react/jsx-runtime").JSX.Element | null;
26
+ export declare const resolveDialogFooter: ({ footer, cancelButton, okButton, }: DialogFooterOptions) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
27
+ export {};