@1money/component-ui 0.0.18 → 0.0.20

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 (161) hide show
  1. package/es/components/Alert/Alert.js +5 -6
  2. package/es/components/Alert/style/Alert.css +1 -1
  3. package/es/components/Button/Button.js +29 -1
  4. package/es/components/Button/constants.d.ts +14 -1
  5. package/es/components/Button/constants.js +23 -3
  6. package/es/components/Button/interface.d.ts +9 -0
  7. package/es/components/Cell/Cell.d.ts +5 -0
  8. package/es/components/Cell/Cell.js +57 -0
  9. package/es/components/Cell/index.d.ts +4 -0
  10. package/es/components/Cell/index.js +5 -0
  11. package/es/components/Cell/interface.d.ts +12 -0
  12. package/es/components/Cell/interface.js +2 -0
  13. package/es/components/Cell/style/Cell.css +1 -0
  14. package/es/components/Cell/style/css.js +2 -0
  15. package/es/components/Cell/style/index.d.ts +1 -0
  16. package/es/components/Cell/style/index.js +2 -0
  17. package/es/components/Dialog/Dialog.d.ts +4 -0
  18. package/es/components/Dialog/Dialog.js +383 -0
  19. package/es/components/Dialog/constants.d.ts +60 -0
  20. package/es/components/Dialog/constants.js +57 -0
  21. package/es/components/Dialog/index.d.ts +4 -0
  22. package/es/components/Dialog/index.js +5 -0
  23. package/es/components/{Modal → Dialog}/interface.d.ts +7 -7
  24. package/es/components/Dialog/interface.js +2 -0
  25. package/es/components/Dialog/style/Dialog.css +1 -0
  26. package/es/components/Dialog/style/css.js +2 -0
  27. package/es/components/Dialog/style/index.d.ts +1 -0
  28. package/es/components/Dialog/style/index.js +2 -0
  29. package/es/components/Divider/Divider.js +15 -18
  30. package/es/components/Divider/constants.d.ts +36 -0
  31. package/es/components/Divider/constants.js +41 -0
  32. package/es/components/Divider/interface.d.ts +2 -3
  33. package/es/components/Drawer/Drawer.js +13 -129
  34. package/es/components/Drawer/constants.d.ts +8 -5
  35. package/es/components/Drawer/constants.js +9 -6
  36. package/es/components/Drawer/hooks/index.d.ts +4 -0
  37. package/es/components/Drawer/hooks/index.js +5 -0
  38. package/es/components/Drawer/hooks/useBodyScrollLock.d.ts +1 -0
  39. package/es/components/Drawer/hooks/useBodyScrollLock.js +29 -0
  40. package/es/components/Drawer/hooks/useDialogFocus.d.ts +2 -0
  41. package/es/components/Drawer/hooks/useDialogFocus.js +22 -0
  42. package/es/components/Drawer/hooks/useDrawerTransition.d.ts +4 -0
  43. package/es/components/Drawer/hooks/useDrawerTransition.js +57 -0
  44. package/es/components/Drawer/hooks/useEscapeClose.d.ts +1 -0
  45. package/es/components/Drawer/hooks/useEscapeClose.js +16 -0
  46. package/es/components/ProForm/index.d.ts +2 -2
  47. package/es/components/ProForm/index.js +2 -2
  48. package/es/components/ProForm/interface.d.ts +3 -3
  49. package/es/components/ProForm/layouts/DialogForm.d.ts +3 -0
  50. package/es/components/ProForm/layouts/DialogForm.js +74 -0
  51. package/es/components/ProForm/layouts/index.d.ts +1 -1
  52. package/es/components/ProForm/layouts/index.js +2 -2
  53. package/es/components/ProForm/style/ProForm.css +1 -1
  54. package/es/components/Select/Select.js +5 -5
  55. package/es/components/Select/SelectFieldShell.js +7 -7
  56. package/es/components/Select/SelectOptionContent.js +5 -5
  57. package/es/components/Select/constants.d.ts +37 -13
  58. package/es/components/Select/constants.js +36 -20
  59. package/es/components/Select/style/Select.css +1 -1
  60. package/es/components/Spinner/lottie-pure.json +1 -0
  61. package/es/components/Switch/Switch.js +7 -7
  62. package/es/components/Switch/constants.d.ts +23 -9
  63. package/es/components/Switch/constants.js +26 -11
  64. package/es/components/Switch/interface.d.ts +2 -2
  65. package/es/index.css +1 -1
  66. package/es/index.d.ts +6 -4
  67. package/es/index.js +4 -3
  68. package/lib/components/Alert/Alert.js +5 -6
  69. package/lib/components/Alert/style/Alert.css +1 -1
  70. package/lib/components/Button/Button.js +29 -1
  71. package/lib/components/Button/constants.d.ts +14 -1
  72. package/lib/components/Button/constants.js +23 -3
  73. package/lib/components/Button/interface.d.ts +9 -0
  74. package/lib/components/Cell/Cell.d.ts +5 -0
  75. package/lib/components/Cell/Cell.js +66 -0
  76. package/lib/components/Cell/index.d.ts +4 -0
  77. package/lib/components/Cell/index.js +33 -0
  78. package/lib/components/Cell/interface.d.ts +12 -0
  79. package/lib/components/Cell/interface.js +6 -0
  80. package/lib/components/Cell/style/Cell.css +1 -0
  81. package/lib/components/Cell/style/css.js +4 -0
  82. package/lib/components/Cell/style/index.d.ts +1 -0
  83. package/lib/components/Cell/style/index.js +4 -0
  84. package/lib/components/Dialog/Dialog.d.ts +4 -0
  85. package/lib/components/Dialog/Dialog.js +390 -0
  86. package/lib/components/Dialog/constants.d.ts +60 -0
  87. package/lib/components/Dialog/constants.js +64 -0
  88. package/lib/components/Dialog/index.d.ts +4 -0
  89. package/lib/components/Dialog/index.js +33 -0
  90. package/lib/components/{Modal → Dialog}/interface.d.ts +7 -7
  91. package/lib/components/Dialog/interface.js +6 -0
  92. package/lib/components/Dialog/style/Dialog.css +1 -0
  93. package/lib/components/Dialog/style/css.js +4 -0
  94. package/lib/components/Dialog/style/index.d.ts +1 -0
  95. package/lib/components/Dialog/style/index.js +4 -0
  96. package/lib/components/Divider/Divider.js +16 -18
  97. package/lib/components/Divider/constants.d.ts +36 -0
  98. package/lib/components/Divider/constants.js +48 -0
  99. package/lib/components/Divider/interface.d.ts +2 -3
  100. package/lib/components/Drawer/Drawer.js +14 -130
  101. package/lib/components/Drawer/constants.d.ts +8 -5
  102. package/lib/components/Drawer/constants.js +10 -7
  103. package/lib/components/Drawer/hooks/index.d.ts +4 -0
  104. package/lib/components/Drawer/hooks/index.js +34 -0
  105. package/lib/components/Drawer/hooks/useBodyScrollLock.d.ts +1 -0
  106. package/lib/components/Drawer/hooks/useBodyScrollLock.js +35 -0
  107. package/lib/components/Drawer/hooks/useDialogFocus.d.ts +2 -0
  108. package/lib/components/Drawer/hooks/useDialogFocus.js +28 -0
  109. package/lib/components/Drawer/hooks/useDrawerTransition.d.ts +4 -0
  110. package/lib/components/Drawer/hooks/useDrawerTransition.js +64 -0
  111. package/lib/components/Drawer/hooks/useEscapeClose.d.ts +1 -0
  112. package/lib/components/Drawer/hooks/useEscapeClose.js +22 -0
  113. package/lib/components/ProForm/index.d.ts +2 -2
  114. package/lib/components/ProForm/index.js +8 -8
  115. package/lib/components/ProForm/interface.d.ts +3 -3
  116. package/lib/components/ProForm/layouts/DialogForm.d.ts +3 -0
  117. package/lib/components/ProForm/layouts/DialogForm.js +81 -0
  118. package/lib/components/ProForm/layouts/index.d.ts +1 -1
  119. package/lib/components/ProForm/layouts/index.js +6 -6
  120. package/lib/components/ProForm/style/ProForm.css +1 -1
  121. package/lib/components/Select/Select.js +4 -4
  122. package/lib/components/Select/SelectFieldShell.js +6 -6
  123. package/lib/components/Select/SelectOptionContent.js +4 -4
  124. package/lib/components/Select/constants.d.ts +37 -13
  125. package/lib/components/Select/constants.js +37 -21
  126. package/lib/components/Select/style/Select.css +1 -1
  127. package/lib/components/Spinner/lottie-pure.json +1 -0
  128. package/lib/components/Switch/Switch.js +6 -6
  129. package/lib/components/Switch/constants.d.ts +23 -9
  130. package/lib/components/Switch/constants.js +27 -12
  131. package/lib/components/Switch/interface.d.ts +2 -2
  132. package/lib/index.css +1 -1
  133. package/lib/index.d.ts +6 -4
  134. package/lib/index.js +21 -14
  135. package/package.json +11 -6
  136. package/es/components/Modal/Modal.d.ts +0 -4
  137. package/es/components/Modal/Modal.js +0 -383
  138. package/es/components/Modal/constants.d.ts +0 -58
  139. package/es/components/Modal/constants.js +0 -55
  140. package/es/components/Modal/index.d.ts +0 -4
  141. package/es/components/Modal/index.js +0 -5
  142. package/es/components/Modal/interface.js +0 -2
  143. package/es/components/Modal/style/Modal.css +0 -1
  144. package/es/components/Modal/style/css.js +0 -2
  145. package/es/components/Modal/style/index.d.ts +0 -1
  146. package/es/components/Modal/style/index.js +0 -2
  147. package/es/components/ProForm/layouts/ModalForm.d.ts +0 -3
  148. package/es/components/ProForm/layouts/ModalForm.js +0 -74
  149. package/lib/components/Modal/Modal.d.ts +0 -4
  150. package/lib/components/Modal/Modal.js +0 -390
  151. package/lib/components/Modal/constants.d.ts +0 -58
  152. package/lib/components/Modal/constants.js +0 -62
  153. package/lib/components/Modal/index.d.ts +0 -4
  154. package/lib/components/Modal/index.js +0 -33
  155. package/lib/components/Modal/interface.js +0 -6
  156. package/lib/components/Modal/style/Modal.css +0 -1
  157. package/lib/components/Modal/style/css.js +0 -4
  158. package/lib/components/Modal/style/index.d.ts +0 -1
  159. package/lib/components/Modal/style/index.js +0 -4
  160. package/lib/components/ProForm/layouts/ModalForm.d.ts +0 -3
  161. package/lib/components/ProForm/layouts/ModalForm.js +0 -81
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = exports.Drawer = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _hooks = require("@1money/hooks");
12
12
  var _react = require("react");
@@ -17,6 +17,7 @@ var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
17
17
  var _ref2 = require("../../utils/ref");
18
18
  require("./style");
19
19
  var _constants = require("./constants");
20
+ var _hooks2 = require("./hooks");
20
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
23
  var __rest = void 0 && (void 0).__rest || function (s, e) {
@@ -27,120 +28,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
27
28
  }
28
29
  return t;
29
30
  };
30
- var scrollLockCount = 0;
31
- var setBodyOverflow = function setBodyOverflow(value) {
32
- if (typeof document === 'undefined') return;
33
- document.body.style.overflow = value;
34
- };
35
- var lockBodyScroll = function lockBodyScroll() {
36
- scrollLockCount += 1;
37
- setBodyOverflow('hidden');
38
- };
39
- var unlockBodyScroll = function unlockBodyScroll() {
40
- scrollLockCount = Math.max(0, scrollLockCount - 1);
41
- if (scrollLockCount !== 0) return;
42
- window.requestAnimationFrame(function () {
43
- if (scrollLockCount === 0) {
44
- setBodyOverflow('');
45
- }
46
- });
47
- };
48
- var clearTimer = function clearTimer(timerRef) {
49
- if (timerRef.current === null) return;
50
- window.clearTimeout(timerRef.current);
51
- timerRef.current = null;
52
- };
53
- var clearFrame = function clearFrame(frameRef) {
54
- if (frameRef.current === null) return;
55
- window.cancelAnimationFrame(frameRef.current);
56
- frameRef.current = null;
57
- };
58
- var useBodyScrollLock = function useBodyScrollLock(locked) {
59
- (0, _react.useEffect)(function () {
60
- if (!locked) return undefined;
61
- lockBodyScroll();
62
- return function () {
63
- unlockBodyScroll();
64
- };
65
- }, [locked]);
66
- };
67
- var useDrawerTransition = function useDrawerTransition(open, closeDelay) {
68
- var _useState = (0, _react.useState)(open ? _constants.DRAWER_PHASES.open : _constants.DRAWER_PHASES.closed),
69
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
70
- phase = _useState2[0],
71
- setPhase = _useState2[1];
72
- var closeTimerRef = (0, _react.useRef)(null);
73
- var openFrameRef = (0, _react.useRef)(null);
74
- (0, _react.useEffect)(function () {
75
- return function () {
76
- clearTimer(closeTimerRef);
77
- clearFrame(openFrameRef);
78
- };
79
- }, []);
80
- (0, _react.useEffect)(function () {
81
- if (open) {
82
- clearTimer(closeTimerRef);
83
- if (phase === _constants.DRAWER_PHASES.open || phase === _constants.DRAWER_PHASES.opening) return;
84
- setPhase(_constants.DRAWER_PHASES.opening);
85
- return;
86
- }
87
- if (phase === _constants.DRAWER_PHASES.closed || phase === _constants.DRAWER_PHASES.closing) return;
88
- clearFrame(openFrameRef);
89
- setPhase(_constants.DRAWER_PHASES.closing);
90
- closeTimerRef.current = window.setTimeout(function () {
91
- setPhase(_constants.DRAWER_PHASES.closed);
92
- closeTimerRef.current = null;
93
- }, closeDelay);
94
- }, [closeDelay, open, phase]);
95
- (0, _react.useEffect)(function () {
96
- if (phase !== _constants.DRAWER_PHASES.opening) return undefined;
97
- openFrameRef.current = window.requestAnimationFrame(function () {
98
- setPhase(_constants.DRAWER_PHASES.open);
99
- openFrameRef.current = null;
100
- });
101
- return function () {
102
- clearFrame(openFrameRef);
103
- };
104
- }, [phase]);
105
- return {
106
- mounted: phase !== _constants.DRAWER_PHASES.closed,
107
- open: phase === _constants.DRAWER_PHASES.open
108
- };
109
- };
110
- var useDialogFocus = function useDialogFocus(active, dialogRef) {
111
- var previousActiveElementRef = (0, _react.useRef)(null);
112
- (0, _react.useEffect)(function () {
113
- if (!active || typeof document === 'undefined') return undefined;
114
- previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
115
- var frame = window.requestAnimationFrame(function () {
116
- var _a;
117
- (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
118
- });
119
- return function () {
120
- window.cancelAnimationFrame(frame);
121
- };
122
- }, [active, dialogRef]);
123
- (0, _react.useEffect)(function () {
124
- var _a, _b;
125
- if (active) return;
126
- (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
127
- previousActiveElementRef.current = null;
128
- }, [active]);
129
- };
130
- var useEscapeClose = function useEscapeClose(enabled, onClose) {
131
- (0, _react.useEffect)(function () {
132
- if (!enabled || typeof document === 'undefined') return undefined;
133
- var handleKeyDown = function handleKeyDown(event) {
134
- if (event.key !== 'Escape') return;
135
- event.preventDefault();
136
- onClose === null || onClose === void 0 ? void 0 : onClose();
137
- };
138
- document.addEventListener('keydown', handleKeyDown);
139
- return function () {
140
- document.removeEventListener('keydown', handleKeyDown);
141
- };
142
- }, [enabled, onClose]);
143
- };
144
31
  var renderControlButton = function renderControlButton(_ref) {
145
32
  var classes = _ref.classes,
146
33
  type = _ref.type,
@@ -163,11 +50,11 @@ var DrawerBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
163
50
  _props$open = props.open,
164
51
  open = _props$open === void 0 ? false : _props$open,
165
52
  _props$placement = props.placement,
166
- placement = _props$placement === void 0 ? _constants.DEFAULT_PLACEMENT : _props$placement,
53
+ placement = _props$placement === void 0 ? _constants.DRAWER_DEFAULTS.placement : _props$placement,
167
54
  _props$width = props.width,
168
- width = _props$width === void 0 ? _constants.DEFAULT_WIDTH : _props$width,
55
+ width = _props$width === void 0 ? _constants.DRAWER_DEFAULTS.width : _props$width,
169
56
  _props$height = props.height,
170
- height = _props$height === void 0 ? _constants.DEFAULT_HEIGHT : _props$height,
57
+ height = _props$height === void 0 ? _constants.DRAWER_DEFAULTS.height : _props$height,
171
58
  title = props.title,
172
59
  footer = props.footer,
173
60
  _props$maskClosable = props.maskClosable,
@@ -190,16 +77,13 @@ var DrawerBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
190
77
  var classes = (0, _classnames["default"])(prefixCls);
191
78
  var drawerRef = (0, _react.useRef)(null);
192
79
  var mergedRef = (0, _ref2.useComposeRef)(ref, drawerRef);
193
- var _useDrawerTransition = useDrawerTransition(open, _constants.CLOSE_TIMEOUT_MS),
80
+ var _useDrawerTransition = (0, _hooks2.useDrawerTransition)(open, _constants.DRAWER_DEFAULTS.closeTimeoutMs),
194
81
  mounted = _useDrawerTransition.mounted,
195
82
  isVisible = _useDrawerTransition.open;
196
83
  var hasHeader = title != null || showCloseIcon || showBackIcon;
197
- var isHorizontal = placement === 'left' || placement === 'right';
84
+ var isHorizontal = _constants.DRAWER_HORIZONTAL_PLACEMENTS.has(placement);
198
85
  var drawerLabel = typeof title === 'string' ? title : undefined;
199
- var panelStyle = Object.assign(Object.assign({
200
- width: isHorizontal ? width : undefined,
201
- height: !isHorizontal ? height : undefined
202
- }, wrapperStyle), style);
86
+ var panelStyle = Object.assign(Object.assign((0, _defineProperty2["default"])({}, isHorizontal ? 'width' : 'height', isHorizontal ? width : height), wrapperStyle), style);
203
87
  var handleClose = (0, _hooks.useEventCallback)(function () {
204
88
  onClose === null || onClose === void 0 ? void 0 : onClose();
205
89
  });
@@ -210,9 +94,9 @@ var DrawerBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
210
94
  if (!maskClosable) return;
211
95
  handleClose();
212
96
  });
213
- useBodyScrollLock(mounted && open);
214
- useDialogFocus(mounted && open, drawerRef);
215
- useEscapeClose(mounted && open, handleClose);
97
+ (0, _hooks2.useBodyScrollLock)(mounted && open);
98
+ (0, _hooks2.useDialogFocus)(mounted && open, drawerRef);
99
+ (0, _hooks2.useEscapeClose)(mounted && open, handleClose);
216
100
  if (!mounted) return null;
217
101
  return (0, _jsxRuntime.jsx)(_Portal.Portal, {
218
102
  children: (0, _jsxRuntime.jsxs)("div", {
@@ -241,7 +125,7 @@ var DrawerBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
241
125
  label: 'Go back',
242
126
  icon: backIcon !== null && backIcon !== void 0 ? backIcon : (0, _jsxRuntime.jsx)(_Icons.Icons, {
243
127
  name: "arrowLeft",
244
- size: _constants.CONTROL_ICON_SIZE
128
+ size: _constants.DRAWER_DEFAULTS.controlIconSize
245
129
  }),
246
130
  onClick: handleBack
247
131
  }), title != null && (0, _jsxRuntime.jsx)(_Typography.TypographyTitle, {
@@ -257,7 +141,7 @@ var DrawerBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
257
141
  label: 'Close drawer',
258
142
  icon: closeIcon !== null && closeIcon !== void 0 ? closeIcon : (0, _jsxRuntime.jsx)(_Icons.Icons, {
259
143
  name: "cross",
260
- size: _constants.CONTROL_ICON_SIZE
144
+ size: _constants.DRAWER_DEFAULTS.controlIconSize
261
145
  }),
262
146
  onClick: handleClose
263
147
  })]
@@ -278,4 +162,4 @@ DrawerBase.displayName = 'Drawer';
278
162
  var Drawer = exports.Drawer = /*#__PURE__*/(0, _react.memo)(DrawerBase);
279
163
  Drawer.displayName = 'Drawer';
280
164
  var _default = exports["default"] = Drawer;
281
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL0RyYXdlci5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRHJhd2VyL0RyYXdlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX2hvb2tzIiwiX3JlYWN0IiwiX0ljb25zIiwiX1BvcnRhbCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWYyIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwic2Nyb2xsTG9ja0NvdW50Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJ1bmxvY2tCb2R5U2Nyb2xsIiwiTWF0aCIsIm1heCIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNsZWFyVGltZXIiLCJ0aW1lclJlZiIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJjbGVhckZyYW1lIiwiZnJhbWVSZWYiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwidXNlRWZmZWN0IiwidW5kZWZpbmVkIiwidXNlRHJhd2VyVHJhbnNpdGlvbiIsIm9wZW4iLCJjbG9zZURlbGF5IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJEUkFXRVJfUEhBU0VTIiwiY2xvc2VkIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBoYXNlIiwic2V0UGhhc2UiLCJjbG9zZVRpbWVyUmVmIiwidXNlUmVmIiwib3BlbkZyYW1lUmVmIiwib3BlbmluZyIsImNsb3NpbmciLCJzZXRUaW1lb3V0IiwibW91bnRlZCIsInVzZURpYWxvZ0ZvY3VzIiwiYWN0aXZlIiwiZGlhbG9nUmVmIiwicHJldmlvdXNBY3RpdmVFbGVtZW50UmVmIiwiYWN0aXZlRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiZnJhbWUiLCJfYSIsImZvY3VzIiwiX2IiLCJ1c2VFc2NhcGVDbG9zZSIsImVuYWJsZWQiLCJvbkNsb3NlIiwiaGFuZGxlS2V5RG93biIsImV2ZW50Iiwia2V5IiwicHJldmVudERlZmF1bHQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckNvbnRyb2xCdXR0b24iLCJfcmVmIiwiY2xhc3NlcyIsInR5cGUiLCJsYWJlbCIsImljb24iLCJvbkNsaWNrIiwiX2pzeCIsImNsYXNzTmFtZSIsImpvaW5DbHMiLCJjb25jYXQiLCJjaGlsZHJlbiIsIkRyYXdlckJhc2UiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJfcHJvcHMkcGxhY2VtZW50IiwicGxhY2VtZW50IiwiREVGQVVMVF9QTEFDRU1FTlQiLCJfcHJvcHMkd2lkdGgiLCJ3aWR0aCIsIkRFRkFVTFRfV0lEVEgiLCJfcHJvcHMkaGVpZ2h0IiwiaGVpZ2h0IiwiREVGQVVMVF9IRUlHSFQiLCJ0aXRsZSIsImZvb3RlciIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiY2xvc2VJY29uIiwiYmFja0ljb24iLCJvbkJhY2siLCJyb290U3R5bGUiLCJ3cmFwcGVyU3R5bGUiLCJoZWFkZXJTdHlsZSIsImJvZHlTdHlsZSIsImZvb3RlclN0eWxlIiwicmVzdCIsImNsYXNzbmFtZXMiLCJkcmF3ZXJSZWYiLCJtZXJnZWRSZWYiLCJ1c2VDb21wb3NlUmVmIiwiX3VzZURyYXdlclRyYW5zaXRpb24iLCJDTE9TRV9USU1FT1VUX01TIiwiaXNWaXNpYmxlIiwiaGFzSGVhZGVyIiwiaXNIb3Jpem9udGFsIiwiZHJhd2VyTGFiZWwiLCJwYW5lbFN0eWxlIiwiYXNzaWduIiwiaGFuZGxlQ2xvc2UiLCJ1c2VFdmVudENhbGxiYWNrIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsIlBvcnRhbCIsIl9qc3hzIiwicm9sZSIsInRhYkluZGV4IiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsIkNPTlRST0xfSUNPTl9TSVpFIiwiVHlwb2dyYXBoeVRpdGxlIiwiRFJBV0VSX1RJVExFX1NJWkUiLCJzdHJvbmciLCJjb2xvciIsIkRSQVdFUl9USVRMRV9DT0xPUiIsImRpc3BsYXlOYW1lIiwiRHJhd2VyIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUCxPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBUixPQUFBO0FBRUFBLE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFULE9BQUE7QUFTcUIsU0FBQVUseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEs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RCxPQUFPLEVBQUVtRDtVRGpITyxDQ2tIakIsQ0FBQztRQUFBLENBQUEsQ0FFTCxFQUVELElBQUFsRCxlQUFBLEVBQUEsS0FBQSxFQUFBO1VBQUsvRCxLQUFLLEVBQUVrRyxTQUFTO1VBQUVsQyxTQUFTLEVBQUVOLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFBQVMsUUFBQSxFQUM5Q0E7UUFBUSxDQUFBLENBQ0wsRUFFTGtCLE1BQU0sSUFBSSxJQUFJLElBQ2IsSUFBQXRCLGVBQUEsRUFBQSxLQUFBLEVBQUE7VUFBSy9ELEtBQUssRUFBRW1HLFdBQVc7VUFBRW5DLFNBQVMsRUFBRU4sT0FBTyxDQUFDLFFBQVEsQ0FBQztVQUFBUyxRQUFBLEVBQ2xEa0I7UUFBTSxDQUFBLENBRVY7TUFBQSxDQUFBLENBQUEsQ0FDRztJQUFBLENBQUE7RUFDRixDQUFBLENBQ0M7QUFFYixDQUFDLENBQUM7QUFFRmpCLFVBQVUsQ0FBQzhELFdBQVcsR0FBRyxRQUFRO0FBRTFCLElBQU1DLE1BQU0sR0FBQUMsT0FBQSxDQUFBRCxNQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2pFLFVBQVUsQ0FBQztBQUV0QytELE1BQU0sQ0FBQ0QsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBSSxRQUFBLEdBQUFGLE9BQUEsY0FFZkQsTUFBTSIsImZpbGUiOiJjb21wb25lbnRzL0RyYXdlci9EcmF3ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgbWVtbywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICcuLi9Qb3J0YWwnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeVRpdGxlIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgY2xhc3NuYW1lcywgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VDb21wb3NlUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCAnLi9zdHlsZSc7XG5pbXBvcnQgeyBDTE9TRV9USU1FT1VUX01TLCBDT05UUk9MX0lDT05fU0laRSwgREVGQVVMVF9IRUlHSFQsIERFRkFVTFRfUExBQ0VNRU5ULCBERUZBVUxUX1dJRFRILCBEUkFXRVJfUEhBU0VTLCBEUkFXRVJfVElUTEVfQ09MT1IsIERSQVdFUl9USVRMRV9TSVpFLCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmxldCBzY3JvbGxMb2NrQ291bnQgPSAwO1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KCdoaWRkZW4nKTtcbn07XG5jb25zdCB1bmxvY2tCb2R5U2Nyb2xsID0gKCkgPT4ge1xuICAgIHNjcm9sbExvY2tDb3VudCA9IE1hdGgubWF4KDAsIHNjcm9sbExvY2tDb3VudCAtIDEpO1xuICAgIGlmIChzY3JvbGxMb2NrQ291bnQgIT09IDApXG4gICAgICAgIHJldHVybjtcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KCcnKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IGNsZWFyVGltZXIgPSAodGltZXJSZWYpID0+IHtcbiAgICBpZiAodGltZXJSZWYuY3VycmVudCA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgdGltZXJSZWYuY3VycmVudCA9IG51bGw7XG59O1xuY29uc3QgY2xlYXJGcmFtZSA9IChmcmFtZVJlZikgPT4ge1xuICAgIGlmIChmcmFtZVJlZi5jdXJyZW50ID09PSBudWxsKVxuICAgICAgICByZXR1cm47XG4gICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lUmVmLmN1cnJlbnQpO1xuICAgIGZyYW1lUmVmLmN1cnJlbnQgPSBudWxsO1xufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbG9ja2VkKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgbG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHVubG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbG9ja2VkXSk7XG59O1xuY29uc3QgdXNlRHJhd2VyVHJhbnNpdGlvbiA9IChvcGVuLCBjbG9zZURlbGF5KSA9PiB7XG4gICAgY29uc3QgW3BoYXNlLCBzZXRQaGFzZV0gPSB1c2VTdGF0ZShvcGVuID8gRFJBV0VSX1BIQVNFUy5vcGVuIDogRFJBV0VSX1BIQVNFUy5jbG9zZWQpO1xuICAgIGNvbnN0IGNsb3NlVGltZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3BlbkZyYW1lUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVyKGNsb3NlVGltZXJSZWYpO1xuICAgICAgICAgICAgY2xlYXJGcmFtZShvcGVuRnJhbWVSZWYpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgY2xlYXJUaW1lcihjbG9zZVRpbWVyUmVmKTtcbiAgICAgICAgICAgIGlmIChwaGFzZSA9PT0gRFJBV0VSX1BIQVNFUy5vcGVuIHx8IHBoYXNlID09PSBEUkFXRVJfUEhBU0VTLm9wZW5pbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5vcGVuaW5nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGhhc2UgPT09IERSQVdFUl9QSEFTRVMuY2xvc2VkIHx8IHBoYXNlID09PSBEUkFXRVJfUEhBU0VTLmNsb3NpbmcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNsZWFyRnJhbWUob3BlbkZyYW1lUmVmKTtcbiAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5jbG9zaW5nKTtcbiAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5jbG9zZWQpO1xuICAgICAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSwgY2xvc2VEZWxheSk7XG4gICAgfSwgW2Nsb3NlRGVsYXksIG9wZW4sIHBoYXNlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHBoYXNlICE9PSBEUkFXRVJfUEhBU0VTLm9wZW5pbmcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBvcGVuRnJhbWVSZWYuY3VycmVudCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5vcGVuKTtcbiAgICAgICAgICAgIG9wZW5GcmFtZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjbGVhckZyYW1lKG9wZW5GcmFtZVJlZik7XG4gICAgICAgIH07XG4gICAgfSwgW3BoYXNlXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW91bnRlZDogcGhhc2UgIT09IERSQVdFUl9QSEFTRVMuY2xvc2VkLFxuICAgICAgICBvcGVuOiBwaGFzZSA9PT0gRFJBV0VSX1BIQVNFUy5vcGVuLFxuICAgIH07XG59O1xuY29uc3QgdXNlRGlhbG9nRm9jdXMgPSAoYWN0aXZlLCBkaWFsb2dSZWYpID0+IHtcbiAgICBjb25zdCBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFhY3RpdmUgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgICAgICBjb25zdCBmcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgKF9hID0gZGlhbG9nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW2FjdGl2ZSwgZGlhbG9nUmVmXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGFjdGl2ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgKF9iID0gKF9hID0gcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW2FjdGl2ZV0pO1xufTtcbmNvbnN0IHVzZUVzY2FwZUNsb3NlID0gKGVuYWJsZWQsIG9uQ2xvc2UpID0+IHtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVuYWJsZWQgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgIT09ICdFc2NhcGUnKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBvbkNsb3NlID09PSBudWxsIHx8IG9uQ2xvc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xvc2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24pO1xuICAgICAgICB9O1xuICAgIH0sIFtlbmFibGVkLCBvbkNsb3NlXSk7XG59O1xuY29uc3QgcmVuZGVyQ29udHJvbEJ1dHRvbiA9ICh7IGNsYXNzZXMsIHR5cGUsIGxhYmVsLCBpY29uLCBvbkNsaWNrLCB9KSA9PiAoX2pzeChcImJ1dHRvblwiLCB7IHR5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdjb250cm9sJyksIGNsYXNzZXMoYGNvbnRyb2wtJHt0eXBlfWApKSwgXCJhcmlhLWxhYmVsXCI6IGxhYmVsLCBvbkNsaWNrOiBvbkNsaWNrLCBjaGlsZHJlbjogaWNvbiB9KSk7XG5jb25zdCBEcmF3ZXJCYXNlID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBzdHlsZSwgcHJlZml4Q2xzID0gJ2RyYXdlcicsIG9wZW4gPSBmYWxzZSwgcGxhY2VtZW50ID0gREVGQVVMVF9QTEFDRU1FTlQsIHdpZHRoID0gREVGQVVMVF9XSURUSCwgaGVpZ2h0ID0gREVGQVVMVF9IRUlHSFQsIHRpdGxlLCBmb290ZXIsIG1hc2tDbG9zYWJsZSA9IHRydWUsIHNob3dDbG9zZUljb24gPSB0cnVlLCBzaG93QmFja0ljb24gPSBmYWxzZSwgY2xvc2VJY29uLCBiYWNrSWNvbiwgY2hpbGRyZW4sIG9uQ2xvc2UsIG9uQmFjaywgcm9vdFN0eWxlLCB3cmFwcGVyU3R5bGUsIGhlYWRlclN0eWxlLCBib2R5U3R5bGUsIGZvb3RlclN0eWxlIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIiwgXCJvcGVuXCIsIFwicGxhY2VtZW50XCIsIFwid2lkdGhcIiwgXCJoZWlnaHRcIiwgXCJ0aXRsZVwiLCBcImZvb3RlclwiLCBcIm1hc2tDbG9zYWJsZVwiLCBcInNob3dDbG9zZUljb25cIiwgXCJzaG93QmFja0ljb25cIiwgXCJjbG9zZUljb25cIiwgXCJiYWNrSWNvblwiLCBcImNoaWxkcmVuXCIsIFwib25DbG9zZVwiLCBcIm9uQmFja1wiLCBcInJvb3RTdHlsZVwiLCBcIndyYXBwZXJTdHlsZVwiLCBcImhlYWRlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiZm9vdGVyU3R5bGVcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgZHJhd2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG1lcmdlZFJlZiA9IHVzZUNvbXBvc2VSZWYocmVmLCBkcmF3ZXJSZWYpO1xuICAgIGNvbnN0IHsgbW91bnRlZCwgb3BlbjogaXNWaXNpYmxlIH0gPSB1c2VEcmF3ZXJUcmFuc2l0aW9uKG9wZW4sIENMT1NFX1RJTUVPVVRfTVMpO1xuICAgIGNvbnN0IGhhc0hlYWRlciA9IHRpdGxlICE9IG51bGwgfHwgc2hvd0Nsb3NlSWNvbiB8fCBzaG93QmFja0ljb247XG4gICAgY29uc3QgaXNIb3Jpem9udGFsID0gcGxhY2VtZW50ID09PSAnbGVmdCcgfHwgcGxhY2VtZW50ID09PSAncmlnaHQnO1xuICAgIGNvbnN0IGRyYXdlckxhYmVsID0gdHlwZW9mIHRpdGxlID09PSAnc3RyaW5nJyA/IHRpdGxlIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHBhbmVsU3R5bGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyB3aWR0aDogaXNIb3Jpem9udGFsID8gd2lkdGggOiB1bmRlZmluZWQsIGhlaWdodDogIWlzSG9yaXpvbnRhbCA/IGhlaWdodCA6IHVuZGVmaW5lZCB9LCB3cmFwcGVyU3R5bGUpLCBzdHlsZSk7XG4gICAgY29uc3QgaGFuZGxlQ2xvc2UgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgb25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNsb3NlKCk7XG4gICAgfSk7XG4gICAgdXNlQm9keVNjcm9sbExvY2sobW91bnRlZCAmJiBvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhtb3VudGVkICYmIG9wZW4sIGRyYXdlclJlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2UobW91bnRlZCAmJiBvcGVuLCBoYW5kbGVDbG9zZSk7XG4gICAgaWYgKCFtb3VudGVkKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUG9ydGFsLCB7IGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiByb290U3R5bGUsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdyb290JyksIGlzVmlzaWJsZSA/IGNsYXNzZXMoJ3Jvb3Qtb3BlbicpIDogY2xhc3Nlcygncm9vdC1jbG9zZWQnKSksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnb3ZlcmxheScpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBtZXJnZWRSZWYsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1tb2RhbFwiOiBcInRydWVcIiwgXCJhcmlhLWxhYmVsXCI6IGRyYXdlckxhYmVsLCB0YWJJbmRleDogLTEsIHN0eWxlOiBwYW5lbFN0eWxlLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc2VzKHBsYWNlbWVudCksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbaGFzSGVhZGVyICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc2VzKCdoZWFkZXInKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaGVhZGVyLW1haW4nKSwgY2hpbGRyZW46IFtzaG93QmFja0ljb24gJiYgcmVuZGVyQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdiYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHbyBiYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYmFja0ljb24gIT09IG51bGwgJiYgYmFja0ljb24gIT09IHZvaWQgMCA/IGJhY2tJY29uIDogX2pzeChJY29ucywgeyBuYW1lOiBcImFycm93TGVmdFwiLCBzaXplOiBDT05UUk9MX0lDT05fU0laRSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogaGFuZGxlQmFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGl0bGUgIT0gbnVsbCAmJiBfanN4KFR5cG9ncmFwaHlUaXRsZSwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3RpdGxlJyksIHNpemU6IERSQVdFUl9USVRMRV9TSVpFLCBzdHJvbmc6IHRydWUsIGNvbG9yOiBEUkFXRVJfVElUTEVfQ09MT1IsIGNoaWxkcmVuOiB0aXRsZSB9KV0gfSksIHNob3dDbG9zZUljb24gJiYgcmVuZGVyQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Nsb3NlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ2xvc2UgZHJhd2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGNsb3NlSWNvbiAhPT0gbnVsbCAmJiBjbG9zZUljb24gIT09IHZvaWQgMCA/IGNsb3NlSWNvbiA6IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjcm9zc1wiLCBzaXplOiBDT05UUk9MX0lDT05fU0laRSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsb3NlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSkpLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc2VzKCdib2R5JyksIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSwgZm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogZm9vdGVyU3R5bGUsIGNsYXNzTmFtZTogY2xhc3NlcygnZm9vdGVyJyksIGNoaWxkcmVuOiBmb290ZXIgfSkpXSB9KSldIH0pIH0pKTtcbn0pO1xuRHJhd2VyQmFzZS5kaXNwbGF5TmFtZSA9ICdEcmF3ZXInO1xuZXhwb3J0IGNvbnN0IERyYXdlciA9IG1lbW8oRHJhd2VyQmFzZSk7XG5EcmF3ZXIuZGlzcGxheU5hbWUgPSAnRHJhd2VyJztcbmV4cG9ydCBkZWZhdWx0IERyYXdlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
165
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL0RyYXdlci5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRHJhd2VyL0RyYXdlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX2hvb2tzIiwiX3JlYWN0IiwiX0ljb25zIiwiX1BvcnRhbCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWYyIiwiX2NvbnN0YW50cyIsIl9ob29rczIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInJlbmRlckNvbnRyb2xCdXR0b24iLCJfcmVmIiwiY2xhc3NlcyIsInR5cGUiLCJsYWJlbCIsImljb24iLCJvbkNsaWNrIiwiX2pzeCIsImNsYXNzTmFtZSIsImpvaW5DbHMiLCJjb25jYXQiLCJjaGlsZHJlbiIsIkRyYXdlckJhc2UiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJzdHlsZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfcHJvcHMkb3BlbiIsIm9wZW4iLCJfcHJvcHMkcGxhY2VtZW50IiwicGxhY2VtZW50IiwiRFJBV0VSX0RFRkFVTFRTIiwiX3Byb3BzJHdpZHRoIiwid2lkdGgiLCJfcHJvcHMkaGVpZ2h0IiwiaGVpZ2h0IiwidGl0bGUiLCJmb290ZXIiLCJfcHJvcHMkbWFza0Nsb3NhYmxlIiwibWFza0Nsb3NhYmxlIiwiX3Byb3BzJHNob3dDbG9zZUljb24iLCJzaG93Q2xvc2VJY29uIiwiX3Byb3BzJHNob3dCYWNrSWNvbiIsInNob3dCYWNrSWNvbiIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwib25DbG9zZSIsIm9uQmFjayIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImhlYWRlclN0eWxlIiwiYm9keVN0eWxlIiwiZm9vdGVyU3R5bGUiLCJyZXN0IiwiY2xhc3NuYW1lcyIsImRyYXdlclJlZiIsInVzZVJlZiIsIm1lcmdlZFJlZiIsInVzZUNvbXBvc2VSZWYiLCJfdXNlRHJhd2VyVHJhbnNpdGlvbiIsInVzZURyYXdlclRyYW5zaXRpb24iLCJjbG9zZVRpbWVvdXRNcyIsIm1vdW50ZWQiLCJpc1Zpc2libGUiLCJoYXNIZWFkZXIiLCJpc0hvcml6b250YWwiLCJEUkFXRVJfSE9SSVpPTlRBTF9QTEFDRU1FTlRTIiwiZHJhd2VyTGFiZWwiLCJ1bmRlZmluZWQiLCJwYW5lbFN0eWxlIiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5MiIsImhhbmRsZUNsb3NlIiwidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZUJhY2siLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJ1c2VCb2R5U2Nyb2xsTG9jayIsInVzZURpYWxvZ0ZvY3VzIiwidXNlRXNjYXBlQ2xvc2UiLCJQb3J0YWwiLCJfanN4cyIsInJvbGUiLCJ0YWJJbmRleCIsIkljb25zIiwibmFtZSIsInNpemUiLCJjb250cm9sSWNvblNpemUiLCJUeXBvZ3JhcGh5VGl0bGUiLCJEUkFXRVJfVElUTEVfU0laRSIsInN0cm9uZyIsImNvbG9yIiwiRFJBV0VSX1RJVExFX0NPTE9SIiwiZGlzcGxheU5hbWUiLCJEcmF3ZXIiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFG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LENBQUEsQ0FFVjtNQUFBLENBQUEsQ0FBQSxDQUNHO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUMsQ0FBQztBQUVGakIsVUFBVSxDQUFDd0UsV0FBVyxHQUFHLFFBQVE7QUFFMUIsSUFBTUMsTUFBTSxHQUFBQyxPQUFBLENBQUFELE1BQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDM0UsVUFBVSxDQUFDO0FBRXRDeUUsTUFBTSxDQUFDRCxXQUFXLEdBQUcsUUFBUTtBQUFDLElBQUFJLFFBQUEsR0FBQUYsT0FBQSxjQUVmRCxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJhd2VyL0RyYXdlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBtZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5VGl0bGUgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCBjbGFzc25hbWVzLCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUNvbXBvc2VSZWYgfSBmcm9tICcuLi8uLi91dGlscy9yZWYnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmltcG9ydCB7IERSQVdFUl9ERUZBVUxUUywgRFJBV0VSX0hPUklaT05UQUxfUExBQ0VNRU5UUywgRFJBV0VSX1RJVExFX0NPTE9SLCBEUkFXRVJfVElUTEVfU0laRSwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VCb2R5U2Nyb2xsTG9jaywgdXNlRGlhbG9nRm9jdXMsIHVzZURyYXdlclRyYW5zaXRpb24sIHVzZUVzY2FwZUNsb3NlIH0gZnJvbSAnLi9ob29rcyc7XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHsgY2xhc3NlcywgdHlwZSwgbGFiZWwsIGljb24sIG9uQ2xpY2ssIH0pID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2xhc3NlcyhgY29udHJvbC0ke3R5cGV9YCkpLCBcImFyaWEtbGFiZWxcIjogbGFiZWwsIG9uQ2xpY2s6IG9uQ2xpY2ssIGNoaWxkcmVuOiBpY29uIH0pKTtcbmNvbnN0IERyYXdlckJhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSAnZHJhd2VyJywgb3BlbiA9IGZhbHNlLCBwbGFjZW1lbnQgPSBEUkFXRVJfREVGQVVMVFMucGxhY2VtZW50LCB3aWR0aCA9IERSQVdFUl9ERUZBVUxUUy53aWR0aCwgaGVpZ2h0ID0gRFJBV0VSX0RFRkFVTFRTLmhlaWdodCwgdGl0bGUsIGZvb3RlciwgbWFza0Nsb3NhYmxlID0gdHJ1ZSwgc2hvd0Nsb3NlSWNvbiA9IHRydWUsIHNob3dCYWNrSWNvbiA9IGZhbHNlLCBjbG9zZUljb24sIGJhY2tJY29uLCBjaGlsZHJlbiwgb25DbG9zZSwgb25CYWNrLCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgaGVhZGVyU3R5bGUsIGJvZHlTdHlsZSwgZm9vdGVyU3R5bGUgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJwbGFjZW1lbnRcIiwgXCJ3aWR0aFwiLCBcImhlaWdodFwiLCBcInRpdGxlXCIsIFwiZm9vdGVyXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImNsb3NlSWNvblwiLCBcImJhY2tJY29uXCIsIFwiY2hpbGRyZW5cIiwgXCJvbkNsb3NlXCIsIFwib25CYWNrXCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJib2R5U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBkcmF3ZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgbWVyZ2VkUmVmID0gdXNlQ29tcG9zZVJlZihyZWYsIGRyYXdlclJlZik7XG4gICAgY29uc3QgeyBtb3VudGVkLCBvcGVuOiBpc1Zpc2libGUgfSA9IHVzZURyYXdlclRyYW5zaXRpb24ob3BlbiwgRFJBV0VSX0RFRkFVTFRTLmNsb3NlVGltZW91dE1zKTtcbiAgICBjb25zdCBoYXNIZWFkZXIgPSB0aXRsZSAhPSBudWxsIHx8IHNob3dDbG9zZUljb24gfHwgc2hvd0JhY2tJY29uO1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IERSQVdFUl9IT1JJWk9OVEFMX1BMQUNFTUVOVFMuaGFzKHBsYWNlbWVudCk7XG4gICAgY29uc3QgZHJhd2VyTGFiZWwgPSB0eXBlb2YgdGl0bGUgPT09ICdzdHJpbmcnID8gdGl0bGUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFuZWxTdHlsZSA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IFtpc0hvcml6b250YWwgPyAnd2lkdGgnIDogJ2hlaWdodCddOiBpc0hvcml6b250YWwgPyB3aWR0aCA6IGhlaWdodCB9LCB3cmFwcGVyU3R5bGUpLCBzdHlsZSk7XG4gICAgY29uc3QgaGFuZGxlQ2xvc2UgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgb25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNsb3NlKCk7XG4gICAgfSk7XG4gICAgdXNlQm9keVNjcm9sbExvY2sobW91bnRlZCAmJiBvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhtb3VudGVkICYmIG9wZW4sIGRyYXdlclJlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2UobW91bnRlZCAmJiBvcGVuLCBoYW5kbGVDbG9zZSk7XG4gICAgaWYgKCFtb3VudGVkKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUG9ydGFsLCB7IGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiByb290U3R5bGUsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdyb290JyksIGlzVmlzaWJsZSA/IGNsYXNzZXMoJ3Jvb3Qtb3BlbicpIDogY2xhc3Nlcygncm9vdC1jbG9zZWQnKSksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnb3ZlcmxheScpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBtZXJnZWRSZWYsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1tb2RhbFwiOiBcInRydWVcIiwgXCJhcmlhLWxhYmVsXCI6IGRyYXdlckxhYmVsLCB0YWJJbmRleDogLTEsIHN0eWxlOiBwYW5lbFN0eWxlLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc2VzKHBsYWNlbWVudCksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbaGFzSGVhZGVyICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc2VzKCdoZWFkZXInKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaGVhZGVyLW1haW4nKSwgY2hpbGRyZW46IFtzaG93QmFja0ljb24gJiYgcmVuZGVyQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdiYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHbyBiYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYmFja0ljb24gIT09IG51bGwgJiYgYmFja0ljb24gIT09IHZvaWQgMCA/IGJhY2tJY29uIDogX2pzeChJY29ucywgeyBuYW1lOiBcImFycm93TGVmdFwiLCBzaXplOiBEUkFXRVJfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVCYWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB0aXRsZSAhPSBudWxsICYmIF9qc3goVHlwb2dyYXBoeVRpdGxlLCB7IGNsYXNzTmFtZTogY2xhc3NlcygndGl0bGUnKSwgc2l6ZTogRFJBV0VSX1RJVExFX1NJWkUsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IERSQVdFUl9USVRMRV9DT0xPUiwgY2hpbGRyZW46IHRpdGxlIH0pXSB9KSwgc2hvd0Nsb3NlSWNvbiAmJiByZW5kZXJDb250cm9sQnV0dG9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2xvc2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDbG9zZSBkcmF3ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogX2pzeChJY29ucywgeyBuYW1lOiBcImNyb3NzXCIsIHNpemU6IERSQVdFUl9ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVDbG9zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0pKSwgX2pzeChcImRpdlwiLCB7IHN0eWxlOiBib2R5U3R5bGUsIGNsYXNzTmFtZTogY2xhc3NlcygnYm9keScpLCBjaGlsZHJlbjogY2hpbGRyZW4gfSksIGZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGZvb3RlclN0eWxlLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3RlcicpLCBjaGlsZHJlbjogZm9vdGVyIH0pKV0gfSkpXSB9KSB9KSk7XG59KTtcbkRyYXdlckJhc2UuZGlzcGxheU5hbWUgPSAnRHJhd2VyJztcbmV4cG9ydCBjb25zdCBEcmF3ZXIgPSBtZW1vKERyYXdlckJhc2UpO1xuRHJhd2VyLmRpc3BsYXlOYW1lID0gJ0RyYXdlcic7XG5leHBvcnQgZGVmYXVsdCBEcmF3ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,15 +1,18 @@
1
1
  import type { TypographyColor, TypographyTitleSize } from "../Typography";
2
2
  export declare const DRAWER_PLACEMENTS: readonly ["top", "right", "bottom", "left"];
3
+ export declare const DRAWER_HORIZONTAL_PLACEMENTS: ReadonlySet<(typeof DRAWER_PLACEMENTS)[number]>;
3
4
  export declare const DRAWER_PHASES: {
4
5
  readonly closed: "closed";
5
6
  readonly opening: "opening";
6
7
  readonly open: "open";
7
8
  readonly closing: "closing";
8
9
  };
9
- export declare const CLOSE_TIMEOUT_MS = 300;
10
- export declare const CONTROL_ICON_SIZE = 20;
11
- export declare const DEFAULT_WIDTH = 360;
12
- export declare const DEFAULT_HEIGHT = 360;
13
- export declare const DEFAULT_PLACEMENT = "right";
10
+ export declare const DRAWER_DEFAULTS: {
11
+ readonly closeTimeoutMs: 300;
12
+ readonly controlIconSize: 20;
13
+ readonly width: 360;
14
+ readonly height: 360;
15
+ readonly placement: "right";
16
+ };
14
17
  export declare const DRAWER_TITLE_SIZE: TypographyTitleSize;
15
18
  export declare const DRAWER_TITLE_COLOR: TypographyColor;
@@ -3,20 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.DRAWER_TITLE_SIZE = exports.DRAWER_TITLE_COLOR = exports.DRAWER_PLACEMENTS = exports.DRAWER_PHASES = exports.DEFAULT_WIDTH = exports.DEFAULT_PLACEMENT = exports.DEFAULT_HEIGHT = exports.CONTROL_ICON_SIZE = exports.CLOSE_TIMEOUT_MS = void 0;
6
+ exports.DRAWER_TITLE_SIZE = exports.DRAWER_TITLE_COLOR = exports.DRAWER_PLACEMENTS = exports.DRAWER_PHASES = exports.DRAWER_HORIZONTAL_PLACEMENTS = exports.DRAWER_DEFAULTS = void 0;
7
7
  var DRAWER_PLACEMENTS = exports.DRAWER_PLACEMENTS = ['top', 'right', 'bottom', 'left'];
8
+ var DRAWER_HORIZONTAL_PLACEMENTS = exports.DRAWER_HORIZONTAL_PLACEMENTS = new Set(['left', 'right']);
8
9
  var DRAWER_PHASES = exports.DRAWER_PHASES = {
9
10
  closed: 'closed',
10
11
  opening: 'opening',
11
12
  open: 'open',
12
13
  closing: 'closing'
13
14
  };
14
- var CLOSE_TIMEOUT_MS = exports.CLOSE_TIMEOUT_MS = 300;
15
- var CONTROL_ICON_SIZE = exports.CONTROL_ICON_SIZE = 20;
16
- var DEFAULT_WIDTH = exports.DEFAULT_WIDTH = 360;
17
- var DEFAULT_HEIGHT = exports.DEFAULT_HEIGHT = 360;
18
- var DEFAULT_PLACEMENT = exports.DEFAULT_PLACEMENT = 'right';
15
+ var DRAWER_DEFAULTS = exports.DRAWER_DEFAULTS = {
16
+ closeTimeoutMs: 300,
17
+ controlIconSize: 20,
18
+ width: 360,
19
+ height: 360,
20
+ placement: 'right'
21
+ };
19
22
  // ── Typography ──
20
23
  var DRAWER_TITLE_SIZE = exports.DRAWER_TITLE_SIZE = 'lg';
21
24
  var DRAWER_TITLE_COLOR = exports.DRAWER_TITLE_COLOR = 'default';
22
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRHJhd2VyL2NvbnN0YW50cy50cyIsImNvbXBvbmVudHMvRHJhd2VyL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJEUkFXRVJfUExBQ0VNRU5UUyIsImV4cG9ydHMiLCJEUkFXRVJfUEhBU0VTIiwiY2xvc2VkIiwib3BlbmluZyIsIm9wZW4iLCJjbG9zaW5nIiwiQ0xPU0VfVElNRU9VVF9NUyIsIkNPTlRST0xfSUNPTl9TSVpFIiwiREVGQVVMVF9XSURUSCIsIkRFRkFVTFRfSEVJR0hUIiwiREVGQVVMVF9QTEFDRU1FTlQiLCJEUkFXRVJfVElUTEVfU0laRSIsIkRSQVdFUl9USVRMRV9DT0xPUiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sSUFBTUEsaUJBQWlCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBVTtBQUNyRSxJQUFNRSxhQUFhLEdBQUFELE9BQUEsQ0FBQUMsYUFBQSxHQUFHO0VBQzNCQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLElBQUksRUFBRSxNQUFNO0VBQ1pDLE9BQU8sRUFBRTtBQ0RYLENERVU7QUFFSCxJQUFNQyxnQkFBZ0IsR0FBQU4sT0FBQSxDQUFBTSxnQkFBQSxHQUFHLEdBQUc7QUFDNUIsSUFBTUMsaUJBQWlCLEdBQUFQLE9BQUEsQ0FBQU8saUJBQUEsR0FBRyxFQUFFO0FBQzVCLElBQU1DLGFBQWEsR0FBQVIsT0FBQSxDQUFBUSxhQUFBLEdBQUcsR0FBRztBQUN6QixJQUFNQyxjQUFjLEdBQUFULE9BQUEsQ0FBQVMsY0FBQSxHQUFHLEdBQUc7QUFDMUIsSUFBTUMsaUJBQWlCLEdBQUFWLE9BQUEsQ0FBQVUsaUJBQUEsR0FBRyxPQUFPO0FBRXhDO0FBQ08sSUFBTUMsaUJBQWlCLEdBQUFYLE9BQUEsQ0FBQVcsaUJBQUEsR0FBd0IsSUFBSTtBQUNuRCxJQUFNQyxrQkFBa0IsR0FBQVosT0FBQSxDQUFBWSxrQkFBQSxHQUFvQixTQUFTIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJhd2VyL2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiZXhwb3J0IGNvbnN0IERSQVdFUl9QTEFDRU1FTlRTID0gWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXTtcbmV4cG9ydCBjb25zdCBEUkFXRVJfUEhBU0VTID0ge1xuICAgIGNsb3NlZDogJ2Nsb3NlZCcsXG4gICAgb3BlbmluZzogJ29wZW5pbmcnLFxuICAgIG9wZW46ICdvcGVuJyxcbiAgICBjbG9zaW5nOiAnY2xvc2luZycsXG59O1xuZXhwb3J0IGNvbnN0IENMT1NFX1RJTUVPVVRfTVMgPSAzMDA7XG5leHBvcnQgY29uc3QgQ09OVFJPTF9JQ09OX1NJWkUgPSAyMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1dJRFRIID0gMzYwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVJR0hUID0gMzYwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExBQ0VNRU5UID0gJ3JpZ2h0Jztcbi8vIOKUgOKUgCBUeXBvZ3JhcGh5IOKUgOKUgFxuZXhwb3J0IGNvbnN0IERSQVdFUl9USVRMRV9TSVpFID0gJ2xnJztcbmV4cG9ydCBjb25zdCBEUkFXRVJfVElUTEVfQ09MT1IgPSAnZGVmYXVsdCc7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
25
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRHJhd2VyL2NvbnN0YW50cy50cyIsImNvbXBvbmVudHMvRHJhd2VyL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJEUkFXRVJfUExBQ0VNRU5UUyIsImV4cG9ydHMiLCJEUkFXRVJfSE9SSVpPTlRBTF9QTEFDRU1FTlRTIiwiU2V0IiwiRFJBV0VSX1BIQVNFUyIsImNsb3NlZCIsIm9wZW5pbmciLCJvcGVuIiwiY2xvc2luZyIsIkRSQVdFUl9ERUZBVUxUUyIsImNsb3NlVGltZW91dE1zIiwiY29udHJvbEljb25TaXplIiwid2lkdGgiLCJoZWlnaHQiLCJwbGFjZW1lbnQiLCJEUkFXRVJfVElUTEVfU0laRSIsIkRSQVdFUl9USVRMRV9DT0xPUiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sSUFBTUEsaUJBQWlCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBVTtBQUNyRSxJQUFNRSw0QkFBNEIsR0FBQUQsT0FBQSxDQUFBQyw0QkFBQSxHQUFvRCxJQUFJQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFaEgsSUFBTUMsYUFBYSxHQUFBSCxPQUFBLENBQUFHLGFBQUEsR0FBRztFQUMzQkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxPQUFPLEVBQUU7QUNGWCxDREdVO0FBRUgsSUFBTUMsZUFBZSxHQUFBUixPQUFBLENBQUFRLGVBQUEsR0FBRztFQUM3QkMsY0FBYyxFQUFFLEdBQUc7RUFDbkJDLGVBQWUsRUFBRSxFQUFFO0VBQ25CQyxLQUFLLEVBQUUsR0FBRztFQUNWQyxNQUFNLEVBQUUsR0FBRztFQUNYQyxTQUFTLEVBQUU7QUNIYixDRElVO0FBRVY7QUFDTyxJQUFNQyxpQkFBaUIsR0FBQWQsT0FBQSxDQUFBYyxpQkFBQSxHQUF3QixJQUFJO0FBQ25ELElBQU1DLGtCQUFrQixHQUFBZixPQUFBLENBQUFlLGtCQUFBLEdBQW9CLFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9EcmF3ZXIvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJleHBvcnQgY29uc3QgRFJBV0VSX1BMQUNFTUVOVFMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xuZXhwb3J0IGNvbnN0IERSQVdFUl9IT1JJWk9OVEFMX1BMQUNFTUVOVFMgPSBuZXcgU2V0KFsnbGVmdCcsICdyaWdodCddKTtcbmV4cG9ydCBjb25zdCBEUkFXRVJfUEhBU0VTID0ge1xuICAgIGNsb3NlZDogJ2Nsb3NlZCcsXG4gICAgb3BlbmluZzogJ29wZW5pbmcnLFxuICAgIG9wZW46ICdvcGVuJyxcbiAgICBjbG9zaW5nOiAnY2xvc2luZycsXG59O1xuZXhwb3J0IGNvbnN0IERSQVdFUl9ERUZBVUxUUyA9IHtcbiAgICBjbG9zZVRpbWVvdXRNczogMzAwLFxuICAgIGNvbnRyb2xJY29uU2l6ZTogMjAsXG4gICAgd2lkdGg6IDM2MCxcbiAgICBoZWlnaHQ6IDM2MCxcbiAgICBwbGFjZW1lbnQ6ICdyaWdodCcsXG59O1xuLy8g4pSA4pSAIFR5cG9ncmFwaHkg4pSA4pSAXG5leHBvcnQgY29uc3QgRFJBV0VSX1RJVExFX1NJWkUgPSAnbGcnO1xuZXhwb3J0IGNvbnN0IERSQVdFUl9USVRMRV9DT0xPUiA9ICdkZWZhdWx0JzsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,4 @@
1
+ export { useBodyScrollLock } from './useBodyScrollLock';
2
+ export { useDialogFocus } from './useDialogFocus';
3
+ export { useDrawerTransition } from './useDrawerTransition';
4
+ export { useEscapeClose } from './useEscapeClose';
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useBodyScrollLock", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _useBodyScrollLock.useBodyScrollLock;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useDialogFocus", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _useDialogFocus.useDialogFocus;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useDrawerTransition", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _useDrawerTransition.useDrawerTransition;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useEscapeClose", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _useEscapeClose.useEscapeClose;
28
+ }
29
+ });
30
+ var _useBodyScrollLock = require("./useBodyScrollLock");
31
+ var _useDialogFocus = require("./useDialogFocus");
32
+ var _useDrawerTransition = require("./useDrawerTransition");
33
+ var _useEscapeClose = require("./useEscapeClose");
34
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy9pbmRleC50cyJdLCJuYW1lcyI6WyJfdXNlQm9keVNjcm9sbExvY2siLCJyZXF1aXJlIiwiX3VzZURpYWxvZ0ZvY3VzIiwiX3VzZURyYXdlclRyYW5zaXRpb24iLCJfdXNlRXNjYXBlQ2xvc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG9CQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFILE9BQUEiLCJmaWxlIjoiY29tcG9uZW50cy9EcmF3ZXIvaG9va3MvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1 @@
1
+ export declare const useBodyScrollLock: (locked: boolean) => void;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBodyScrollLock = void 0;
7
+ var _react = require("react");
8
+ var scrollLockCount = 0;
9
+ var setBodyOverflow = function setBodyOverflow(value) {
10
+ if (typeof document === 'undefined') return;
11
+ document.body.style.overflow = value;
12
+ };
13
+ var lockBodyScroll = function lockBodyScroll() {
14
+ scrollLockCount += 1;
15
+ setBodyOverflow('hidden');
16
+ };
17
+ var unlockBodyScroll = function unlockBodyScroll() {
18
+ scrollLockCount = Math.max(0, scrollLockCount - 1);
19
+ if (scrollLockCount !== 0) return;
20
+ window.requestAnimationFrame(function () {
21
+ if (scrollLockCount === 0) {
22
+ setBodyOverflow('');
23
+ }
24
+ });
25
+ };
26
+ var useBodyScrollLock = exports.useBodyScrollLock = function useBodyScrollLock(locked) {
27
+ (0, _react.useEffect)(function () {
28
+ if (!locked) return undefined;
29
+ lockBodyScroll();
30
+ return function () {
31
+ unlockBodyScroll();
32
+ };
33
+ }, [locked]);
34
+ };
35
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VCb2R5U2Nyb2xsTG9jay50cyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwic2Nyb2xsTG9ja0NvdW50Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJ1bmxvY2tCb2R5U2Nyb2xsIiwiTWF0aCIsIm1heCIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInVzZUJvZHlTY3JvbGxMb2NrIiwiZXhwb3J0cyIsImxvY2tlZCIsInVzZUVmZmVjdCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBSUMsZUFBZSxHQUFHLENBQUM7QUFFdkIsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxLQUFhLEVBQUk7RUFDeEMsSUFBSSxPQUFPQyxRQUFRLEtBQUssV0FBVyxFQUFFO0VBQ3JDQSxRQUFRLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLEdBQUdKLEtBQUs7QUFDdEMsQ0FBQztBQUVELElBQU1LLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFRO0VBQzFCUCxlQUFlLElBQUksQ0FBQztFQUNwQkMsZUFBZSxDQUFDLFFBQVEsQ0FBQztBQUMzQixDQUFDO0FBRUQsSUFBTU8sZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBQSxFQUFRO0VBQzVCUixlQUFlLEdBQUdTLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRVYsZUFBZSxHQUFHLENBQUMsQ0FBQztFQUVsRCxJQUFJQSxlQUFlLEtBQUssQ0FBQyxFQUFFO0VBRTNCVyxNQUFNLENBQUNDLHFCQUFxQixDQUFDLFlBQUs7SUFDaEMsSUFBSVosZUFBZSxLQUFLLENBQUMsRUFBRTtNQUN6QkMsZUFBZSxDQUFDLEVBQUUsQ0FBQztJQUNyQjtFQUNGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFTSxJQUFNWSxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlFLE1BQWUsRUFBSTtFQUNuRCxJQUFBQyxnQkFBUyxFQUFDLFlBQUs7SUFDYixJQUFJLENBQUNELE1BQU0sRUFBRSxPQUFPRSxTQUFTO0lBRTdCVixjQUFjLENBQUEsQ0FBRTtJQUVoQixPQUFPLFlBQUs7TUFDVkMsZ0JBQWdCLENBQUEsQ0FBRTtJQUNwQixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNPLE1BQU0sQ0FBQyxDQUFDO0FBQ2QsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VCb2R5U2Nyb2xsTG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,2 @@
1
+ import type { RefObject } from 'react';
2
+ export declare const useDialogFocus: (active: boolean, dialogRef: RefObject<HTMLDivElement | null>) => void;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useDialogFocus = void 0;
7
+ var _react = require("react");
8
+ var useDialogFocus = exports.useDialogFocus = function useDialogFocus(active, dialogRef) {
9
+ var previousActiveElementRef = (0, _react.useRef)(null);
10
+ (0, _react.useEffect)(function () {
11
+ if (!active || typeof document === 'undefined') return undefined;
12
+ previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
13
+ var frame = window.requestAnimationFrame(function () {
14
+ var _a;
15
+ (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
16
+ });
17
+ return function () {
18
+ window.cancelAnimationFrame(frame);
19
+ };
20
+ }, [active, dialogRef]);
21
+ (0, _react.useEffect)(function () {
22
+ var _a, _b;
23
+ if (active) return;
24
+ (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
25
+ previousActiveElementRef.current = null;
26
+ }, [active]);
27
+ };
28
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEaWFsb2dGb2N1cy50cyIsImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURpYWxvZ0ZvY3VzLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJ1c2VEaWFsb2dGb2N1cyIsImV4cG9ydHMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsInVuZGVmaW5lZCIsImN1cnJlbnQiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwiY2FsbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBR08sSUFBTUMsY0FBYyxHQUFBQyxPQUFBLENBQUFELGNBQUEsR0FBRyxTQUFqQkEsY0FBY0EsQ0FDekJFLE1BQWUsRUFDZkMsU0FBMkMsRUFDekM7RUFDRixJQUFNQyx3QkFBd0IsR0FBRyxJQUFBQyxhQUFNLEVBQXFCLElBQUksQ0FBQztFQUVqRSxJQUFBQyxnQkFBUyxFQUFDLFlBQUs7SUFDYixJQUFJLENBQUNKLE1BQU0sSUFBSSxPQUFPSyxRQUFRLEtBQUssV0FBVyxFQUFFLE9BQU9DLFNBQVM7SUFFaEVKLHdCQUF3QixDQUFDSyxPQUFPLEdBQzlCRixRQUFRLENBQUNHLGFBQWEsWUFBWUMsV0FBVyxHQUFHSixRQUFRLENBQUNHLGFBQWEsR0FBRyxJQUFJO0lBRS9FLElBQU1FLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxxQkFBcUIsQ0FBQyxZQUFLO01DTnhDLElBQUlDLEVBQUU7TURPWixDQUFBQSxFQUFBLEdBQUFaLFNBQVMsQ0FBQ00sT0FBTyxNQUFBLElBQUEsSUFBQU0sRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVDLEtBQUssQ0FBQSxDQUFFO0lBQzVCLENBQUMsQ0FBQztJQUVGLE9BQU8sWUFBSztNQUNWSCxNQUFNLENBQUNJLG9CQUFvQixDQUFDTCxLQUFLLENBQUM7SUFDcEMsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDVixNQUFNLEVBQUVDLFNBQVMsQ0FBQyxDQUFDO0VBRXZCLElBQUFHLGdCQUFTLEVBQUMsWUFBSztJQ1BULElBQUlTLEVBQUUsRUFBRUcsRUFBRTtJRFFkLElBQUloQixNQUFNLEVBQUU7SUFFWixDQUFBZ0IsRUFBQSxHQUFBLENBQUFILEVBQUEsR0FBQVgsd0JBQXdCLENBQUNLLE9BQU8sTUFBQSxJQUFBLElBQUFNLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFQyxLQUFLLE1BQUEsSUFBQSxJQUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQUMsSUFBQSxDQUFBSixFQUFBLENBQUk7SUFDM0NYLHdCQUF3QixDQUFDSyxPQUFPLEdBQUcsSUFBSTtFQUN6QyxDQUFDLEVBQUUsQ0FBQ1AsTUFBTSxDQUFDLENBQUM7QUFDZCxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURpYWxvZ0ZvY3VzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBjb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,4 @@
1
+ export declare const useDrawerTransition: (open: boolean, closeDelay: number) => {
2
+ mounted: boolean;
3
+ open: boolean;
4
+ };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useDrawerTransition = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
10
+ var _constants = require("../constants");
11
+ var clearTimer = function clearTimer(timerRef) {
12
+ if (timerRef.current === null) return;
13
+ window.clearTimeout(timerRef.current);
14
+ timerRef.current = null;
15
+ };
16
+ var clearFrame = function clearFrame(frameRef) {
17
+ if (frameRef.current === null) return;
18
+ window.cancelAnimationFrame(frameRef.current);
19
+ frameRef.current = null;
20
+ };
21
+ var useDrawerTransition = exports.useDrawerTransition = function useDrawerTransition(open, closeDelay) {
22
+ var _useState = (0, _react.useState)(open ? _constants.DRAWER_PHASES.open : _constants.DRAWER_PHASES.closed),
23
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
24
+ phase = _useState2[0],
25
+ setPhase = _useState2[1];
26
+ var closeTimerRef = (0, _react.useRef)(null);
27
+ var openFrameRef = (0, _react.useRef)(null);
28
+ (0, _react.useEffect)(function () {
29
+ return function () {
30
+ clearTimer(closeTimerRef);
31
+ clearFrame(openFrameRef);
32
+ };
33
+ }, []);
34
+ (0, _react.useEffect)(function () {
35
+ if (open) {
36
+ clearTimer(closeTimerRef);
37
+ if (phase === _constants.DRAWER_PHASES.open || phase === _constants.DRAWER_PHASES.opening) return;
38
+ setPhase(_constants.DRAWER_PHASES.opening);
39
+ return;
40
+ }
41
+ if (phase === _constants.DRAWER_PHASES.closed || phase === _constants.DRAWER_PHASES.closing) return;
42
+ clearFrame(openFrameRef);
43
+ setPhase(_constants.DRAWER_PHASES.closing);
44
+ closeTimerRef.current = window.setTimeout(function () {
45
+ setPhase(_constants.DRAWER_PHASES.closed);
46
+ closeTimerRef.current = null;
47
+ }, closeDelay);
48
+ }, [closeDelay, open, phase]);
49
+ (0, _react.useEffect)(function () {
50
+ if (phase !== _constants.DRAWER_PHASES.opening) return undefined;
51
+ openFrameRef.current = window.requestAnimationFrame(function () {
52
+ setPhase(_constants.DRAWER_PHASES.open);
53
+ openFrameRef.current = null;
54
+ });
55
+ return function () {
56
+ clearFrame(openFrameRef);
57
+ };
58
+ }, [phase]);
59
+ return {
60
+ mounted: phase !== _constants.DRAWER_PHASES.closed,
61
+ open: phase === _constants.DRAWER_PHASES.open
62
+ };
63
+ };
64
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEcmF3ZXJUcmFuc2l0aW9uLnRzIiwiY29tcG9uZW50cy9EcmF3ZXIvaG9va3MvdXNlRHJhd2VyVHJhbnNpdGlvbi5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsImNsZWFyVGltZXIiLCJ0aW1lclJlZiIsImN1cnJlbnQiLCJ3aW5kb3ciLCJjbGVhclRpbWVvdXQiLCJjbGVhckZyYW1lIiwiZnJhbWVSZWYiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInVzZURyYXdlclRyYW5zaXRpb24iLCJleHBvcnRzIiwib3BlbiIsImNsb3NlRGVsYXkiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIkRSQVdFUl9QSEFTRVMiLCJjbG9zZWQiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwicGhhc2UiLCJzZXRQaGFzZSIsImNsb3NlVGltZXJSZWYiLCJ1c2VSZWYiLCJvcGVuRnJhbWVSZWYiLCJ1c2VFZmZlY3QiLCJvcGVuaW5nIiwiY2xvc2luZyIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJtb3VudGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUlBLElBQU1FLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxRQUFrQyxFQUFJO0VBQ3hELElBQUlBLFFBQVEsQ0FBQ0MsT0FBTyxLQUFLLElBQUksRUFBRTtFQUUvQkMsTUFBTSxDQUFDQyxZQUFZLENBQUNILFFBQVEsQ0FBQ0MsT0FBTyxDQUFDO0VBQ3JDRCxRQUFRLENBQUNDLE9BQU8sR0FBRyxJQUFJO0FBQ3pCLENBQUM7QUFFRCxJQUFNRyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSUMsUUFBa0MsRUFBSTtFQUN4RCxJQUFJQSxRQUFRLENBQUNKLE9BQU8sS0FBSyxJQUFJLEVBQUU7RUFFL0JDLE1BQU0sQ0FBQ0ksb0JBQW9CLENBQUNELFFBQVEsQ0FBQ0osT0FBTyxDQUFDO0VBQzdDSSxRQUFRLENBQUNKLE9BQU8sR0FBRyxJQUFJO0FBQ3pCLENBQUM7QUFFTSxJQUFNTSxtQkFBbUIsR0FBQUMsT0FBQSxDQUFBRCxtQkFBQSxHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlFLElBQWEsRUFBRUMsVUFBa0IsRUFBSTtFQUN2RSxJQUFBQyxTQUFBLEdBQTBCLElBQUFDLGVBQVEsRUFDaENILElBQUksR0FBR0ksd0JBQWEsQ0FBQ0osSUFBSSxHQUFHSSx3QkFBYSxDQUFDQyxNQUFNLENBQ2pEO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBTCxTQUFBO0lBRk1NLEtBQUssR0FBQUYsVUFBQTtJQUFFRyxRQUFRLEdBQUFILFVBQUE7RUFHdEIsSUFBTUksYUFBYSxHQUFHLElBQUFDLGFBQU0sRUFBZ0IsSUFBSSxDQUFDO0VBQ2pELElBQU1DLFlBQVksR0FBRyxJQUFBRCxhQUFNLEVBQWdCLElBQUksQ0FBQztFQUVoRCxJQUFBRSxnQkFBUyxFQUFDLFlBQUs7SUFDYixPQUFPLFlBQUs7TUFDVnZCLFVBQVUsQ0FBQ29CLGFBQWEsQ0FBQztNQUN6QmYsVUFBVSxDQUFDaUIsWUFBWSxDQUFDO0lBQzFCLENBQUM7RUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBQUMsZ0JBQVMsRUFBQyxZQUFLO0lBQ2IsSUFBSWIsSUFBSSxFQUFFO01BQ1JWLFVBQVUsQ0FBQ29CLGFBQWEsQ0FBQztNQUV6QixJQUFJRixLQUFLLEtBQUtKLHdCQUFhLENBQUNKLElBQUksSUFBSVEsS0FBSyxLQUFLSix3QkFBYSxDQUFDVSxPQUFPLEVBQUU7TUFFckVMLFFBQVEsQ0FBQ0wsd0JBQWEsQ0FBQ1UsT0FBTyxDQUFDO01BQy9CO0lBQ0Y7SUFFQSxJQUFJTixLQUFLLEtBQUtKLHdCQUFhLENBQUNDLE1BQU0sSUFBSUcsS0FBSyxLQUFLSix3QkFBYSxDQUFDVyxPQUFPLEVBQUU7SUFFdkVwQixVQUFVLENBQUNpQixZQUFZLENBQUM7SUFDeEJILFFBQVEsQ0FBQ0wsd0JBQWEsQ0FBQ1csT0FBTyxDQUFDO0lBQy9CTCxhQUFhLENBQUNsQixPQUFPLEdBQUdDLE1BQU0sQ0FBQ3VCLFVBQVUsQ0FBQyxZQUFLO01BQzdDUCxRQUFRLENBQUNMLHdCQUFhLENBQUNDLE1BQU0sQ0FBQztNQUM5QkssYUFBYSxDQUFDbEIsT0FBTyxHQUFHLElBQUk7SUFDOUIsQ0FBQyxFQUFFUyxVQUFVLENBQUM7RUFDaEIsQ0FBQyxFQUFFLENBQUNBLFVBQVUsRUFBRUQsSUFBSSxFQUFFUSxLQUFLLENBQUMsQ0FBQztFQUU3QixJQUFBSyxnQkFBUyxFQUFDLFlBQUs7SUFDYixJQUFJTCxLQUFLLEtBQUtKLHdCQUFhLENBQUNVLE9BQU8sRUFBRSxPQUFPRyxTQUFTO0lBRXJETCxZQUFZLENBQUNwQixPQUFPLEdBQUdDLE1BQU0sQ0FBQ3lCLHFCQUFxQixDQUFDLFlBQUs7TUFDdkRULFFBQVEsQ0FBQ0wsd0JBQWEsQ0FBQ0osSUFBSSxDQUFDO01BQzVCWSxZQUFZLENBQUNwQixPQUFPLEdBQUcsSUFBSTtJQUM3QixDQUFDLENBQUM7SUFFRixPQUFPLFlBQUs7TUFDVkcsVUFBVSxDQUFDaUIsWUFBWSxDQUFDO0lBQzFCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0osS0FBSyxDQUFDLENBQUM7RUFFWCxPQUFPO0lBQ0xXLE9BQU8sRUFBRVgsS0FBSyxLQUFLSix3QkFBYSxDQUFDQyxNQUFNO0lBQ3ZDTCxJQUFJLEVBQUVRLEtBQUssS0FBS0osd0JBQWEsQ0FBQ0o7RUNkOUIsQ0RlRDtBQUNILENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9EcmF3ZXIvaG9va3MvdXNlRHJhd2VyVHJhbnNpdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRFJBV0VSX1BIQVNFUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5jb25zdCBjbGVhclRpbWVyID0gKHRpbWVyUmVmKSA9PiB7XG4gICAgaWYgKHRpbWVyUmVmLmN1cnJlbnQgPT09IG51bGwpXG4gICAgICAgIHJldHVybjtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVyUmVmLmN1cnJlbnQpO1xuICAgIHRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xufTtcbmNvbnN0IGNsZWFyRnJhbWUgPSAoZnJhbWVSZWYpID0+IHtcbiAgICBpZiAoZnJhbWVSZWYuY3VycmVudCA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuO1xuICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZVJlZi5jdXJyZW50KTtcbiAgICBmcmFtZVJlZi5jdXJyZW50ID0gbnVsbDtcbn07XG5leHBvcnQgY29uc3QgdXNlRHJhd2VyVHJhbnNpdGlvbiA9IChvcGVuLCBjbG9zZURlbGF5KSA9PiB7XG4gICAgY29uc3QgW3BoYXNlLCBzZXRQaGFzZV0gPSB1c2VTdGF0ZShvcGVuID8gRFJBV0VSX1BIQVNFUy5vcGVuIDogRFJBV0VSX1BIQVNFUy5jbG9zZWQpO1xuICAgIGNvbnN0IGNsb3NlVGltZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3BlbkZyYW1lUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVyKGNsb3NlVGltZXJSZWYpO1xuICAgICAgICAgICAgY2xlYXJGcmFtZShvcGVuRnJhbWVSZWYpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgY2xlYXJUaW1lcihjbG9zZVRpbWVyUmVmKTtcbiAgICAgICAgICAgIGlmIChwaGFzZSA9PT0gRFJBV0VSX1BIQVNFUy5vcGVuIHx8IHBoYXNlID09PSBEUkFXRVJfUEhBU0VTLm9wZW5pbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5vcGVuaW5nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGhhc2UgPT09IERSQVdFUl9QSEFTRVMuY2xvc2VkIHx8IHBoYXNlID09PSBEUkFXRVJfUEhBU0VTLmNsb3NpbmcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNsZWFyRnJhbWUob3BlbkZyYW1lUmVmKTtcbiAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5jbG9zaW5nKTtcbiAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5jbG9zZWQpO1xuICAgICAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSwgY2xvc2VEZWxheSk7XG4gICAgfSwgW2Nsb3NlRGVsYXksIG9wZW4sIHBoYXNlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHBoYXNlICE9PSBEUkFXRVJfUEhBU0VTLm9wZW5pbmcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBvcGVuRnJhbWVSZWYuY3VycmVudCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0UGhhc2UoRFJBV0VSX1BIQVNFUy5vcGVuKTtcbiAgICAgICAgICAgIG9wZW5GcmFtZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjbGVhckZyYW1lKG9wZW5GcmFtZVJlZik7XG4gICAgICAgIH07XG4gICAgfSwgW3BoYXNlXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW91bnRlZDogcGhhc2UgIT09IERSQVdFUl9QSEFTRVMuY2xvc2VkLFxuICAgICAgICBvcGVuOiBwaGFzZSA9PT0gRFJBV0VSX1BIQVNFUy5vcGVuLFxuICAgIH07XG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1 @@
1
+ export declare const useEscapeClose: (enabled: boolean, onClose: (() => void) | undefined) => void;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useEscapeClose = void 0;
7
+ var _react = require("react");
8
+ var useEscapeClose = exports.useEscapeClose = function useEscapeClose(enabled, onClose) {
9
+ (0, _react.useEffect)(function () {
10
+ if (!enabled || typeof document === 'undefined') return undefined;
11
+ var handleKeyDown = function handleKeyDown(event) {
12
+ if (event.key !== 'Escape') return;
13
+ event.preventDefault();
14
+ onClose === null || onClose === void 0 ? void 0 : onClose();
15
+ };
16
+ document.addEventListener('keydown', handleKeyDown);
17
+ return function () {
18
+ document.removeEventListener('keydown', handleKeyDown);
19
+ };
20
+ }, [enabled, onClose]);
21
+ };
22
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VFc2NhcGVDbG9zZS50cyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlRXNjYXBlQ2xvc2UiLCJleHBvcnRzIiwiZW5hYmxlZCIsIm9uQ2xvc2UiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsInVuZGVmaW5lZCIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVPLElBQU1DLGNBQWMsR0FBQUMsT0FBQSxDQUFBRCxjQUFBLEdBQUcsU0FBakJBLGNBQWNBLENBQUlFLE9BQWdCLEVBQUVDLE9BQWlDLEVBQUk7RUFDcEYsSUFBQUMsZ0JBQVMsRUFBQyxZQUFLO0lBQ2IsSUFBSSxDQUFDRixPQUFPLElBQUksT0FBT0csUUFBUSxLQUFLLFdBQVcsRUFBRSxPQUFPQyxTQUFTO0lBRWpFLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsS0FBb0IsRUFBSTtNQUM3QyxJQUFJQSxLQUFLLENBQUNDLEdBQUcsS0FBSyxRQUFRLEVBQUU7TUFFNUJELEtBQUssQ0FBQ0UsY0FBYyxDQUFBLENBQUU7TUFDdEJQLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxDQUFBLENBQUk7SUFDYixDQUFDO0lBRURFLFFBQVEsQ0FBQ00sZ0JBQWdCLENBQUMsU0FBUyxFQUFFSixhQUFhLENBQUM7SUFFbkQsT0FBTyxZQUFLO01BQ1ZGLFFBQVEsQ0FBQ08sbUJBQW1CLENBQUMsU0FBUyxFQUFFTCxhQUFhLENBQUM7SUFDeEQsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDTCxPQUFPLEVBQUVDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hCLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9EcmF3ZXIvaG9va3MvdXNlRXNjYXBlQ2xvc2UuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=