UNPKG

273 kBJavaScriptView Raw
1import 'core-js/modules/es.function.name';
2import _extends from '@babel/runtime-corejs2/helpers/extends';
3import _objectWithoutProperties from '@babel/runtime-corejs2/helpers/objectWithoutProperties';
4import _taggedTemplateLiteral from '@babel/runtime-corejs2/helpers/taggedTemplateLiteral';
5import React, { useContext, useState, useRef, Children, useEffect, useReducer } from 'react';
6import PropTypes from 'prop-types';
7import styled, { ThemeContext, css, createGlobalStyle, withTheme, keyframes } from 'styled-components';
8import _noop from 'lodash/noop';
9import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
10import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
11import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
12import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
13import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
14import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
15import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
16import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
17import _slicedToArray from '@babel/runtime-corejs2/helpers/slicedToArray';
18import _defineProperty from '@babel/runtime-corejs2/helpers/defineProperty';
19import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
20import _spliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/splice';
21import _indexOfInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/index-of';
22import _toConsumableArray from '@babel/runtime-corejs2/helpers/toConsumableArray';
23import AnimateHeight from 'react-animate-height';
24import ReactDOM from 'react-dom';
25import { Manager, Reference, Popper } from 'react-popper';
26import Transition from 'react-transition-group/Transition';
27import _setTimeout from '@babel/runtime-corejs3/core-js-stable/set-timeout';
28import _setInterval from '@babel/runtime-corejs3/core-js-stable/set-interval';
29import { useRootClose, Modal as Modal$1 } from 'react-overlays';
30import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
31import _Object$assign from '@babel/runtime-corejs3/core-js-stable/object/assign';
32import Modal$1$1 from 'react-modal';
33import _everyInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/every';
34import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array';
35import _findIndex from 'lodash/findIndex';
36import MaskedInput from 'react-text-mask';
37import createautoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe';
38import createNumberMask from 'text-mask-addons/dist/createNumberMask';
39import _fillInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/fill';
40import _parseInt from '@babel/runtime-corejs3/core-js-stable/parse-int';
41import _omit from 'lodash/omit';
42import _pick from 'lodash/pick';
43import { parse, isValid, format, isAfter, isBefore } from 'date-fns';
44import ReactDatePicker from 'react-datepicker';
45import 'core-js/modules/es.object.to-string';
46import 'core-js/modules/es.regexp.to-string';
47import _sliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/slice';
48import _parseInt$1 from 'lodash/parseInt';
49import _isFinite from 'lodash/isFinite';
50import _findIndexInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/find-index';
51import formatMessage from 'format-message';
52import { formatChildren } from 'format-message/react';
53import 'core-js/modules/es.symbol';
54import 'core-js/modules/es.symbol.description';
55import _trimInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/trim';
56import _classCallCheck from '@babel/runtime-corejs2/helpers/classCallCheck';
57import _createClass from '@babel/runtime-corejs2/helpers/createClass';
58import _possibleConstructorReturn from '@babel/runtime-corejs2/helpers/possibleConstructorReturn';
59import _getPrototypeOf from '@babel/runtime-corejs2/helpers/getPrototypeOf';
60import _assertThisInitialized from '@babel/runtime-corejs2/helpers/assertThisInitialized';
61import _inherits from '@babel/runtime-corejs2/helpers/inherits';
62
63var regular = {
64 'im-icon-accessibility': '600',
65 'im-icon-add': '601',
66 'im-icon-add-circle': '602',
67 'im-icon-agent': '603',
68 'im-icon-align-center': '604',
69 'im-icon-align-justify': '605',
70 'im-icon-align-left': '606',
71 'im-icon-align-right': '607',
72 'im-icon-archive': '608',
73 'im-icon-arrow-down': '609',
74 'im-icon-arrow-left': '60a',
75 'im-icon-arrow-right': '60b',
76 'im-icon-arrow-up': '60c',
77 'im-icon-asterisk': '60d',
78 'im-icon-attachment': '60e',
79 'im-icon-bell': '60f',
80 'im-icon-bicycle': '610',
81 'im-icon-bold': '611',
82 'im-icon-book': '612',
83 'im-icon-bookmark': '613',
84 'im-icon-boy': '614',
85 'im-icon-briefcase': '615',
86 'im-icon-bullhorn': '616',
87 'im-icon-calendar': '617',
88 'im-icon-camera': '618',
89 'im-icon-certificate': '619',
90 'im-icon-check-document': '61a',
91 'im-icon-checkbox': '61b',
92 'im-icon-checkbox-checked': '61c',
93 'im-icon-chevron-down': '61d',
94 'im-icon-chevron-left': '61e',
95 'im-icon-chevron-right': '61f',
96 'im-icon-chevron-up': '620',
97 'im-icon-circle-arrow-down': '621',
98 'im-icon-circle-arrow-left': '622',
99 'im-icon-circle-arrow-right': '623',
100 'im-icon-circle-arrow-up': '624',
101 'im-icon-cog': '625',
102 'im-icon-comment': '626',
103 'im-icon-copy': '627',
104 'im-icon-cut': '628',
105 'im-icon-dashboard': '629',
106 'im-icon-discussion': '62a',
107 'im-icon-dollar-sign': '62b',
108 'im-icon-double-chevron-down': '62c',
109 'im-icon-double-chevron-left': '62d',
110 'im-icon-double-chevron-right': '62e',
111 'im-icon-double-chevron-up': '62f',
112 'im-icon-download': '630',
113 'im-icon-download-alt': '631',
114 'im-icon-edit': '632',
115 'im-icon-edit-document': '633',
116 'im-icon-element-block': '634',
117 'im-icon-element-page': '635',
118 'im-icon-element-section': '636',
119 'im-icon-envelope': '637',
120 'im-icon-exclamation': '638',
121 'im-icon-exclamation-circle': '639',
122 'im-icon-exclamation-sign': '63a',
123 'im-icon-export': '63b',
124 'im-icon-external-link': '63c',
125 'im-icon-eye-closed': '63d',
126 'im-icon-eye-open': '63e',
127 'im-icon-federal': '63f',
128 'im-icon-file': '640',
129 'im-icon-file-open': '641',
130 'im-icon-fill': '642',
131 'im-icon-film': '643',
132 'im-icon-fire': '644',
133 'im-icon-flag-empty': '645',
134 'im-icon-flag-filled': '646',
135 'im-icon-flash': '647',
136 'im-icon-folder-close': '648',
137 'im-icon-folder-open': '649',
138 'im-icon-folder-up-level': '64a',
139 'im-icon-font': '64b',
140 'im-icon-form-agreement': '64c',
141 'im-icon-form-checkbox': '64d',
142 'im-icon-form-dropdown': '64e',
143 'im-icon-form-number': '64f',
144 'im-icon-form-radio': '650',
145 'im-icon-form-text': '651',
146 'im-icon-form-text-box': '652',
147 'im-icon-fullscreen': '653',
148 'im-icon-funnel': '654',
149 'im-icon-girl': '655',
150 'im-icon-globe': '656',
151 'im-icon-hand-down': '657',
152 'im-icon-hand-left': '658',
153 'im-icon-hand-right': '659',
154 'im-icon-hand-up': '65a',
155 'im-icon-health': '65b',
156 'im-icon-heart-empty': '65c',
157 'im-icon-heart-filled': '65d',
158 'im-icon-history': '65e',
159 'im-icon-home': '65f',
160 'im-icon-hourglass': '660',
161 'im-icon-household': '661',
162 'im-icon-inbox': '662',
163 'im-icon-indent-left': '663',
164 'im-icon-indent-right': '664',
165 'im-icon-info': '665',
166 'im-icon-info-circle': '666',
167 'im-icon-italic': '667',
168 'im-icon-leaf': '668',
169 'im-icon-list': '669',
170 'im-icon-list-numbered': '66a',
171 'im-icon-list-thumbnails': '66b',
172 'im-icon-list-unordered': '66c',
173 'im-icon-lock': '66d',
174 'im-icon-lock-open': '66e',
175 'im-icon-log-in': '66f',
176 'im-icon-log-out': '670',
177 'im-icon-man': '671',
178 'im-icon-map-marker': '672',
179 'im-icon-medical': '673',
180 'im-icon-menu-btn': '674',
181 'im-icon-minus': '675',
182 'im-icon-minus-circle': '676',
183 'im-icon-move': '677',
184 'im-icon-new-window': '678',
185 'im-icon-no-symbol': '679',
186 'im-icon-non-smoker': '67a',
187 'im-icon-ok': '67b',
188 'im-icon-ok-circle': '67c',
189 'im-icon-options-horizontal': '67d',
190 'im-icon-options-vertical': '67e',
191 'im-icon-paragraph': '67f',
192 'im-icon-paste': '680',
193 'im-icon-phone': '681',
194 'im-icon-picture': '682',
195 'im-icon-piggy-bank': '683',
196 'im-icon-play-circle': '684',
197 'im-icon-power': '685',
198 'im-icon-print': '686',
199 'im-icon-push-pin': '687',
200 'im-icon-question': '688',
201 'im-icon-question-circle': '689',
202 'im-icon-random': '68a',
203 'im-icon-read-message': '68b',
204 'im-icon-redo': '68c',
205 'im-icon-refresh': '68d',
206 'im-icon-remove': '68e',
207 'im-icon-remove-circle': '68f',
208 'im-icon-repeat': '690',
209 'im-icon-resize-full': '691',
210 'im-icon-resize-horizontal': '692',
211 'im-icon-resize-small': '693',
212 'im-icon-resize-vertical': '694',
213 'im-icon-retweet': '695',
214 'im-icon-road': '696',
215 'im-icon-rx': '697',
216 'im-icon-save': '698',
217 'im-icon-screenshot': '699',
218 'im-icon-search': '69a',
219 'im-icon-share': '69b',
220 'im-icon-shopping-cart': '69c',
221 'im-icon-smoker': '69d',
222 'im-icon-sort': '69e',
223 'im-icon-sort-alpha': '69f',
224 'im-icon-sort-alpha-reverse': '6a0',
225 'im-icon-sort-ascending': '6a1',
226 'im-icon-sort-descending': '6a2',
227 'im-icon-sort-num': '6a3',
228 'im-icon-sort-num-reverse': '6a4',
229 'im-icon-speak-to-expert': '6a5',
230 'im-icon-star-empty': '6a6',
231 'im-icon-star-filled': '6a7',
232 'im-icon-stats': '6a8',
233 'im-icon-switch': '6a9',
234 'im-icon-tag': '6aa',
235 'im-icon-tags': '6ab',
236 'im-icon-tasks': '6ac',
237 'im-icon-text-color': '6ad',
238 'im-icon-text-height': '6ae',
239 'im-icon-text-size': '6af',
240 'im-icon-text-width': '6b0',
241 'im-icon-thumbnails': '6b1',
242 'im-icon-thumbnails-large': '6b2',
243 'im-icon-thumbs-down': '6b3',
244 'im-icon-thumbs-up': '6b4',
245 'im-icon-time': '6b5',
246 'im-icon-transfer': '6b6',
247 'im-icon-trash': '6b7',
248 'im-icon-umbrella': '6b8',
249 'im-icon-undo': '6b9',
250 'im-icon-upload': '6ba',
251 'im-icon-user': '6bb',
252 'im-icon-user-shield': '6bc',
253 'im-icon-users': '6bd',
254 'im-icon-video': '6be',
255 'im-icon-voice-check': '6bf',
256 'im-icon-wallet': '6c0',
257 'im-icon-woman': '6c1',
258 'im-icon-wrench': '6c2',
259 'im-icon-zoom-in': '6c3',
260 'im-icon-zoom-out': '6c4',
261 'im-icon-keyhole-shield': '6c5',
262 'im-icon-security-checked': '6c6'
263};
264
265function _templateObject() {
266 var data = _taggedTemplateLiteral(["\n display: inline-block;\n font-family: indv-mkt-icons !important;\n font-size: ", ";\n font-style: normal;\n font-weight: inherit;\n font-variant: normal;\n line-height: 1;\n speak: none;\n text-decoration: none;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n vertical-align: text-bottom;\n\n &:before {\n content: \"\\e", "\";\n }\n"], ["\n display: inline-block;\n font-family: indv-mkt-icons !important;\n font-size: ", ";\n font-style: normal;\n font-weight: inherit;\n font-variant: normal;\n line-height: 1;\n speak: none;\n text-decoration: none;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n vertical-align: text-bottom;\n\n &:before {\n content: \"\\\\e", "\";\n }\n"]);
267
268 _templateObject = function _templateObject() {
269 return data;
270 };
271
272 return data;
273}
274var StyledIcon = styled.i(_templateObject(), function (props) {
275 return props.fontSize;
276}, function (props) {
277 return props.content;
278});
279
280function Icon(_ref) {
281 var name = _ref.name,
282 size = _ref.size,
283 other = _objectWithoutProperties(_ref, ["name", "size"]);
284
285 var iconName = "im-icon-".concat(name);
286 var styledIconProps = {
287 content: regular[iconName],
288 fontSize: size !== undefined ? "".concat(size, "px") : 'inherit'
289 };
290 return React.createElement(StyledIcon, _extends({
291 "aria-hidden": true
292 }, styledIconProps, other));
293}
294
295Icon.propTypes = process.env.NODE_ENV !== "production" ? {
296 /** Name of the icon to display */
297 name: PropTypes.string.isRequired,
298
299 /** Specify icon size in pixels */
300 size: PropTypes.number
301} : {};
302Icon.defaultProps = {
303 size: undefined
304};
305
306var useTheme = function useTheme() {
307 return useContext(ThemeContext);
308};
309
310function _templateObject$1() {
311 var data = _taggedTemplateLiteral(["\n position: absolute !important;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n "]);
312
313 _templateObject$1 = function _templateObject() {
314 return data;
315 };
316
317 return data;
318}
319// https://webaim.org/techniques/css/invisiblecontent/#absolutepositioning
320
321function screenReaderOnly(Component) {
322 var ScreenReaderOnly = styled(Component)(_templateObject$1());
323 return ScreenReaderOnly;
324}
325
326function _templateObject$2() {
327 var data = _taggedTemplateLiteral(["\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: flex;\n font-weight: bold;\n opacity: 0.2;\n padding: 0;\n\n &:hover,\n &:focus {\n opacity: 0.5;\n }\n"]);
328
329 _templateObject$2 = function _templateObject() {
330 return data;
331 };
332
333 return data;
334}
335var DismissButtonBase = styled.button(_templateObject$2());
336var ScreenReaderText = screenReaderOnly('span');
337var DismissButton = React.forwardRef(function DismissButton(props, ref) {
338 return React.createElement(DismissButtonBase, _extends({
339 "aria-label": "Close",
340 type: "button"
341 }, props, {
342 ref: ref
343 }), React.createElement(Icon, {
344 name: "remove"
345 }), React.createElement(ScreenReaderText, null, "Close"));
346});
347
348function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
349
350function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
351
352function _templateObject4() {
353 var data = _taggedTemplateLiteral(["\n align-items: center;\n background-color: ", ";\n border-radius: 2px;\n color: ", ";\n display: flex;\n margin-bottom: 25px;\n padding: 15px;\n\n a {\n color: ", ";\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n button[aria-expanded] {\n color: ", ";\n }\n"]);
354
355 _templateObject4 = function _templateObject4() {
356 return data;
357 };
358
359 return data;
360}
361
362function _templateObject3() {
363 var data = _taggedTemplateLiteral(["\n align-self: center;\n flex-grow: 1;\n word-break: break-word;\n"]);
364
365 _templateObject3 = function _templateObject3() {
366 return data;
367 };
368
369 return data;
370}
371
372function _templateObject2() {
373 var data = _taggedTemplateLiteral(["\n align-self: start;\n color: ", ";\n font-weight: normal;\n opacity: 0.8;\n\n i {\n font-size: 27px;\n }\n"]);
374
375 _templateObject2 = function _templateObject2() {
376 return data;
377 };
378
379 return data;
380}
381
382function _templateObject$3() {
383 var data = _taggedTemplateLiteral(["\n align-self: start;\n color: ", ";\n display: none;\n\n @media (min-width: ", ") {\n display: inline;\n margin-right: 8px;\n }\n"]);
384
385 _templateObject$3 = function _templateObject() {
386 return data;
387 };
388
389 return data;
390}
391var NotificationIcon = styled(Icon)(_templateObject$3(), function (props) {
392 return props.iconColor;
393}, function (props) {
394 return props.theme.screenSize.tablet;
395});
396var Dismiss = styled(DismissButton)(_templateObject2(), function (props) {
397 return props.color.textColor;
398});
399var ContentWrapper = styled.div(_templateObject3());
400
401function NotificationContent(props) {
402 var includeIcon = props.includeIcon,
403 isDismissable = props.isDismissable,
404 onDismiss = props.onDismiss,
405 children = props.children,
406 iconName = props.iconName,
407 iconColor = props.iconColor,
408 color = props.color,
409 dismissNotification = props.dismissNotification;
410
411 function dismiss() {
412 onDismiss();
413 dismissNotification();
414 }
415
416 return React.createElement(React.Fragment, null, includeIcon && React.createElement(NotificationIcon, {
417 name: iconName,
418 iconColor: iconColor,
419 size: 28
420 }), React.createElement(ContentWrapper, null, children), isDismissable && React.createElement(Dismiss, {
421 onClick: dismiss,
422 color: color
423 }));
424}
425
426var Notification = styled.div(_templateObject4(), function (props) {
427 return props.variant.bgColor;
428}, function (props) {
429 return props.variant.textColor;
430}, function (props) {
431 return props.variant.textColor;
432}, function (props) {
433 return props.variant.textColor;
434});
435function useNotification() {
436 var styleType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'base';
437 return function BaseNotification(_ref) {
438 var role = _ref.role,
439 type = _ref.type,
440 children = _ref.children,
441 rest = _objectWithoutProperties(_ref, ["role", "type", "children"]);
442
443 var theme = useTheme();
444 var color = theme.notificationStyles[type][styleType];
445 var iconName = theme.validationIconName[type];
446 var iconColor = styleType === 'light' ? theme.colors[type] : theme.colors.white;
447
448 var notificationContentProps = _objectSpread({
449 color: color,
450 iconName: iconName,
451 iconColor: iconColor
452 }, rest);
453
454 var _useState = useState(false),
455 _useState2 = _slicedToArray(_useState, 2),
456 isDismissed = _useState2[0],
457 setIsDismissed = _useState2[1];
458
459 function dismissNotification() {
460 setIsDismissed(true);
461 }
462
463 return !isDismissed && React.createElement(Notification, {
464 role: role,
465 variant: color
466 }, React.createElement(NotificationContent, _extends({
467 dismissNotification: dismissNotification
468 }, notificationContentProps), children));
469 };
470}
471
472var DefaultNotification = useNotification();
473
474function Notification$1(props) {
475 return React.createElement(DefaultNotification, props);
476}
477
478Notification$1.propTypes = process.env.NODE_ENV !== "production" ? {
479 /* The type of notification to render */
480 type: PropTypes.oneOf(['success', 'info', 'warning', 'danger', 'advisor']).isRequired,
481
482 /* Display an icon in the notification on a screen >= 768px */
483 includeIcon: PropTypes.bool,
484
485 /* Display a dismiss button that will close the notification */
486 isDismissable: PropTypes.bool,
487 role: PropTypes.oneOf(['dialog', 'alert']),
488
489 /* Function to execute when the dialog is closed */
490 onDismiss: PropTypes.func,
491 children: PropTypes.node
492} : {};
493Notification$1.defaultProps = {
494 includeIcon: false,
495 isDismissable: false,
496 children: null,
497 role: 'dialog',
498 onDismiss: _noop
499};
500
501var Notification$2 = useNotification('light');
502
503function LightNotification(props) {
504 return React.createElement(Notification$2, props);
505}
506
507LightNotification.propTypes = process.env.NODE_ENV !== "production" ? {
508 /* The type of notification to render */
509 type: PropTypes.oneOf(['success', 'info', 'warning', 'danger', 'advisor']).isRequired,
510
511 /* Display an icon in the notification on a screen >= 768px */
512 includeIcon: PropTypes.bool,
513
514 /* Display a dismiss button that will close the notification */
515 isDismissable: PropTypes.bool,
516 role: PropTypes.oneOf(['dialog', 'alert']),
517
518 /* Function to execute when the dialog is closed */
519 onDismiss: PropTypes.func,
520 children: PropTypes.node
521} : {};
522LightNotification.defaultProps = {
523 includeIcon: false,
524 isDismissable: false,
525 children: null,
526 role: 'dialog',
527 onDismiss: _noop
528};
529
530var Notification$3 = useNotification('messageOnly');
531
532function MessageNotification(props) {
533 return React.createElement(Notification$3, props);
534}
535
536MessageNotification.propTypes = process.env.NODE_ENV !== "production" ? {
537 /* The type of notification to render */
538 type: PropTypes.oneOf(['success', 'info', 'warning', 'danger', 'advisor']).isRequired,
539
540 /* Display an icon in the notification on a screen >= 768px */
541 includeIcon: PropTypes.bool,
542
543 /* Display a dismiss button that will close the notification */
544 isDismissable: PropTypes.bool,
545 role: PropTypes.oneOf(['dialog', 'alert']),
546
547 /* Function to execute when the dialog is closed */
548 onDismiss: PropTypes.func,
549 children: PropTypes.node
550} : {};
551MessageNotification.defaultProps = {
552 includeIcon: false,
553 isDismissable: false,
554 children: null,
555 role: 'dialog',
556 onDismiss: _noop
557};
558
559var propTypes = process.env.NODE_ENV !== "production" ? {
560 emphasizedText: PropTypes.string,
561 text: PropTypes.string.isRequired
562} : {};
563var defaultProps = {
564 emphasizedText: undefined
565};
566function InlineMessage(_ref) {
567 var emphasizedText = _ref.emphasizedText,
568 text = _ref.text;
569 return React.createElement("span", null, emphasizedText !== undefined ? React.createElement("strong", null, emphasizedText) : null, ' ', text);
570}
571InlineMessage.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
572InlineMessage.defaultProps = defaultProps;
573function Message(_ref2) {
574 var emphasizedText = _ref2.emphasizedText,
575 text = _ref2.text;
576 return React.createElement("span", null, emphasizedText !== undefined ? React.createElement(React.Fragment, null, React.createElement("strong", null, emphasizedText), React.createElement("br", null)) : null, text);
577}
578Message.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
579Message.defaultProps = defaultProps;
580
581var DrawerContext = React.createContext({});
582
583function generateAlphaName() {
584 var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
585 var text = '';
586
587 for (var i = 0; i < 6; i++) {
588 text += possible.charAt(Math.floor(Math.random() * possible.length));
589 }
590
591 return text;
592}
593
594function useUniqueId(providedId) {
595 var idRef = useRef(providedId || generateAlphaName());
596 return idRef.current;
597}
598
599function _templateObject4$1() {
600 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n color: ", ";\n\n > div {\n border-bottom: 4px solid ", ";\n padding: ", ";\n }\n"]);
601
602 _templateObject4$1 = function _templateObject4() {
603 return data;
604 };
605
606 return data;
607}
608
609function _templateObject3$1() {
610 var data = _taggedTemplateLiteral(["\n margin-right: 0.4em;\n position: relative;\n top: -2px;\n"]);
611
612 _templateObject3$1 = function _templateObject3() {
613 return data;
614 };
615
616 return data;
617}
618
619function _templateObject2$1() {
620 var data = _taggedTemplateLiteral(["\n background: none;\n border: 0;\n color: ", ";\n cursor: pointer;\n display: flex;\n font-size: 18px;\n justify-content: space-between;\n padding: 10px 15px;\n width: 100%;\n\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n"]);
621
622 _templateObject2$1 = function _templateObject2() {
623 return data;
624 };
625
626 return data;
627}
628
629function _templateObject$4() {
630 var data = _taggedTemplateLiteral(["\n border-bottom: 1px solid ", ";\n"]);
631
632 _templateObject$4 = function _templateObject() {
633 return data;
634 };
635
636 return data;
637}
638var PanelWrapper = styled.div(_templateObject$4(), function (props) {
639 return props.theme.colors.gray3;
640});
641var PanelButton = styled.button(_templateObject2$1(), function (props) {
642 return props.theme.colors.primary;
643}, function (props) {
644 return props.theme.colors.gray2;
645}, function (props) {
646 return props.theme.brandColors.vbBlue;
647});
648var PanelIcon = styled(Icon)(_templateObject3$1());
649var PanelBody = styled(function (_ref) {
650 var noPadding = _ref.noPadding,
651 rest = _objectWithoutProperties(_ref, ["noPadding"]);
652
653 return React.createElement(AnimateHeight, rest);
654})(_templateObject4$1(), function (props) {
655 return props.theme.colors.white;
656}, function (props) {
657 return props.theme.colors.gray9;
658}, function (props) {
659 return props.theme.colors.gray3;
660}, function (props) {
661 return props.noPadding ? '0' : '10px 10px 10px 40px';
662});
663
664function DrawerPanel(props) {
665 var children = props.children,
666 isOpen = props.isOpen,
667 noPadding = props.noPadding,
668 onItemClick = props.onItemClick,
669 title = props.title,
670 titleAside = props.titleAside,
671 other = _objectWithoutProperties(props, ["children", "isOpen", "noPadding", "onItemClick", "title", "titleAside"]);
672
673 var _React$useContext = React.useContext(DrawerContext),
674 openedIconName = _React$useContext.openedIconName,
675 closedIconName = _React$useContext.closedIconName;
676
677 var headingAriaId = "".concat(useUniqueId(other.id), "-heading");
678 var regionAriaId = "".concat(useUniqueId(other.id), "-region");
679 return React.createElement(PanelWrapper, other, React.createElement("div", {
680 id: headingAriaId,
681 role: "heading"
682 }, React.createElement(PanelButton, {
683 "aria-expanded": isOpen,
684 "aria-controls": regionAriaId,
685 onClick: function onClick() {
686 return onItemClick();
687 }
688 }, React.createElement("span", null, React.createElement(PanelIcon, {
689 name: isOpen ? openedIconName : closedIconName
690 }), title), titleAside && React.createElement("aside", null, titleAside))), React.createElement(PanelBody, {
691 "aria-labelledby": headingAriaId,
692 duration: 300,
693 height: isOpen ? 'auto' : 0,
694 id: regionAriaId,
695 noPadding: noPadding,
696 role: "region"
697 }, children));
698}
699
700DrawerPanel.propTypes = process.env.NODE_ENV !== "production" ? {
701 children: PropTypes.any.isRequired,
702
703 /** Title text displayed next to the open/close icon */
704 title: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]).isRequired,
705
706 /** Aside text/content displayed on the right side of the panel title */
707 titleAside: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
708
709 /** @ignore */
710 isOpen: PropTypes.bool,
711
712 /** Removes the default padding from the panel body */
713 noPadding: PropTypes.bool,
714
715 /** @ignore */
716 onItemClick: PropTypes.func
717} : {};
718DrawerPanel.defaultProps = {
719 isOpen: false,
720 noPadding: false,
721 titleAside: undefined,
722 onItemClick: _noop
723};
724
725function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
726
727function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$1(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$1(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
728
729function _templateObject$5() {
730 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border-top: 1px solid ", ";\n box-shadow: 0 1px 1px ", ";\n margin-bottom: 25px;\n"]);
731
732 _templateObject$5 = function _templateObject() {
733 return data;
734 };
735
736 return data;
737}
738var StyledDrawer = styled.div(_templateObject$5(), function (props) {
739 return props.theme.colors.white;
740}, function (props) {
741 return props.theme.colors.gray3;
742}, function (props) {
743 return props.theme.colors.boxShadowLight;
744});
745
746function Drawer(props) {
747 var activeKeys = props.activeKeys,
748 children = props.children,
749 closedIconName = props.closedIconName,
750 isAccordion = props.isAccordion,
751 onActiveKeysChanged = props.onActiveKeysChanged,
752 openedIconName = props.openedIconName,
753 other = _objectWithoutProperties(props, ["activeKeys", "children", "closedIconName", "isAccordion", "onActiveKeysChanged", "openedIconName"]);
754
755 function _onItemClick(key) {
756 var nextActiveKeys = _toConsumableArray(activeKeys);
757
758 if (isAccordion) {
759 nextActiveKeys = nextActiveKeys[0] === key ? [] : [key];
760 } else {
761 var index = _indexOfInstanceProperty(nextActiveKeys).call(nextActiveKeys, key);
762
763 var isOpen = index > -1;
764
765 if (isOpen) {
766 _spliceInstanceProperty(nextActiveKeys).call(nextActiveKeys, index, 1);
767 } else {
768 nextActiveKeys.push(key);
769 }
770 }
771
772 onActiveKeysChanged(nextActiveKeys);
773 }
774
775 return React.createElement(DrawerContext.Provider, {
776 value: {
777 openedIconName: openedIconName,
778 closedIconName: closedIconName
779 }
780 }, React.createElement(StyledDrawer, other, _mapInstanceProperty(Children).call(Children, children, function (child, index) {
781 if (child) {
782 // If there is no key provided, use the panel order as default key
783 var key = child && child.key || String(index + 1);
784 var isOpen = false;
785
786 if (isAccordion) {
787 isOpen = activeKeys[0] === key;
788 } else {
789 isOpen = _indexOfInstanceProperty(activeKeys).call(activeKeys, key) > -1;
790 }
791
792 var childProps = _objectSpread$1({}, child.props, {
793 key: key,
794 isOpen: isOpen,
795 onItemClick: function onItemClick() {
796 return _onItemClick(key);
797 }
798 });
799
800 return React.cloneElement(child, childProps);
801 }
802
803 return null;
804 })));
805}
806
807Drawer.propTypes = process.env.NODE_ENV !== "production" ? {
808 /** Set which panels are open */
809 activeKeys: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
810
811 /** Usually only one or more Drawer.Panel elements */
812 children: PropTypes.node,
813
814 /** Override the default plus icon with another OE icon name */
815 closedIconName: PropTypes.string,
816
817 /** Only allows one DrawerPanel to be open at a time */
818 isAccordion: PropTypes.bool,
819
820 /** Function called when changing active keys */
821 onActiveKeysChanged: PropTypes.func.isRequired,
822
823 /** Override the default minus icon with another OE icon name */
824 openedIconName: PropTypes.string
825} : {};
826Drawer.defaultProps = {
827 activeKeys: [],
828 isAccordion: false,
829 closedIconName: 'add',
830 openedIconName: 'minus',
831 children: undefined
832};
833Drawer.Panel = DrawerPanel;
834
835var OrientationContext = React.createContext('stacked');
836
837function _templateObject2$2() {
838 var data = _taggedTemplateLiteral(["\n color: ", ";\n flex: 0 0 auto;\n font-size: 21.6px;\n line-height: ", ";\n margin: 0 0 10px 0;\n width: 100%;\n"]);
839
840 _templateObject2$2 = function _templateObject2() {
841 return data;
842 };
843
844 return data;
845}
846
847function _templateObject$6() {
848 var data = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n margin-bottom: 25px;\n width: 100%;\n\n > *:last-child {\n margin-bottom: 0;\n }\n\n ", ";\n"]);
849
850 _templateObject$6 = function _templateObject() {
851 return data;
852 };
853
854 return data;
855}
856var FieldsetBase = styled.div(_templateObject$6(), function (props) {
857 return props.orientation === 'inline' && css(["@media (min-width:", "){align-items:baseline;flex-direction:row;}"], props.theme.screenSize.tablet);
858});
859var Legend = styled.div(_templateObject2$2(), function (props) {
860 return props.theme.colors.black;
861}, function (props) {
862 return props.theme.sizes.baseLineHeight;
863});
864
865function Fieldset(props) {
866 var legendContent = props.legendContent,
867 children = props.children,
868 other = _objectWithoutProperties(props, ["legendContent", "children"]);
869
870 var legendId = legendContent ? generateAlphaName() : undefined;
871 var orientation = React.useContext(OrientationContext);
872 return React.createElement(FieldsetBase, _extends({
873 role: "group",
874 "aria-labelledby": legendId,
875 orientation: orientation
876 }, other), legendContent && React.createElement(Legend, {
877 id: legendId
878 }, legendContent), children);
879}
880
881Fieldset.propTypes = process.env.NODE_ENV !== "production" ? {
882 /** Determine whether or not to add a legend and what content to display */
883 legendContent: PropTypes.node,
884 children: PropTypes.node
885} : {};
886Fieldset.defaultProps = {
887 legendContent: null,
888 children: undefined
889};
890Fieldset.Legend = Legend;
891
892function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
893
894function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$2(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$2(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
895
896var Fade = function Fade(_ref) {
897 var children = _ref.children,
898 duration = _ref.duration,
899 opacity = _ref.opacity,
900 otherProps = _objectWithoutProperties(_ref, ["children", "duration", "opacity"]);
901
902 var transitionStyles = {
903 transition: "opacity ".concat(duration, "ms linear"),
904 opacity: 0
905 };
906 var stateStyles = {
907 entering: {
908 opacity: opacity
909 },
910 entered: {
911 opacity: opacity
912 }
913 };
914 return React.createElement(Transition, _extends({}, otherProps, {
915 timeout: duration
916 }), function (state, innerProps) {
917 return React.cloneElement(children, _objectSpread$2({}, innerProps, {
918 style: _objectSpread$2({}, children.props.style, {}, transitionStyles, {}, stateStyles[state])
919 }));
920 });
921};
922
923Fade.propTypes = process.env.NODE_ENV !== "production" ? {
924 children: PropTypes.any.isRequired,
925 duration: PropTypes.number,
926 opacity: PropTypes.number
927} : {};
928Fade.defaultProps = {
929 duration: 150,
930 opacity: 1
931};
932
933function _templateObject$7() {
934 var data = _taggedTemplateLiteral(["\n background-color: transparent;\n border: none;\n box-shadow: none;\n cursor: pointer;\n color: ", ";\n font-size: inherit;\n line-height: ", ";\n padding: 0;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n color: ", ";\n text-decoration: none;\n }\n\n &:active {\n box-shadow: none;\n }\n\n &[disabled]:hover {\n color: ", ";\n text-decoration: underline;\n }\n"]);
935
936 _templateObject$7 = function _templateObject() {
937 return data;
938 };
939
940 return data;
941}
942var StyledButton = styled.button(_templateObject$7(), function (props) {
943 return props.variant.textColor;
944}, function (props) {
945 return props.theme.sizes.baseLineHeight;
946}, function (props) {
947 return props.variant.hoverTextColor;
948}, function (props) {
949 return props.variant.textColor;
950});
951var LinkButton = React.forwardRef(function LinkButton(props, ref) {
952 var children = props.children,
953 styleType = props.styleType,
954 other = _objectWithoutProperties(props, ["children", "styleType"]);
955
956 var theme = useTheme();
957 var variant = theme.buttonStyles.linkButton.variant[styleType];
958 return React.createElement(StyledButton, _extends({
959 ref: ref,
960 variant: variant,
961 type: "button"
962 }, other), children);
963});
964LinkButton.propTypes = process.env.NODE_ENV !== "production" ? {
965 children: PropTypes.node.isRequired,
966
967 /** Select the color style of the button, types come from theme buttonStyles.linkButton */
968 styleType: PropTypes.string
969} : {};
970LinkButton.defaultProps = {
971 styleType: 'default'
972};
973
974function _templateObject$8() {
975 var data = _taggedTemplateLiteral(["\n border-bottom: ", ";\n border-bottom-color: ", ";\n line-height: 1;\n text-decoration: none;\n\n &:hover,\n :focus {\n border-bottom: ", ";\n border-bottom-color: ", ";\n }\n"]);
976
977 _templateObject$8 = function _templateObject() {
978 return data;
979 };
980
981 return data;
982}
983var StyledButton$1 = styled(LinkButton)(_templateObject$8(), function (props) {
984 return !props.suppressUnderline && "1px dashed";
985}, function (props) {
986 return !props.suppressUnderline && props.variant.textColor;
987}, function (props) {
988 return !props.suppressUnderline && "1px solid";
989}, function (props) {
990 return !props.suppressUnderline && props.variant.textColor;
991});
992var PopoverLink = React.forwardRef(function PopoverLink(props, ref) {
993 var children = props.children,
994 styleType = props.styleType,
995 suppressUnderline = props.suppressUnderline,
996 other = _objectWithoutProperties(props, ["children", "styleType", "suppressUnderline"]);
997
998 var theme = useTheme();
999 var variant = theme.buttonStyles.linkButton.variant[styleType];
1000 return React.createElement(StyledButton$1, _extends({
1001 ref: ref,
1002 variant: variant,
1003 suppressUnderline: suppressUnderline
1004 }, other), children);
1005});
1006PopoverLink.propTypes = process.env.NODE_ENV !== "production" ? {
1007 children: PropTypes.node.isRequired,
1008
1009 /** Select the color style of the button, types come from theme */
1010 styleType: PropTypes.string,
1011
1012 /** Hide underline from link. Useful for children like Icons */
1013 suppressUnderline: PropTypes.bool
1014} : {};
1015PopoverLink.defaultProps = {
1016 styleType: 'primary',
1017 suppressUnderline: false
1018};
1019
1020function _templateObject11() {
1021 var data = _taggedTemplateLiteral(["\n border-left-color: ", ";\n border-width: 5px 0 5px 5px;\n right: 0;\n"]);
1022
1023 _templateObject11 = function _templateObject11() {
1024 return data;
1025 };
1026
1027 return data;
1028}
1029
1030function _templateObject10() {
1031 var data = _taggedTemplateLiteral(["\n border-bottom-color: ", ";\n border-width: 0 5px 5px;\n top: 0;\n"]);
1032
1033 _templateObject10 = function _templateObject10() {
1034 return data;
1035 };
1036
1037 return data;
1038}
1039
1040function _templateObject9() {
1041 var data = _taggedTemplateLiteral(["\n border-right-color: ", ";\n border-width: 5px 5px 5px 0;\n left: 0;\n"]);
1042
1043 _templateObject9 = function _templateObject9() {
1044 return data;
1045 };
1046
1047 return data;
1048}
1049
1050function _templateObject8() {
1051 var data = _taggedTemplateLiteral(["\n border-top-color: ", ";\n border-width: 5px 5px 0;\n bottom: 0;\n"]);
1052
1053 _templateObject8 = function _templateObject8() {
1054 return data;
1055 };
1056
1057 return data;
1058}
1059
1060function _templateObject7() {
1061 var data = _taggedTemplateLiteral(["\n padding: 0 5px;\n"]);
1062
1063 _templateObject7 = function _templateObject7() {
1064 return data;
1065 };
1066
1067 return data;
1068}
1069
1070function _templateObject6() {
1071 var data = _taggedTemplateLiteral(["\n padding: 5px 0;\n"]);
1072
1073 _templateObject6 = function _templateObject6() {
1074 return data;
1075 };
1076
1077 return data;
1078}
1079
1080function _templateObject5() {
1081 var data = _taggedTemplateLiteral(["\n padding: 0 5px;\n"]);
1082
1083 _templateObject5 = function _templateObject5() {
1084 return data;
1085 };
1086
1087 return data;
1088}
1089
1090function _templateObject4$2() {
1091 var data = _taggedTemplateLiteral(["\n padding: 5px 0;\n"]);
1092
1093 _templateObject4$2 = function _templateObject4() {
1094 return data;
1095 };
1096
1097 return data;
1098}
1099
1100function _templateObject3$2() {
1101 var data = _taggedTemplateLiteral(["\n border-color: transparent;\n border-style: solid;\n height: 0;\n position: absolute;\n width: 0;\n"]);
1102
1103 _templateObject3$2 = function _templateObject3() {
1104 return data;
1105 };
1106
1107 return data;
1108}
1109
1110function _templateObject2$3() {
1111 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border-radius: 2px;\n color: ", ";\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: 15px;\n line-height: ", ";\n max-width: 250px;\n padding: 3px 8px;\n text-align: left;\n"]);
1112
1113 _templateObject2$3 = function _templateObject2() {
1114 return data;
1115 };
1116
1117 return data;
1118}
1119
1120function _templateObject$9() {
1121 var data = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 999;\n"]);
1122
1123 _templateObject$9 = function _templateObject() {
1124 return data;
1125 };
1126
1127 return data;
1128}
1129var TooltipBase = styled.div(_templateObject$9());
1130var TooltipInner = styled.div(_templateObject2$3(), function (props) {
1131 return props.theme.colors.softwareBlue;
1132}, function (props) {
1133 return props.theme.colors.white;
1134}, function (props) {
1135 return props.theme.sizes.baseLineHeight;
1136});
1137var TooltipArrowBase = styled.div(_templateObject3$2());
1138var TooltipTop = styled(TooltipBase)(_templateObject4$2());
1139var TooltipRight = styled(TooltipBase)(_templateObject5());
1140var TooltipBottom = styled(TooltipBase)(_templateObject6());
1141var TooltipLeft = styled(TooltipBase)(_templateObject7());
1142var TooltipArrowTop = styled(TooltipArrowBase)(_templateObject8(), function (props) {
1143 return props.theme.colors.softwareBlue;
1144});
1145var TooltipArrowRight = styled(TooltipArrowBase)(_templateObject9(), function (props) {
1146 return props.theme.colors.softwareBlue;
1147});
1148var TooltipArrowBottom = styled(TooltipArrowBase)(_templateObject10(), function (props) {
1149 return props.theme.colors.softwareBlue;
1150});
1151var TooltipArrowLeft = styled(TooltipArrowBase)(_templateObject11(), function (props) {
1152 return props.theme.colors.softwareBlue;
1153});
1154var ScreenReaderContent = screenReaderOnly('div');
1155
1156function Tooltip(props) {
1157 var _useState = useState(false),
1158 _useState2 = _slicedToArray(_useState, 2),
1159 show = _useState2[0],
1160 setShow = _useState2[1];
1161
1162 var name = props.name,
1163 disableHover = props.disableHover,
1164 disableFocus = props.disableFocus,
1165 position = props.position,
1166 content = props.content,
1167 styleType = props.styleType,
1168 children = props.children,
1169 other = _objectWithoutProperties(props, ["name", "disableHover", "disableFocus", "position", "content", "styleType", "children"]);
1170
1171 var TooltipStyled;
1172 var TooltipArrow;
1173 var tooltipId = name ? "es-tooltip__".concat(name) : undefined;
1174
1175 switch (position) {
1176 case 'right':
1177 TooltipStyled = TooltipRight;
1178 TooltipArrow = TooltipArrowRight;
1179 break;
1180
1181 case 'bottom':
1182 TooltipStyled = TooltipBottom;
1183 TooltipArrow = TooltipArrowBottom;
1184 break;
1185
1186 case 'left':
1187 TooltipStyled = TooltipLeft;
1188 TooltipArrow = TooltipArrowLeft;
1189 break;
1190
1191 default:
1192 TooltipStyled = TooltipTop;
1193 TooltipArrow = TooltipArrowTop;
1194 break;
1195 }
1196
1197 function showTooltip() {
1198 setShow(true);
1199 }
1200
1201 function hideTooltip() {
1202 setShow(false);
1203 }
1204
1205 function toggleShow() {
1206 setShow(!show);
1207 }
1208
1209 function closeOnEscape(event) {
1210 if (event.keyCode === 27) {
1211 setShow(false);
1212 }
1213 }
1214
1215 var descriptionId = "".concat(useUniqueId(other.id), "-description");
1216 return React.createElement(Manager, null, React.createElement(Reference, null, function (_ref) {
1217 var ref = _ref.ref;
1218 return React.createElement(PopoverLink, {
1219 ref: ref,
1220 onBlur: hideTooltip,
1221 onFocus: !disableFocus ? showTooltip : undefined,
1222 onMouseEnter: !disableHover ? showTooltip : undefined,
1223 onMouseLeave: !disableHover ? hideTooltip : undefined,
1224 onKeyDown: closeOnEscape,
1225 onClick: toggleShow,
1226 "aria-describedby": descriptionId,
1227 styleType: styleType
1228 }, children);
1229 }), React.createElement(ScreenReaderContent, {
1230 id: descriptionId
1231 }, content), ReactDOM.createPortal(React.createElement(Popper, {
1232 placement: position
1233 }, function (_ref2) {
1234 var ref = _ref2.ref,
1235 style = _ref2.style,
1236 placement = _ref2.placement,
1237 arrowProps = _ref2.arrowProps;
1238 return React.createElement(Fade, {
1239 in: show,
1240 mountOnEnter: true,
1241 unmountOnExit: true
1242 }, React.createElement(TooltipStyled, _extends({
1243 ref: ref,
1244 role: "tooltip",
1245 id: tooltipId,
1246 style: style,
1247 "aria-live": "polite"
1248 }, other), React.createElement(TooltipArrow, {
1249 ref: arrowProps.ref,
1250 style: arrowProps.style
1251 }), React.createElement(TooltipInner, null, content)));
1252 }), document.querySelector('body')));
1253}
1254
1255Tooltip.propTypes = process.env.NODE_ENV !== "production" ? {
1256 name: PropTypes.string.isRequired,
1257 children: PropTypes.any.isRequired,
1258
1259 /** The text the tooltip displays */
1260 content: PropTypes.node.isRequired,
1261
1262 /** Set the position of the tooltip over the content */
1263 position: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
1264
1265 /** Disables the default show onHover functionality */
1266 disableHover: PropTypes.bool,
1267
1268 /** Disables the default show onFocus functionality */
1269 disableFocus: PropTypes.bool,
1270
1271 /** Select the color style of the button, types come from theme */
1272 styleType: PropTypes.string
1273} : {};
1274Tooltip.defaultProps = {
1275 position: 'top',
1276 disableHover: false,
1277 disableFocus: false,
1278 styleType: undefined
1279};
1280
1281function _templateObject$a() {
1282 var data = _taggedTemplateLiteral(["\n background: none;\n border: none;\n border-radius: ", ";\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n outline: none;\n overflow: visible;\n padding: 0;\n text-decoration: none;\n width: 100%;\n\n @media (min-width: ", ") {\n display: ", ";\n width: ", ";\n }\n\n .es-button__display {\n background-color: ", ";\n border-color: transparent;\n box-shadow: 0 4px 0 0 ", ";\n border-radius: ", ";\n box-sizing: border-box;\n color: ", ";\n cursor: pointer;\n font-family: inherit;\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n min-width: 100px;\n outline: none;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n position: relative;\n text-align: center;\n text-transform: ", ";\n transition: background-color 150ms linear, color 150ms linear;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n &:hover .es-button__display {\n background-color: ", ";\n color: ", ";\n }\n\n &:focus,\n &:focus-within {\n box-shadow: 0 2px 4px 4px ", ";\n }\n\n &:active {\n box-shadow: none;\n }\n\n &&:active .es-button__display {\n box-shadow: 0 0 0 0 transparent;\n top: 4px;\n }\n\n &[disabled],\n &[disabled] .es-button__display {\n cursor: not-allowed;\n opacity: 0.65;\n\n > * {\n pointer-events: none;\n }\n }\n\n &[disabled]:hover .es-button__display {\n background-color: ", ";\n }\n"]);
1283
1284 _templateObject$a = function _templateObject() {
1285 return data;
1286 };
1287
1288 return data;
1289}
1290var StyledButton$2 = styled.button(_templateObject$a(), function (props) {
1291 return props.buttonSize.borderRadius;
1292}, function (props) {
1293 return props.theme.screenSize.tablet;
1294}, function (props) {
1295 return props.block ? 'block' : 'inline-block';
1296}, function (props) {
1297 return props.block ? '100%' : 'auto';
1298}, function (props) {
1299 return props.variant.bgColor;
1300}, function (props) {
1301 return props.variant.boxShadowColor;
1302}, function (props) {
1303 return props.buttonSize.borderRadius;
1304}, function (props) {
1305 return props.variant.textColor;
1306}, function (props) {
1307 return props.buttonSize.fontSize;
1308}, function (props) {
1309 return props.buttonSize.fontWeight || 'normal';
1310}, function (props) {
1311 return props.buttonSize.lineHeight ? props.buttonSize.lineHeight : props.theme.sizes.baseLineHeight;
1312}, function (props) {
1313 return props.buttonSize.paddingBottom;
1314}, function (props) {
1315 return props.buttonSize.paddingSides;
1316}, function (props) {
1317 return props.buttonSize.paddingSides;
1318}, function (props) {
1319 return props.buttonSize.paddingTop;
1320}, function (props) {
1321 return props.buttonSize.textTransform ? props.buttonSize.textTransform : 'none';
1322}, function (props) {
1323 return props.variant.hoverBgColor;
1324}, function (props) {
1325 return props.variant.hoverTextColor;
1326}, function (props) {
1327 return props.theme.colors.inputFocus;
1328}, function (props) {
1329 return props.variant.bgColor;
1330});
1331var Button = React.forwardRef(function Button(props, ref) {
1332 var children = props.children,
1333 styleType = props.styleType,
1334 size = props.size,
1335 block = props.block,
1336 other = _objectWithoutProperties(props, ["children", "styleType", "size", "block"]);
1337
1338 var theme = useTheme();
1339 var buttonSize = theme.buttonStyles.button.size[size];
1340 var variant = theme.buttonStyles.button.variant[styleType];
1341 return React.createElement(StyledButton$2, _extends({
1342 type: "button",
1343 block: block,
1344 buttonSize: buttonSize,
1345 variant: variant,
1346 ref: ref
1347 }, other), React.createElement("div", {
1348 className: "es-button__display"
1349 }, children));
1350});
1351Button.propTypes = process.env.NODE_ENV !== "production" ? {
1352 children: PropTypes.node.isRequired,
1353
1354 /** Select the color style of the button, types come from theme buttonStyles.button */
1355 styleType: PropTypes.string,
1356 size: PropTypes.oneOf(['lg', 'default', 'sm', 'xs']),
1357
1358 /** Make the button's width the size of it's parent container */
1359 block: PropTypes.bool
1360} : {};
1361Button.defaultProps = {
1362 styleType: 'default',
1363 block: false,
1364 size: 'default'
1365};
1366
1367function _templateObject2$4() {
1368 var data = _taggedTemplateLiteral(["\n position: absolute;\n &::before,\n &::after {\n border: solid transparent;\n content: '';\n position: absolute;\n }\n &[data-placement*='bottom'] {\n top: 0;\n left: 0;\n margin-top: -", "px;\n &::before {\n border-width: ", ";\n border-color: transparent;\n border-bottom-color: ", ";\n margin-left: -", "px;\n }\n &::after {\n border-width: ", ";\n border-color: transparent;\n border-bottom-color: ", ";\n margin-left: -", "px;\n }\n }\n &[data-placement*='top'] {\n &::before {\n border-width: ", "px;\n border-color: transparent;\n border-top-color: ", ";\n margin-left: -", "px;\n }\n &::after {\n border-width: ", "px;\n border-color: transparent;\n border-top-color: ", ";\n margin-left: -", "px;\n }\n }\n &[data-placement*='right'] {\n margin-left: -", "px;\n &::before {\n border-width: ", ";\n border-color: transparent;\n border-right-color: ", ";\n margin-top: -", "px;\n }\n &::after {\n border-width: ", ";\n border-color: transparent;\n border-right-color: ", ";\n margin-top: -", "px;\n }\n }\n &[data-placement*='left'] {\n right: 0;\n &::before {\n border-width: ", "px;\n border-color: transparent;\n border-left-color: ", ";\n margin-top: -", "px;\n }\n &::after {\n border-width: ", "px;\n border-color: transparent;\n border-left-color: ", ";\n margin-top: -", "px;\n }\n }\n"]);
1369
1370 _templateObject2$4 = function _templateObject2() {
1371 return data;
1372 };
1373
1374 return data;
1375}
1376
1377function _templateObject$b() {
1378 var data = _taggedTemplateLiteral(["\n border: 1px solid rgba(0, 0, 0, 0.3);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);\n border-radius: 2px;\n margin: ", "px;\n max-width: 350px;\n min-width: 270px;\n position: absolute;\n text-align: center;\n z-index: 5;\n"]);
1379
1380 _templateObject$b = function _templateObject() {
1381 return data;
1382 };
1383
1384 return data;
1385}
1386var PopperBox = styled.div(_templateObject$b(), function (props) {
1387 return props.arrowSize.marginSize;
1388});
1389var Arrow = styled.div(_templateObject2$4(), function (props) {
1390 return props.arrowSize.size;
1391}, function (props) {
1392 return props.arrowSize.bottomBorderWidth;
1393}, function (props) {
1394 return props.arrowSize.borderColor;
1395}, function (props) {
1396 return props.arrowSize.borderSize;
1397}, function (props) {
1398 return props.arrowSize.bottomWidth;
1399}, function (props) {
1400 return props.hasTitle ? props.theme.colors.popoverHeader : props.theme.colors.white;
1401}, function (props) {
1402 return props.arrowSize.size;
1403}, function (props) {
1404 return props.arrowSize.borderSize;
1405}, function (props) {
1406 return props.arrowSize.borderColor;
1407}, function (props) {
1408 return props.arrowSize.borderSize;
1409}, function (props) {
1410 return props.arrowSize.size;
1411}, function (props) {
1412 return props.theme.colors.white;
1413}, function (props) {
1414 return props.arrowSize.size;
1415}, function (props) {
1416 return props.arrowSize.size;
1417}, function (props) {
1418 return props.arrowSize.rightBorderWidth;
1419}, function (props) {
1420 return props.arrowSize.borderColor;
1421}, function (props) {
1422 return props.arrowSize.borderSize;
1423}, function (props) {
1424 return props.arrowSize.rightWidth;
1425}, function (props) {
1426 return props.theme.colors.white;
1427}, function (props) {
1428 return props.arrowSize.size;
1429}, function (props) {
1430 return props.arrowSize.borderSize;
1431}, function (props) {
1432 return props.arrowSize.borderColor;
1433}, function (props) {
1434 return props.arrowSize.borderSize;
1435}, function (props) {
1436 return props.arrowSize.size;
1437}, function (props) {
1438 return props.theme.colors.white;
1439}, function (props) {
1440 return props.arrowSize.size;
1441});
1442var arrowSizes = {
1443 sm: {
1444 size: '5',
1445 borderSize: '6',
1446 marginSize: '10',
1447 bottomWidth: '0 5px 5px',
1448 bottomBorderWidth: '0 6px 5px',
1449 rightWidth: '5px 5px 5px 0',
1450 rightBorderWidth: '6px 5px 6px 0',
1451 borderColor: 'rgba(0, 0, 0, 0.3)'
1452 },
1453 md: {
1454 size: '10',
1455 borderSize: '11',
1456 marginSize: '15',
1457 bottomWidth: '0 10px 10px',
1458 bottomBorderWidth: '0 11px 10px',
1459 rightWidth: '10px 10px 10px 0',
1460 rightBorderWidth: '11px 10px 11px 0',
1461 borderColor: 'rgba(0, 0, 0, 0.3)'
1462 },
1463 lg: {
1464 size: '20',
1465 borderSize: '21',
1466 marginSize: '30',
1467 bottomWidth: '0 20px 20px',
1468 bottomBorderWidth: '0 21px 20px',
1469 rightWidth: '20px 20px 20px 0',
1470 rightBorderWidth: '21px 20px 21px 0',
1471 borderColor: 'rgba(0, 0, 0, 0.3)'
1472 },
1473 none: {
1474 size: '0',
1475 borderSize: '0',
1476 marginSize: '10'
1477 }
1478};
1479
1480function getArrowValues(size) {
1481 switch (size) {
1482 case 'sm':
1483 return arrowSizes.sm;
1484
1485 case 'lg':
1486 return arrowSizes.lg;
1487
1488 case 'none':
1489 return arrowSizes.none;
1490
1491 default:
1492 return arrowSizes.md;
1493 }
1494}
1495
1496function Popup(props) {
1497 var name = props.name,
1498 trigger = props.trigger,
1499 children = props.children,
1500 position = props.position,
1501 arrowSize = props.arrowSize,
1502 hasTitle = props.hasTitle,
1503 transitionIn = props.transitionIn,
1504 transitionTimeout = props.transitionTimeout,
1505 disableFlipping = props.disableFlipping,
1506 popperRef = props.popperRef;
1507 var arrowValues = getArrowValues(arrowSize);
1508 return React.createElement(Manager, null, React.createElement(Reference, null, function (_ref) {
1509 var ref = _ref.ref;
1510 return React.createElement("div", {
1511 className: "".concat(name, "-popper__trigger"),
1512 ref: ref
1513 }, trigger);
1514 }), ReactDOM.createPortal(React.createElement(Popper, {
1515 className: "".concat(name, "-popper"),
1516 placement: position,
1517 modifiers: {
1518 preventOverflow: {
1519 boundariesElement: document.body
1520 },
1521 flip: {
1522 enabled: !disableFlipping,
1523 behavior: ['left', 'right', 'top', 'bottom', 'top']
1524 }
1525 },
1526 innerRef: popperRef
1527 }, function (_ref2) {
1528 var ref = _ref2.ref,
1529 style = _ref2.style,
1530 placement = _ref2.placement,
1531 arrowProps = _ref2.arrowProps;
1532 return React.createElement(Fade, {
1533 in: transitionIn,
1534 duration: transitionTimeout,
1535 mountOnEnter: true,
1536 unmountOnExit: true
1537 }, React.createElement(PopperBox, {
1538 ref: ref,
1539 style: style,
1540 arrowSize: arrowValues
1541 }, children, React.createElement(Arrow, {
1542 ref: arrowProps.ref,
1543 "data-placement": placement,
1544 style: arrowProps.style,
1545 arrowSize: arrowValues,
1546 hasTitle: hasTitle
1547 })));
1548 }), document.querySelector('body')));
1549}
1550
1551Popup.propTypes = process.env.NODE_ENV !== "production" ? {
1552 name: PropTypes.string,
1553 trigger: PropTypes.node,
1554 children: PropTypes.node,
1555 position: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
1556 arrowSize: PropTypes.oneOf(['sm', 'lg', 'none', 'default']),
1557 transitionIn: PropTypes.bool,
1558 transitionTimeout: PropTypes.number,
1559 hasTitle: PropTypes.bool,
1560 disableFlipping: PropTypes.bool,
1561 popperRef: PropTypes.func
1562} : {};
1563Popup.defaultProps = {
1564 name: '',
1565 trigger: undefined,
1566 children: undefined,
1567 position: 'bottom',
1568 arrowSize: 'default',
1569 transitionIn: false,
1570 transitionTimeout: 150,
1571 hasTitle: false,
1572 disableFlipping: false,
1573 popperRef: undefined
1574};
1575
1576var RootCloseWrapper = function RootCloseWrapper(_ref) {
1577 var children = _ref.children,
1578 onRootClose = _ref.onRootClose,
1579 disabled = _ref.disabled;
1580 var ref = useRef();
1581 useRootClose(ref, onRootClose, {
1582 disabled: disabled
1583 });
1584 return React.createElement("div", {
1585 ref: ref,
1586 className: "root-close-wrapper"
1587 }, children);
1588};
1589
1590function _templateObject8$1() {
1591 var data = _taggedTemplateLiteral(["\n color: transparent;\n flex: none;\n height: 1px;\n outline: 0;\n width: 1px;\n"]);
1592
1593 _templateObject8$1 = function _templateObject8() {
1594 return data;
1595 };
1596
1597 return data;
1598}
1599
1600function _templateObject7$1() {
1601 var data = _taggedTemplateLiteral(["\n color: ", ";\n\n flex: 0 1;\n margin-left: auto;\n padding: 8px;\n"]);
1602
1603 _templateObject7$1 = function _templateObject7() {
1604 return data;
1605 };
1606
1607 return data;
1608}
1609
1610function _templateObject6$1() {
1611 var data = _taggedTemplateLiteral(["\n display: inline-block;\n margin: 5px 0;\n width: auto;\n"]);
1612
1613 _templateObject6$1 = function _templateObject6() {
1614 return data;
1615 };
1616
1617 return data;
1618}
1619
1620function _templateObject5$1() {
1621 var data = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n text-align: left;\n"]);
1622
1623 _templateObject5$1 = function _templateObject5() {
1624 return data;
1625 };
1626
1627 return data;
1628}
1629
1630function _templateObject4$3() {
1631 var data = _taggedTemplateLiteral(["\n background: ", ";\n color: ", ";\n font-size: 18px;\n font-weight: normal;\n line-height: ", ";\n padding: ", ";\n text-align: right;\n"]);
1632
1633 _templateObject4$3 = function _templateObject4() {
1634 return data;
1635 };
1636
1637 return data;
1638}
1639
1640function _templateObject3$3() {
1641 var data = _taggedTemplateLiteral(["\n flex: 1 1;\n font-size: 18px;\n margin: 0;\n padding: 8px 14px;\n text-align: left;\n"]);
1642
1643 _templateObject3$3 = function _templateObject3() {
1644 return data;
1645 };
1646
1647 return data;
1648}
1649
1650function _templateObject2$5() {
1651 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n color: ", ";\n display: flex;\n justify-content: space-between;\n line-height: ", ";\n outline: none;\n"]);
1652
1653 _templateObject2$5 = function _templateObject2() {
1654 return data;
1655 };
1656
1657 return data;
1658}
1659
1660function _templateObject$c() {
1661 var data = _taggedTemplateLiteral(["\n display: inline-block;\n"]);
1662
1663 _templateObject$c = function _templateObject() {
1664 return data;
1665 };
1666
1667 return data;
1668}
1669var Container = styled.div(_templateObject$c());
1670var PopoverHeader = styled.div(_templateObject2$5(), function (props) {
1671 return props.hasTitle ? props.theme.colors.popoverHeader : props.theme.colors.white;
1672}, function (props) {
1673 return props.theme.colors.white;
1674}, function (props) {
1675 return props.theme.sizes.baseLineHeight;
1676});
1677var TitleBar = styled.h3(_templateObject3$3());
1678var PopoverBody = styled.div(_templateObject4$3(), function (props) {
1679 return props.theme.colors.white;
1680}, function (props) {
1681 return props.theme.colors.gray9;
1682}, function (props) {
1683 return props.theme.sizes.baseLineHeight;
1684}, function (props) {
1685 return props.hasAltCloseWithNoTitle ? '0 14px 8px' : '8px 14px';
1686});
1687var PopoverContent = styled.div(_templateObject5$1(), function (props) {
1688 return props.showCloseButton ? '8px' : '0';
1689});
1690var PopoverCloseButton = styled(Button)(_templateObject6$1());
1691var AltCloseButton = styled(DismissButton)(_templateObject7$1(), function (props) {
1692 return props.hasTitle ? props.theme.colors.white : props.theme.colors.black;
1693});
1694var CloseHelpText = styled.span(_templateObject8$1());
1695
1696function Popover(props) {
1697 var name = props.name,
1698 title = props.title,
1699 content = props.content,
1700 placement = props.placement,
1701 arrowSize = props.arrowSize,
1702 renderTrigger = props.renderTrigger,
1703 hasCloseButton = props.hasCloseButton,
1704 hasAltCloseButton = props.hasAltCloseButton,
1705 disableRootClose = props.disableRootClose,
1706 disableFlipping = props.disableFlipping;
1707 var hasTitle = title !== undefined;
1708 var hasAltCloseWithNoTitle = !hasTitle && hasAltCloseButton;
1709 var showCloseButton = hasCloseButton && !hasAltCloseButton;
1710 var isFirstRun = useRef(true);
1711 var triggerBtnRef = useRef(null);
1712
1713 var _popperRef = useRef(null);
1714
1715 var contentRef = useRef(null);
1716 var escMsgRef = useRef(null);
1717 var closeBtnRef = useRef(null);
1718 var timeoutRef = useRef(null);
1719
1720 var _useState = useState(false),
1721 _useState2 = _slicedToArray(_useState, 2),
1722 isOpen = _useState2[0],
1723 setIsOpen = _useState2[1];
1724
1725 function toggleShow(event) {
1726 event.preventDefault();
1727 event.stopPropagation();
1728 setIsOpen(!isOpen);
1729 }
1730
1731 function hidePopover(event) {
1732 if (isOpen) {
1733 if (event.type !== 'click') {
1734 triggerBtnRef.current.focus();
1735 }
1736
1737 setIsOpen(false);
1738 }
1739 }
1740
1741 function hidePopOnScroll() {
1742 _setInterval(function () {
1743 if (_popperRef.current) {
1744 var bounds = _popperRef.current.getBoundingClientRect();
1745
1746 var inViewport = bounds.top >= 0 && bounds.bottom <= window.innerHeight;
1747
1748 if (!inViewport && isOpen) {
1749 setIsOpen(false);
1750 }
1751 }
1752 }, 100);
1753 }
1754
1755 useEffect(function () {
1756 if (isFirstRun.current) {
1757 isFirstRun.current = false;
1758 return;
1759 }
1760
1761 if (timeoutRef.current !== null) {
1762 clearTimeout(timeoutRef.current);
1763 }
1764
1765 if (isOpen) {
1766 timeoutRef.current = _setTimeout(function () {
1767 if (closeBtnRef.current) {
1768 closeBtnRef.current.focus();
1769 } else if (escMsgRef.current) {
1770 escMsgRef.current.focus();
1771 }
1772 }, 100);
1773 } else {
1774 triggerBtnRef.current.focus();
1775 }
1776 }, [isOpen]);
1777 useEffect(function () {
1778 if (isOpen) {
1779 window.addEventListener('scroll', hidePopOnScroll);
1780 }
1781
1782 return function () {
1783 return window.removeEventListener('scroll', hidePopOnScroll);
1784 };
1785 }, [isOpen]);
1786 var closeButton = React.createElement(PopoverCloseButton, {
1787 onClick: toggleShow,
1788 ref: closeBtnRef
1789 }, "Close");
1790 var altCloseButton = React.createElement(AltCloseButton, {
1791 "aria-label": "Close",
1792 hasTitle: hasTitle,
1793 onClick: toggleShow,
1794 ref: closeBtnRef
1795 });
1796 return React.createElement(Container, null, React.createElement(Popup, {
1797 name: name,
1798 trigger: renderTrigger({
1799 ref: triggerBtnRef,
1800 toggleShow: toggleShow,
1801 isOpen: isOpen
1802 }),
1803 position: placement,
1804 arrowSize: arrowSize,
1805 transitionIn: isOpen,
1806 hasTitle: hasTitle,
1807 disableFlipping: disableFlipping,
1808 popperRef: function popperRef(elem) {
1809 _popperRef.current = elem;
1810 }
1811 }, React.createElement(RootCloseWrapper, {
1812 onRootClose: hidePopover,
1813 disabled: disableRootClose
1814 }, React.createElement("div", {
1815 role: "dialog",
1816 ref: contentRef
1817 }, React.createElement(PopoverHeader, {
1818 hasTitle: hasTitle
1819 }, hasTitle && React.createElement(TitleBar, null, title), hasAltCloseButton && altCloseButton, React.createElement(CloseHelpText, {
1820 tabIndex: -1,
1821 ref: escMsgRef,
1822 "aria-label": "Press escape to close the Popover"
1823 })), React.createElement(PopoverBody, {
1824 hasAltCloseWithNoTitle: hasAltCloseWithNoTitle
1825 }, React.createElement(PopoverContent, {
1826 showCloseButton: showCloseButton
1827 }, content), showCloseButton && closeButton)))));
1828}
1829
1830Popover.propTypes = process.env.NODE_ENV !== "production" ? {
1831 /** The name of the popover. Used for differentiating popovers */
1832 name: PropTypes.string.isRequired,
1833
1834 /** The text displayed in the popover title section */
1835 title: PropTypes.string,
1836
1837 /** The content displayed in the popover body */
1838 content: PropTypes.node.isRequired,
1839
1840 /** The placement of the popover in relation to the link */
1841 placement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
1842
1843 /** The size of the arrow on the popover box */
1844 arrowSize: PropTypes.oneOf(['sm', 'lg', 'none', 'default']),
1845
1846 /** Prevents popover from closing when clicked outside of it */
1847 disableRootClose: PropTypes.bool,
1848
1849 /** Display a close button in the bottom right of the popover body */
1850 hasCloseButton: PropTypes.bool,
1851
1852 /** Display a close ('x') button in the popover title bar */
1853 hasAltCloseButton: PropTypes.bool,
1854
1855 /** Function returning a button component to be used as the popover trigger */
1856 renderTrigger: PropTypes.func.isRequired,
1857
1858 /** Disables popovers ability to change position to stay in viewport */
1859 disableFlipping: PropTypes.bool
1860} : {};
1861Popover.defaultProps = {
1862 placement: 'bottom',
1863 arrowSize: 'default',
1864 disableRootClose: false,
1865 hasCloseButton: false,
1866 hasAltCloseButton: false,
1867 disableFlipping: false,
1868 title: undefined
1869};
1870
1871function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
1872
1873function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty(_context2 = ownKeys$3(source, true)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _forEachInstanceProperty(_context3 = ownKeys$3(source)).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
1874
1875var DropIn = function DropIn(_ref) {
1876 var _context;
1877
1878 var children = _ref.children,
1879 duration = _ref.duration,
1880 otherProps = _objectWithoutProperties(_ref, ["children", "duration"]);
1881
1882 var transitionStyles = {
1883 opacity: 0,
1884 transform: "translate(0, -25%)",
1885 transition: _concatInstanceProperty(_context = "transform ".concat(duration, "ms ease-out, opacity ")).call(_context, duration, "ms linear")
1886 };
1887 var stateStyles = {
1888 entering: {
1889 opacity: 1,
1890 transform: "translate(0, 0)"
1891 },
1892 entered: {
1893 opacity: 1,
1894 transform: "translate(0, 0)"
1895 }
1896 };
1897 return React.createElement(Transition, _extends({}, otherProps, {
1898 timeout: duration
1899 }), function (state, innerProps) {
1900 return React.cloneElement(children, _objectSpread$3({}, innerProps, {
1901 style: _objectSpread$3({}, children.props.style, {}, transitionStyles, {}, stateStyles[state])
1902 }));
1903 });
1904};
1905
1906DropIn.propTypes = process.env.NODE_ENV !== "production" ? {
1907 children: PropTypes.any.isRequired,
1908 duration: PropTypes.number
1909} : {};
1910DropIn.defaultProps = {
1911 duration: 300
1912};
1913
1914var ModalContext = React.createContext({});
1915
1916function _templateObject$d() {
1917 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border-bottom: ", ";\n color: ", ";\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: ", ";\n font-weight: 300;\n line-height: 1.1;\n margin-bottom: 0.45em;\n margin-top: 0;\n padding-bottom: ", ";\n padding: ", ";\n\n small {\n font-size: ", ";\n line-height: 1;\n }\n\n @media (min-width: ", ") {\n font-size: ", ";\n }\n"]);
1918
1919 _templateObject$d = function _templateObject() {
1920 return data;
1921 };
1922
1923 return data;
1924}
1925var HeadingBase = styled.h1(_templateObject$d(), function (props) {
1926 return props.isKnockoutStyle && props.theme.colors.softwareBlue;
1927}, function (props) {
1928 return props.underlineColor && "2px solid ".concat(props.underlineColor, ";");
1929}, function (props) {
1930 return props.isKnockoutStyle ? 'white' : 'inherit';
1931}, function (props) {
1932 return props.adjustedSize > 2 ? props.theme.headingSize[props.adjustedSize] : "calc(".concat(props.theme.headingSize[props.adjustedSize], " - 6px);");
1933}, function (props) {
1934 return props.underlineColor && '0.22em';
1935}, function (props) {
1936 return props.isKnockoutStyle && '20px 15px';
1937}, function (props) {
1938 return props.adjustedSize > 3 ? '75%' : '65%';
1939}, function (props) {
1940 return props.theme.screenSize.tablet;
1941}, function (props) {
1942 return props.theme.headingSize[props.adjustedSize];
1943});
1944
1945function Heading(_ref) {
1946 var children = _ref.children,
1947 level = _ref.level,
1948 size = _ref.size,
1949 isKnockoutStyle = _ref.isKnockoutStyle,
1950 underlineColor = _ref.underlineColor,
1951 other = _objectWithoutProperties(_ref, ["children", "level", "size", "isKnockoutStyle", "underlineColor"]);
1952
1953 var adjustedSize = size || level;
1954 var hLevel = "h".concat(level);
1955 return React.createElement(HeadingBase, _extends({
1956 as: hLevel,
1957 adjustedSize: adjustedSize,
1958 isKnockoutStyle: isKnockoutStyle,
1959 underlineColor: underlineColor
1960 }, other), children);
1961}
1962
1963Heading.propTypes = process.env.NODE_ENV !== "production" ? {
1964 children: PropTypes.node,
1965
1966 /** Heading level element */
1967 level: PropTypes.oneOf([1, 2, 3, 4, 5, 6]).isRequired,
1968
1969 /** Override the default font size with another level */
1970 size: PropTypes.oneOf([1, 2, 3, 4, 5, 6]),
1971
1972 /** Alternate knockout-style header with a solid background */
1973 isKnockoutStyle: PropTypes.bool,
1974
1975 /** Include an underline with the provided color */
1976 underlineColor: PropTypes.string
1977} : {};
1978Heading.defaultProps = {
1979 children: undefined,
1980 size: undefined,
1981 isKnockoutStyle: false,
1982 underlineColor: null
1983};
1984
1985function _templateObject3$4() {
1986 var data = _taggedTemplateLiteral(["\n align-self: center;\n color: ", ";\n font-size: 18px;\n"]);
1987
1988 _templateObject3$4 = function _templateObject3() {
1989 return data;
1990 };
1991
1992 return data;
1993}
1994
1995function _templateObject2$6() {
1996 var data = _taggedTemplateLiteral(["\n margin: 0;\n"]);
1997
1998 _templateObject2$6 = function _templateObject2() {
1999 return data;
2000 };
2001
2002 return data;
2003}
2004
2005function _templateObject$e() {
2006 var data = _taggedTemplateLiteral(["\n align-items: baseline;\n border-bottom: 2px solid ", ";\n color: ", ";\n display: flex;\n font-size: 26px;\n justify-content: space-between;\n padding: 15px;\n"]);
2007
2008 _templateObject$e = function _templateObject() {
2009 return data;
2010 };
2011
2012 return data;
2013}
2014
2015var Header = styled.div(_templateObject$e(), function (props) {
2016 return props.theme.brandColors.vbMagenta;
2017}, function (props) {
2018 return props.theme.colors.gray9;
2019});
2020var Title = styled(Heading)(_templateObject2$6());
2021var DismissModal = styled(DismissButton)(_templateObject3$4(), function (props) {
2022 return props.theme.colors.black;
2023});
2024
2025function ModalHeader(props) {
2026 var hideCloseButton = props.hideCloseButton,
2027 children = props.children,
2028 level = props.level,
2029 otherProps = _objectWithoutProperties(props, ["hideCloseButton", "children", "level"]);
2030
2031 var _useContext = useContext(ModalContext),
2032 onHide = _useContext.onHide,
2033 ariaId = _useContext.ariaId;
2034
2035 return React.createElement(Header, otherProps, React.createElement(Title, {
2036 id: ariaId,
2037 level: level
2038 }, children), !hideCloseButton && React.createElement(DismissModal, {
2039 onClick: onHide
2040 }));
2041}
2042
2043ModalHeader.propTypes = process.env.NODE_ENV !== "production" ? {
2044 /** Specify whether the modal header should contain a close button */
2045 hideCloseButton: PropTypes.bool,
2046 children: PropTypes.any,
2047 level: PropTypes.oneOf([1, 2, 3, 4, 5, 6])
2048} : {};
2049ModalHeader.defaultProps = {
2050 hideCloseButton: false,
2051 children: undefined,
2052 level: 4
2053};
2054
2055function _templateObject$f() {
2056 var data = _taggedTemplateLiteral(["\n color: ", ";\n padding: 15px;\n"]);
2057
2058 _templateObject$f = function _templateObject() {
2059 return data;
2060 };
2061
2062 return data;
2063}
2064
2065var ModalBody = styled.div(_templateObject$f(), function (props) {
2066 return props.theme.colors.gray9;
2067});
2068
2069function _templateObject$g() {
2070 var data = _taggedTemplateLiteral(["\n align-items: baseline;\n display: flex;\n padding: 15px 15px 55px;\n text-align: right;\n\n button {\n width: auto;\n }\n\n @media (min-width: ", ") {\n padding: 15px 15px 19px;\n }\n"]);
2071
2072 _templateObject$g = function _templateObject() {
2073 return data;
2074 };
2075
2076 return data;
2077}
2078
2079var ModalFooter = styled.div(_templateObject$g(), function (props) {
2080 return props.theme.screenSize.tablet;
2081});
2082
2083function _templateObject5$2() {
2084 var data = _taggedTemplateLiteral(["\n background-clip: padding-box;\n background-color: ", ";\n border-radius: 3px;\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: ", ";\n outline: 0;\n position: relative;\n -webkit-overflow-scrolling: touch;\n"]);
2085
2086 _templateObject5$2 = function _templateObject5() {
2087 return data;
2088 };
2089
2090 return data;
2091}
2092
2093function _templateObject4$4() {
2094 var data = _taggedTemplateLiteral(["\n @media (min-width: ", ") {\n width: ", ";\n }\n"]);
2095
2096 _templateObject4$4 = function _templateObject4() {
2097 return data;
2098 };
2099
2100 return data;
2101}
2102
2103function _templateObject3$5() {
2104 var data = _taggedTemplateLiteral(["\n @media (min-width: ", ") {\n margin: 20vh auto;\n width: ", ";\n }\n"]);
2105
2106 _templateObject3$5 = function _templateObject3() {
2107 return data;
2108 };
2109
2110 return data;
2111}
2112
2113function _templateObject2$7() {
2114 var data = _taggedTemplateLiteral(["\n position: relative;\n width: 100%;\n\n @media (min-width: ", ") {\n margin: 20vh auto;\n width: ", ";\n }\n"]);
2115
2116 _templateObject2$7 = function _templateObject2() {
2117 return data;
2118 };
2119
2120 return data;
2121}
2122
2123function _templateObject$h() {
2124 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 1030;\n"]);
2125
2126 _templateObject$h = function _templateObject() {
2127 return data;
2128 };
2129
2130 return data;
2131}
2132var modalSize = {
2133 small: '300px',
2134 medium: '600px',
2135 large: '900px'
2136};
2137var modalStyle = {
2138 bottom: 0,
2139 left: 0,
2140 outline: 0,
2141 overflowX: 'hidden',
2142 overflowY: 'auto',
2143 position: 'fixed',
2144 right: 0,
2145 top: 0,
2146 zIndex: 1040
2147};
2148var Backdrop = styled.div(_templateObject$h(), function (props) {
2149 return props.theme.colors.black;
2150});
2151var ModalDialogMedium = styled.div(_templateObject2$7(), function (props) {
2152 return props.theme.screenSize.tablet;
2153}, modalSize.medium);
2154var ModalDialogSmall = styled(ModalDialogMedium)(_templateObject3$5(), function (props) {
2155 return props.theme.screenSize.phone;
2156}, modalSize.small);
2157var ModalDialogLarge = styled(ModalDialogMedium)(_templateObject4$4(), function (props) {
2158 return props.theme.screenSize.desktop;
2159}, modalSize.large);
2160var ModalContent = styled.div(_templateObject5$2(), function (props) {
2161 return props.theme.colors.white;
2162}, function (props) {
2163 return props.theme.sizes.baseFontSize;
2164});
2165
2166var BackdropFade = function BackdropFade(props) {
2167 return React.createElement(Fade, _extends({
2168 opacity: 0.5
2169 }, props));
2170};
2171
2172var DialogDropIn = function DialogDropIn(props) {
2173 return React.createElement(DropIn, props);
2174};
2175
2176function getModalBySize(size) {
2177 switch (size) {
2178 case 'small':
2179 return ModalDialogSmall;
2180
2181 case 'large':
2182 return ModalDialogLarge;
2183
2184 default:
2185 return ModalDialogMedium;
2186 }
2187}
2188
2189function Modal(props) {
2190 var animation = props.animation,
2191 backdrop = props.backdrop,
2192 children = props.children,
2193 escapeExits = props.escapeExits,
2194 onEnter = props.onEnter,
2195 onExit = props.onExit,
2196 onHide = props.onHide,
2197 show = props.show,
2198 size = props.size,
2199 other = _objectWithoutProperties(props, ["animation", "backdrop", "children", "escapeExits", "onEnter", "onExit", "onHide", "show", "size"]);
2200
2201 var ModalDialog = getModalBySize(size);
2202 var ariaId = useUniqueId(other.id);
2203 return React.createElement(ModalContext.Provider, {
2204 value: {
2205 onHide: onHide,
2206 ariaId: ariaId
2207 }
2208 }, React.createElement(Modal$1, {
2209 "aria-labelledby": ariaId,
2210 backdrop: backdrop,
2211 renderBackdrop: function renderBackdrop(backdropProps) {
2212 return React.createElement(Backdrop, backdropProps);
2213 },
2214 backdropTransition: animation ? BackdropFade : undefined,
2215 keyboard: escapeExits,
2216 onEnter: onEnter,
2217 onExit: onExit,
2218 onHide: onHide,
2219 show: show,
2220 style: modalStyle,
2221 transition: animation ? DialogDropIn : undefined
2222 }, React.createElement(ModalDialog, _extends({
2223 size: size
2224 }, other), React.createElement(RootCloseWrapper, {
2225 onRootClose: onHide,
2226 disabled: backdrop === 'static'
2227 }, React.createElement(ModalContent, null, children)))));
2228}
2229
2230Modal.propTypes = process.env.NODE_ENV !== "production" ? {
2231 /** Open and close the Modal with transitions. */
2232 animation: PropTypes.bool,
2233
2234 /**
2235 * Include a backdrop component. Specify 'static' for a backdrop that doesn't
2236 * trigger an "onHide" when clicked.
2237 */
2238 backdrop: PropTypes.oneOf(['static', true, false]),
2239
2240 /**
2241 * Usually contains a Modal.Title, Modal.Body, and Modal.Footer
2242 * but can contain any content
2243 */
2244 children: PropTypes.any,
2245
2246 /** Set whether the Escape key exits the modal */
2247 escapeExits: PropTypes.bool,
2248
2249 /** Callback fired when the Modal transitions in */
2250 onEnter: PropTypes.func,
2251
2252 /** Callback fired when the modal transitions out */
2253 onExit: PropTypes.func,
2254
2255 /**
2256 * A callback fired when the header closeButton or non-static backdrop is
2257 * clicked. Required if either are specified.
2258 */
2259 onHide: PropTypes.func,
2260
2261 /** When `true` The modal will show itself. */
2262 show: PropTypes.bool,
2263
2264 /** Sets the size of the modal */
2265 size: PropTypes.oneOf(['small', 'medium', 'large'])
2266} : {};
2267Modal.defaultProps = {
2268 animation: true,
2269 backdrop: true,
2270 escapeExits: true,
2271 onEnter: _noop,
2272 onExit: _noop,
2273 onHide: _noop,
2274 show: false,
2275 size: 'medium',
2276 children: undefined
2277};
2278Modal.Header = ModalHeader;
2279Modal.Body = ModalBody;
2280Modal.Footer = ModalFooter;
2281
2282function _templateObject$i() {
2283 var data = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n width: 100%;\n\n @media (min-width: ", ") {\n flex-direction: row;\n }\n"]);
2284
2285 _templateObject$i = function _templateObject() {
2286 return data;
2287 };
2288
2289 return data;
2290}
2291var ModalButtonContainer = styled.div(_templateObject$i(), function (props) {
2292 return props.theme.screenSize.tablet;
2293});
2294
2295function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
2296
2297function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$4(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$4(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
2298
2299function _templateObject11$1() {
2300 var data = _taggedTemplateLiteral(["\n .ReactModal__Body--open {\n overflow-y: hidden;\n }\n\n .ReactModal__Overlay--after-open {\n background-color: rgba(0,0,0,0.3) !important;\n }\n\n .ReactModal__Overlay--before-close {\n background-color: rgba(0,0,0,0) !important;\n }\n"]);
2301
2302 _templateObject11$1 = function _templateObject11() {
2303 return data;
2304 };
2305
2306 return data;
2307}
2308
2309function _templateObject10$1() {
2310 var data = _taggedTemplateLiteral(["\n flex: 1 1 auto;\n overflow-y: auto;\n padding: 1.5em;\n position: relative;\n"]);
2311
2312 _templateObject10$1 = function _templateObject10() {
2313 return data;
2314 };
2315
2316 return data;
2317}
2318
2319function _templateObject9$1() {
2320 var data = _taggedTemplateLiteral(["\n font-size: 12px;\n margin-top: 2px;\n"]);
2321
2322 _templateObject9$1 = function _templateObject9() {
2323 return data;
2324 };
2325
2326 return data;
2327}
2328
2329function _templateObject8$2() {
2330 var data = _taggedTemplateLiteral(["\n margin: 0;\n max-width: 80%;\n overflow: hidden;\n padding: 1px;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]);
2331
2332 _templateObject8$2 = function _templateObject8() {
2333 return data;
2334 };
2335
2336 return data;
2337}
2338
2339function _templateObject7$2() {
2340 var data = _taggedTemplateLiteral(["\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n"]);
2341
2342 _templateObject7$2 = function _templateObject7() {
2343 return data;
2344 };
2345
2346 return data;
2347}
2348
2349function _templateObject6$2() {
2350 var data = _taggedTemplateLiteral(["\n cursor: pointer;\n opacity: 0.7;\n padding: 16px;\n"]);
2351
2352 _templateObject6$2 = function _templateObject6() {
2353 return data;
2354 };
2355
2356 return data;
2357}
2358
2359function _templateObject5$3() {
2360 var data = _taggedTemplateLiteral(["\n align-items: center;\n background-color: ", ";\n color: ", ";\n display: flex;\n flex: 0 0 64px;\n height: 64px;\n"]);
2361
2362 _templateObject5$3 = function _templateObject5() {
2363 return data;
2364 };
2365
2366 return data;
2367}
2368
2369function _templateObject4$5() {
2370 var data = _taggedTemplateLiteral(["\n height: 90vh;\n margin-top: 10vh;\n transform: translateY(100%);\n\n &.ReactModal__Content--after-open {\n transform: translateY(0%);\n }\n\n &.ReactModal__Content--before-close {\n transform: translateY(100%);\n }\n"]);
2371
2372 _templateObject4$5 = function _templateObject4() {
2373 return data;
2374 };
2375
2376 return data;
2377}
2378
2379function _templateObject3$6() {
2380 var data = _taggedTemplateLiteral(["\n margin-right: auto;\n transform: translateX(-100%);\n\n &.ReactModal__Content--after-open {\n transform: translateX(0%);\n }\n\n &.ReactModal__Content--before-close {\n transform: translateX(-100%);\n }\n"]);
2381
2382 _templateObject3$6 = function _templateObject3() {
2383 return data;
2384 };
2385
2386 return data;
2387}
2388
2389function _templateObject2$8() {
2390 var data = _taggedTemplateLiteral(["\n margin-left: auto;\n transform: translateX(100%);\n\n &.ReactModal__Content--after-open {\n transform: translateX(0%);\n }\n\n &.ReactModal__Content--before-close {\n transform: translateX(100%);\n }\n"]);
2391
2392 _templateObject2$8 = function _templateObject2() {
2393 return data;
2394 };
2395
2396 return data;
2397}
2398
2399function _templateObject$j() {
2400 var data = _taggedTemplateLiteral(["\n background: ", ";\n box-shadow: 0 8px 8px ", ";\n display: flex;\n flex-direction: column;\n height: 100%;\n min-width: 100px;\n transition: transform 0.5s;\n width: 100%;\n will-change: transform;\n\n &:focus {\n outline-style: none;\n }\n\n @media (min-width: ", ") {\n width: 900px;\n }\n"]);
2401
2402 _templateObject$j = function _templateObject() {
2403 return data;
2404 };
2405
2406 return data;
2407}
2408var PaneBase = styled(Modal$1$1)(_templateObject$j(), function (props) {
2409 return props.theme.colors.white;
2410}, function (props) {
2411 return props.theme.colors.boxShadowDark;
2412}, function (props) {
2413 return props.theme.screenSize.tablet;
2414});
2415var PaneRight = styled(PaneBase)(_templateObject2$8());
2416var PaneLeft = styled(PaneBase)(_templateObject3$6());
2417var PaneBottom = styled(PaneBase)(_templateObject4$5());
2418var Header$1 = styled.div(_templateObject5$3(), function (props) {
2419 return props.theme.colors.popoverHeader;
2420}, function (props) {
2421 return props.theme.colors.white;
2422});
2423var CloseLink = styled(LinkButton)(_templateObject6$2());
2424var TitleWrapper = styled.div(_templateObject7$2());
2425var TitleText = styled(Heading)(_templateObject8$2());
2426var SubTitle = styled.div(_templateObject9$1());
2427var Content = styled.div(_templateObject10$1());
2428var ScreenReaderText$1 = screenReaderOnly('span');
2429var defaultStyles = {
2430 overlay: {
2431 backgroundColor: 'rgba(0,0,0,0)',
2432 top: '0',
2433 left: '0',
2434 right: '0',
2435 bottom: '0',
2436 position: 'fixed',
2437 zIndex: '1000',
2438 transition: 'background-color 0.5s'
2439 },
2440 content: {}
2441};
2442var GlobalPaneStyles = createGlobalStyle(_templateObject11$1());
2443
2444function getPane(direction) {
2445 switch (direction) {
2446 case 'bottom':
2447 return PaneBottom;
2448
2449 case 'left':
2450 return PaneLeft;
2451
2452 default:
2453 return PaneRight;
2454 }
2455}
2456
2457function SlidingPane(_ref) {
2458 var isOpen = _ref.isOpen,
2459 title = _ref.title,
2460 subTitle = _ref.subTitle,
2461 shouldCloseOnEsc = _ref.shouldCloseOnEsc,
2462 onRequestClose = _ref.onRequestClose,
2463 onAfterOpen = _ref.onAfterOpen,
2464 children = _ref.children,
2465 closeIcon = _ref.closeIcon,
2466 closeIconScreenReaderText = _ref.closeIconScreenReaderText,
2467 from = _ref.from,
2468 headingLevel = _ref.headingLevel,
2469 headingSize = _ref.headingSize,
2470 closeTimeout = _ref.closeTimeout,
2471 overlayStyles = _ref.overlayStyles,
2472 contentStyles = _ref.contentStyles,
2473 appElement = _ref.appElement,
2474 rest = _objectWithoutProperties(_ref, ["isOpen", "title", "subTitle", "shouldCloseOnEsc", "onRequestClose", "onAfterOpen", "children", "closeIcon", "closeIconScreenReaderText", "from", "headingLevel", "headingSize", "closeTimeout", "overlayStyles", "contentStyles", "appElement"]);
2475
2476 var Pane = getPane(from);
2477 var styles = {
2478 overlay: _objectSpread$4({}, defaultStyles.overlay, {}, overlayStyles),
2479 content: _objectSpread$4({}, defaultStyles.content, {}, contentStyles)
2480 };
2481
2482 if (appElement) {
2483 Pane.setAppElement(appElement);
2484 } else {
2485 _Object$assign(rest, {
2486 ariaHideApp: false
2487 });
2488 }
2489
2490 return React.createElement(React.Fragment, null, React.createElement(GlobalPaneStyles, null), React.createElement(Pane, _extends({
2491 style: styles,
2492 closeTimeoutMS: closeTimeout,
2493 isOpen: isOpen,
2494 onAfterOpen: onAfterOpen,
2495 onRequestClose: onRequestClose,
2496 shouldCloseOnEsc: shouldCloseOnEsc,
2497 contentLabel: "Modal \"".concat(title, "\"")
2498 }, rest), React.createElement(Header$1, null, React.createElement(CloseLink, {
2499 onClick: onRequestClose
2500 }, closeIcon || React.createElement(Icon, {
2501 name: "remove",
2502 size: 34
2503 }), React.createElement(ScreenReaderText$1, null, closeIconScreenReaderText)), React.createElement(TitleWrapper, null, React.createElement(TitleText, {
2504 level: headingLevel,
2505 size: headingSize
2506 }, title), React.createElement(SubTitle, null, subTitle))), React.createElement(Content, null, children)));
2507}
2508SlidingPane.propTypes = process.env.NODE_ENV !== "production" ? {
2509 isOpen: PropTypes.bool.isRequired,
2510 title: PropTypes.any,
2511 subTitle: PropTypes.any,
2512 shouldCloseOnEsc: PropTypes.bool,
2513 onRequestClose: PropTypes.func,
2514 onAfterOpen: PropTypes.func,
2515 children: PropTypes.any.isRequired,
2516 from: PropTypes.oneOf(['left', 'right', 'bottom']),
2517 closeIcon: PropTypes.any,
2518 closeIconScreenReaderText: PropTypes.string,
2519 headingLevel: Heading.propTypes.level,
2520 headingSize: Heading.propTypes.size,
2521 closeTimeout: PropTypes.number,
2522 overlayStyles: PropTypes.object,
2523 contentStyles: PropTypes.object,
2524
2525 /** selector of application element (e.g. #root), for hiding of
2526 main content for screenreaders when pane is open */
2527 appElement: PropTypes.string
2528} : {};
2529SlidingPane.defaultProps = {
2530 /* Timeout is in milliseconds */
2531 closeTimeout: 500,
2532 from: 'right',
2533 headingLevel: 2,
2534 headingSize: 3,
2535 shouldCloseOnEsc: true,
2536 title: undefined,
2537 subTitle: undefined,
2538 onRequestClose: _noop,
2539 onAfterOpen: _noop,
2540 closeIcon: undefined,
2541 closeIconScreenReaderText: 'Close',
2542 overlayStyles: {},
2543 contentStyles: {},
2544 appElement: undefined
2545};
2546
2547function _templateObject$k() {
2548 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border: 2px solid ", ";\n border-radius: ", ";\n box-sizing: border-box;\n color: ", ";\n cursor: pointer;\n display: block;\n font-family: inherit;\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n min-width: 100px;\n outline: none;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n text-align: center;\n text-decoration: none;\n text-transform: ", ";\n transition: background-color 150ms linear, color 150ms linear;\n white-space: nowrap;\n width: 100%;\n\n @media (min-width: ", ") {\n display: ", ";\n width: ", ";\n }\n\n &:focus,\n &:focus-within {\n box-shadow: 0 0 3px 3px ", ";\n }\n\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n &[disabled] {\n cursor: not-allowed;\n opacity: 0.65;\n\n > * {\n pointer-events: none;\n }\n }\n\n &[disabled]:hover {\n color: ", ";\n background-color: ", ";\n }\n"]);
2549
2550 _templateObject$k = function _templateObject() {
2551 return data;
2552 };
2553
2554 return data;
2555}
2556var StyledButton$3 = styled.button(_templateObject$k(), function (props) {
2557 return props.variant.bgColor;
2558}, function (props) {
2559 return props.variant.borderColor;
2560}, function (props) {
2561 return props.buttonSize.borderRadius;
2562}, function (props) {
2563 return props.variant.textColor;
2564}, function (props) {
2565 return props.buttonSize.fontSize;
2566}, function (props) {
2567 return props.buttonSize.fontWeight || 'normal';
2568}, function (props) {
2569 return props.buttonSize.lineHeight || props.theme.sizes.baseLineHeight;
2570}, function (props) {
2571 return props.buttonSize.paddingBottom;
2572}, function (props) {
2573 return props.buttonSize.paddingSides;
2574}, function (props) {
2575 return props.buttonSize.paddingSides;
2576}, function (props) {
2577 return props.buttonSize.paddingTop;
2578}, function (props) {
2579 return props.buttonSize.textTransform ? props.buttonSize.textTransform : 'none';
2580}, function (props) {
2581 return props.theme.screenSize.tablet;
2582}, function (props) {
2583 return props.block ? 'block' : 'inline-block';
2584}, function (props) {
2585 return props.block ? '100%' : 'auto';
2586}, function (props) {
2587 return props.theme.colors.inputFocus;
2588}, function (props) {
2589 return props.variant.hoverBgColor;
2590}, function (props) {
2591 return props.variant.hoverTextColor;
2592}, function (props) {
2593 return props.variant.activeBgColor;
2594}, function (props) {
2595 return props.variant.activeTextColor;
2596}, function (props) {
2597 return props.variant.textColor;
2598}, function (props) {
2599 return props.variant.bgColor;
2600});
2601var OutlineButton = React.forwardRef(function OutlineButton(props, ref) {
2602 var children = props.children,
2603 styleType = props.styleType,
2604 size = props.size,
2605 block = props.block,
2606 other = _objectWithoutProperties(props, ["children", "styleType", "size", "block"]);
2607
2608 var theme = useTheme();
2609 var buttonSize = theme.buttonStyles.outlineButton.size[size];
2610 var variant = theme.buttonStyles.outlineButton.variant[styleType];
2611 return React.createElement(StyledButton$3, _extends({
2612 ref: ref,
2613 block: block,
2614 buttonSize: buttonSize,
2615 variant: variant,
2616 type: "button"
2617 }, other), children);
2618});
2619OutlineButton.propTypes = process.env.NODE_ENV !== "production" ? {
2620 children: PropTypes.node.isRequired,
2621
2622 /** Select the color style of the button, types come from theme buttonStyles.outlineButton */
2623 styleType: PropTypes.string,
2624 size: PropTypes.oneOf(['lg', 'default', 'sm', 'xs']),
2625
2626 /** Make the button's width the size of it's parent container */
2627 block: PropTypes.bool
2628} : {};
2629OutlineButton.defaultProps = {
2630 styleType: 'default',
2631 block: false,
2632 size: 'default'
2633};
2634
2635function _templateObject2$9() {
2636 var data = _taggedTemplateLiteral(["\n ", ";\n"]);
2637
2638 _templateObject2$9 = function _templateObject2() {
2639 return data;
2640 };
2641
2642 return data;
2643}
2644
2645function _templateObject$l() {
2646 var data = _taggedTemplateLiteral(["\n .es-button__display {\n ", ";\n }\n"]);
2647
2648 _templateObject$l = function _templateObject() {
2649 return data;
2650 };
2651
2652 return data;
2653}
2654var buttonMixin = css(["background-color:", ";color:", ";"], function (props) {
2655 return props.isPressed ? props.variant.hoverBgColor : props.variant.bgColor;
2656}, function (props) {
2657 return props.isPressed ? props.variant.activeTextColor : props.variant.textColor;
2658});
2659var StyledButton$4 = styled(Button)(_templateObject$l(), buttonMixin);
2660var StyledOutlineButton = styled(OutlineButton)(_templateObject2$9(), buttonMixin);
2661
2662function ToggleButton(props) {
2663 var theme = useTheme();
2664
2665 var _useState = useState(props.isPressed),
2666 _useState2 = _slicedToArray(_useState, 2),
2667 isPressed = _useState2[0],
2668 setIsPressed = _useState2[1];
2669
2670 var prevPressedProp = useRef(props.isPressed);
2671
2672 if (prevPressedProp.current !== props.isPressed) {
2673 prevPressedProp.current = props.isPressed;
2674 setIsPressed(props.isPressed);
2675 }
2676
2677 function toggleButton(event) {
2678 setIsPressed(!isPressed);
2679 props.onClick(event);
2680 }
2681
2682 var styleType = props.styleType,
2683 size = props.size,
2684 block = props.block,
2685 isOutline = props.isOutline,
2686 buttonProps = _objectWithoutProperties(props, ["styleType", "size", "block", "isOutline"]);
2687
2688 var ToggleButtonType = isOutline ? StyledOutlineButton : StyledButton$4;
2689 var styles = isOutline ? theme.buttonStyles.outlineButton : theme.buttonStyles.button;
2690 return React.createElement(ToggleButtonType, _extends({}, buttonProps, {
2691 onClick: toggleButton,
2692 styleType: styleType,
2693 size: size,
2694 block: block,
2695 isOutline: isOutline,
2696 isPressed: isPressed,
2697 variant: styles.variant[styleType],
2698 "aria-pressed": isPressed
2699 }), props.children);
2700}
2701
2702ToggleButton.propTypes = process.env.NODE_ENV !== "production" ? {
2703 onClick: PropTypes.func.isRequired,
2704 children: PropTypes.node.isRequired,
2705 styleType: PropTypes.string,
2706 size: PropTypes.oneOf(['lg', 'default', 'sm', 'xs']),
2707 block: PropTypes.bool,
2708 isOutline: PropTypes.bool,
2709 isPressed: PropTypes.bool
2710} : {};
2711ToggleButton.defaultProps = {
2712 styleType: 'default',
2713 size: 'default',
2714 block: false,
2715 isOutline: false,
2716 isPressed: false
2717};
2718
2719var InlineContext = React.createContext(false);
2720
2721function _templateObject4$6() {
2722 var data = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: ", ";\n flex-wrap: wrap;\n"]);
2723
2724 _templateObject4$6 = function _templateObject4() {
2725 return data;
2726 };
2727
2728 return data;
2729}
2730
2731function _templateObject3$7() {
2732 var data = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding-bottom: ", ";\n padding-left: 11px;\n padding-right: 5px;\n padding-top: ", ";\n"]);
2733
2734 _templateObject3$7 = function _templateObject3() {
2735 return data;
2736 };
2737
2738 return data;
2739}
2740
2741function _templateObject2$a() {
2742 var data = _taggedTemplateLiteral(["\n margin-left: auto;\n margin-right: 4px;\n"]);
2743
2744 _templateObject2$a = function _templateObject2() {
2745 return data;
2746 };
2747
2748 return data;
2749}
2750
2751function _templateObject$m() {
2752 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n display: ", ";\n position: absolute;\n z-index: 999;\n"]);
2753
2754 _templateObject$m = function _templateObject() {
2755 return data;
2756 };
2757
2758 return data;
2759}
2760var StyledPanel = styled.div(_templateObject$m(), function (props) {
2761 return props.theme.colors.gray2;
2762}, function (props) {
2763 return props.isOpen ? 'block' : 'none';
2764});
2765var StyledDismissButton = styled(DismissButton)(_templateObject2$a());
2766var Header$2 = styled.header(_templateObject3$7(), function (props) {
2767 return props.hasHeaderContent ? '10px' : '0';
2768}, function (props) {
2769 return props.hasHeaderContent ? '5px' : '0';
2770});
2771var StyledChildrenContainer = styled.div(_templateObject4$6(), function (props) {
2772 return props.inline ? 'row' : 'column';
2773});
2774
2775function MenuPanel(props) {
2776 function onEscape(_ref) {
2777 var keyCode = _ref.keyCode;
2778
2779 if (keyCode === 27) {
2780 props.onClose();
2781 }
2782 }
2783
2784 useEffect(function () {
2785 document.addEventListener('keydown', onEscape);
2786 return function removeKeydownListener() {
2787 document.removeEventListener('keydown', onEscape);
2788 };
2789 });
2790
2791 var children = props.children,
2792 headerContent = props.headerContent,
2793 isOpen = props.isOpen,
2794 onClose = props.onClose,
2795 other = _objectWithoutProperties(props, ["children", "headerContent", "isOpen", "onClose"]);
2796
2797 var hasHeaderContent = !!headerContent;
2798 var inline = useContext(InlineContext);
2799 return React.createElement(StyledPanel, _extends({
2800 isOpen: isOpen
2801 }, other), React.createElement(Header$2, {
2802 hasHeaderContent: hasHeaderContent
2803 }, hasHeaderContent && React.createElement("span", null, headerContent), React.createElement(StyledDismissButton, {
2804 onClick: onClose
2805 })), React.createElement(StyledChildrenContainer, {
2806 inline: inline
2807 }, children));
2808}
2809
2810MenuPanel.propTypes = process.env.NODE_ENV !== "production" ? {
2811 children: PropTypes.any.isRequired,
2812 headerContent: PropTypes.node,
2813 isOpen: PropTypes.bool,
2814 onClose: PropTypes.func.isRequired
2815} : {};
2816MenuPanel.defaultProps = {
2817 headerContent: null,
2818 isOpen: false
2819};
2820
2821function _templateObject3$8() {
2822 var data = _taggedTemplateLiteral(["\n padding: 15px 20px 0px 20px;\n"]);
2823
2824 _templateObject3$8 = function _templateObject3() {
2825 return data;
2826 };
2827
2828 return data;
2829}
2830
2831function _templateObject2$b() {
2832 var data = _taggedTemplateLiteral(["\n padding-left: 10px;\n"]);
2833
2834 _templateObject2$b = function _templateObject2() {
2835 return data;
2836 };
2837
2838 return data;
2839}
2840
2841function _templateObject$n() {
2842 var data = _taggedTemplateLiteral(["\n padding-top: ", ";\n padding-bottom: ", ";\n border-bottom: ", ";\n"]);
2843
2844 _templateObject$n = function _templateObject() {
2845 return data;
2846 };
2847
2848 return data;
2849}
2850var StyledMenuSection = styled.section(_templateObject$n(), function (props) {
2851 return !props.isFirst && !props.inline && !props.isOnlySection ? '20px' : '0px';
2852}, function (props) {
2853 return props.isLast ? '0px' : '20px';
2854}, function (props) {
2855 return !props.isLast && !props.inline ? "1px solid ".concat(props.theme.colors.gray5) : 'none';
2856});
2857var StyledHeader = styled.header(_templateObject2$b());
2858var StyledChildrenContainer$1 = styled.section(_templateObject3$8());
2859
2860function MenuSection(props) {
2861 var title = props.title,
2862 children = props.children,
2863 isLast = props.isLast,
2864 isFirst = props.isFirst,
2865 isOnlySection = props.isOnlySection,
2866 other = _objectWithoutProperties(props, ["title", "children", "isLast", "isFirst", "isOnlySection"]);
2867
2868 var inline = useContext(InlineContext);
2869 return React.createElement(StyledMenuSection, _extends({
2870 isLast: isLast,
2871 isFirst: isFirst,
2872 inline: inline,
2873 isOnlySection: isOnlySection
2874 }, other), title && React.createElement(StyledHeader, {
2875 "aria-label": title
2876 }, title), children && React.createElement(StyledChildrenContainer$1, null, children));
2877}
2878
2879MenuSection.propTypes = process.env.NODE_ENV !== "production" ? {
2880 title: PropTypes.string,
2881 children: PropTypes.any,
2882 isLast: PropTypes.bool,
2883 isFirst: PropTypes.bool,
2884 isOnlySection: PropTypes.bool
2885} : {};
2886MenuSection.defaultProps = {
2887 title: undefined,
2888 children: undefined,
2889 isLast: false,
2890 isFirst: false,
2891 isOnlySection: false
2892};
2893
2894function _templateObject$o() {
2895 var data = _taggedTemplateLiteral(["\n background-color: black;\n bottom: 0;\n cursor: auto;\n left: 0;\n opacity: 0.5;\n position: fixed;\n right: 0;\n top: 0;\n z-index: auto;\n display: ", ";\n"]);
2896
2897 _templateObject$o = function _templateObject() {
2898 return data;
2899 };
2900
2901 return data;
2902}
2903var Backdrop$1 = styled.div(_templateObject$o(), function (props) {
2904 return props.isMenuOpen ? 'inherit' : 'none';
2905});
2906
2907function Menu(props) {
2908 var _useState = useState(false),
2909 _useState2 = _slicedToArray(_useState, 2),
2910 isMenuOpen = _useState2[0],
2911 setIsMenuOpen = _useState2[1];
2912
2913 function toggleMenu() {
2914 setIsMenuOpen(!isMenuOpen);
2915 }
2916
2917 function closeMenu() {
2918 setIsMenuOpen(false);
2919 }
2920
2921 var inline = props.inline,
2922 children = props.children,
2923 buttonContent = props.buttonContent,
2924 openButtonType = props.openButtonType,
2925 rootClose = props.rootClose,
2926 hasBackdrop = props.hasBackdrop,
2927 headerContent = props.headerContent,
2928 other = _objectWithoutProperties(props, ["inline", "children", "buttonContent", "openButtonType", "rootClose", "hasBackdrop", "headerContent"]);
2929
2930 return React.createElement(RootCloseWrapper, {
2931 onRootClose: closeMenu,
2932 disabled: !rootClose
2933 }, React.createElement("div", other, hasBackdrop && React.createElement(Backdrop$1, {
2934 isMenuOpen: isMenuOpen,
2935 onClick: closeMenu
2936 }), React.createElement(ToggleButton, {
2937 onClick: toggleMenu,
2938 isPressed: isMenuOpen,
2939 styleType: openButtonType,
2940 "aria-expanded": isMenuOpen
2941 }, buttonContent), React.createElement(InlineContext.Provider, {
2942 value: inline
2943 }, React.createElement(MenuPanel, {
2944 headerContent: headerContent,
2945 isOpen: isMenuOpen,
2946 onClose: closeMenu
2947 }, children))));
2948}
2949
2950Menu.MenuSection = MenuSection;
2951Menu.propTypes = process.env.NODE_ENV !== "production" ? {
2952 children: PropTypes.any.isRequired,
2953 buttonContent: PropTypes.any.isRequired,
2954 openButtonType: PropTypes.string,
2955 rootClose: PropTypes.bool,
2956 inline: PropTypes.bool,
2957 hasBackdrop: PropTypes.bool,
2958 headerContent: PropTypes.node
2959} : {};
2960Menu.defaultProps = {
2961 rootClose: false,
2962 openButtonType: 'default',
2963 inline: false,
2964 hasBackdrop: false,
2965 headerContent: undefined
2966};
2967
2968function _templateObject$p() {
2969 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border: 1px solid ", ";\n box-shadow: ", ";\n color: ", ";\n display: inline-block;\n font-size: inherit;\n line-height: ", ";\n padding: 10px;\n text-align: left;\n z-index: 1;\n\n &:focus {\n outline: none;\n }\n\n @media (min-width: ", ") {\n background-color: ", ";\n border: ", ";\n border-bottom-color: ", ";\n box-shadow: none;\n color: ", ";\n padding: 10px 15px;\n margin: 0 2px 0px 0;\n\n &:hover,\n &:focus {\n background-color: ", ";\n }\n }\n"]);
2970
2971 _templateObject$p = function _templateObject() {
2972 return data;
2973 };
2974
2975 return data;
2976}
2977var TabButton = styled.button(_templateObject$p(), function (props) {
2978 return props.selected ? props.theme.colors.white : props.theme.colors.gray2;
2979}, function (props) {
2980 return props.theme.colors.gray4;
2981}, function (props) {
2982 return props.selected ? '0 6px 12px rgba(0, 0, 0, 0.175)' : 'none';
2983}, function (props) {
2984 return props.selected ? props.theme.colors.black : props.theme.colors.primary;
2985}, function (props) {
2986 return props.theme.sizes.baseLineHeight;
2987}, function (props) {
2988 return props.theme.screenSize.desktop;
2989}, function (props) {
2990 return props.theme.colors.white;
2991}, function (props) {
2992 return props.selected ? "1px solid ".concat(props.theme.colors.gray4) : '1px solid transparent';
2993}, function (props) {
2994 return props.selected ? ' transparent' : "".concat(props.theme.colors.gray4);
2995}, function (props) {
2996 return props.selected ? props.theme.colors.black : props.theme.colors.primary;
2997}, function (props) {
2998 return props.selected ? props.theme.colors.white : props.theme.colors.gray2;
2999});
3000var AriaAnnouncer = screenReaderOnly('div');
3001
3002function Tab(_ref) {
3003 var _context;
3004
3005 var name = _ref.name,
3006 selected = _ref.selected,
3007 action = _ref.action,
3008 children = _ref.children,
3009 simpleName = _ref.simpleName,
3010 announcerText = _ref.announcerText,
3011 props = _objectWithoutProperties(_ref, ["name", "selected", "action", "children", "simpleName", "announcerText"]);
3012
3013 return React.createElement(TabButton, _extends({
3014 onClick: function onClick() {
3015 return action(name, children, simpleName, announcerText);
3016 },
3017 selected: selected,
3018 "aria-label": "".concat(simpleName || name, " tab"),
3019 "aria-selected": selected,
3020 role: "tab"
3021 }, props), selected && (simpleName.length > 0 || announcerText.length > 0) && React.createElement(AriaAnnouncer, {
3022 id: "announcer",
3023 "aria-live": "assertive"
3024 }, _concatInstanceProperty(_context = "".concat(simpleName, " ")).call(_context, announcerText)), name);
3025}
3026
3027Tab.propTypes = process.env.NODE_ENV !== "production" ? {
3028 /**
3029 * The name of the tab, and the displayed value
3030 */
3031 name: PropTypes.node.isRequired,
3032
3033 /**
3034 * Whether the tab is selected and should be rendered to appear selected.
3035 */
3036 selected: PropTypes.bool,
3037
3038 /**
3039 * The function to call when the tab is clicked
3040 */
3041 action: PropTypes.func,
3042
3043 /**
3044 * Children to be rendered in the TabContent area.
3045 */
3046 children: PropTypes.node,
3047
3048 /**
3049 * A simpler representation for screen readers.
3050 */
3051 simpleName: PropTypes.string,
3052
3053 /*
3054 * Additional text to be read after the simple name
3055 */
3056 announcerText: PropTypes.string
3057} : {};
3058Tab.defaultProps = {
3059 selected: false,
3060 action: _noop,
3061 children: undefined,
3062 simpleName: '',
3063 announcerText: ''
3064};
3065
3066function _templateObject2$c() {
3067 var data = _taggedTemplateLiteral(["\n margin-top: -1px;\n background-color: ", ";\n border-top: 1px solid ", ";\n"]);
3068
3069 _templateObject2$c = function _templateObject2() {
3070 return data;
3071 };
3072
3073 return data;
3074}
3075
3076function _templateObject$q() {
3077 var data = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n font-size: inherit;\n overflow: hidden;\n @media (max-width: ", ") {\n width: 100%;\n }\n @media (min-width: ", ") {\n flex-direction: row;\n justify-content: flex-start;\n }\n"]);
3078
3079 _templateObject$q = function _templateObject() {
3080 return data;
3081 };
3082
3083 return data;
3084}
3085var TabList = styled.div(_templateObject$q(), function (props) {
3086 return props.theme.screenSize.desktop;
3087}, function (props) {
3088 return props.theme.screenSize.desktop;
3089});
3090var TabContent = styled.div(_templateObject2$c(), function (props) {
3091 return props.theme.colors.white;
3092}, function (props) {
3093 return props.theme.colors.gray4;
3094});
3095
3096function TabPanel(props) {
3097 var _context;
3098
3099 var children = props.children,
3100 selectedKey = props.selectedKey,
3101 tabChanged = props.tabChanged,
3102 canTabChange = props.canTabChange;
3103
3104 var _useState = useState(selectedKey),
3105 _useState2 = _slicedToArray(_useState, 2),
3106 value = _useState2[0],
3107 setValue = _useState2[1];
3108
3109 var selectedIndex = _findIndex(React.Children.toArray(children), function (child) {
3110 var key = selectedKey || value || value.key;
3111 return child.props.name.key ? child.props.name.key === key : child.props.name === key;
3112 });
3113
3114 if (selectedIndex < 0) {
3115 selectedIndex = 0;
3116 }
3117
3118 var elements = _mapInstanceProperty(_context = React.Children).call(_context, children, function (child, index) {
3119 return React.cloneElement(child, {
3120 selected: index === selectedIndex,
3121 action: function action(header) {
3122 var canChange = canTabChange(header);
3123
3124 if (canChange) {
3125 setValue(header);
3126 tabChanged(header);
3127 }
3128 }
3129 });
3130 });
3131
3132 return React.createElement(React.Fragment, null, React.createElement(TabList, {
3133 role: "tablist"
3134 }, elements), React.createElement(TabContent, {
3135 role: "tabpanel"
3136 }, elements[selectedIndex].props.children));
3137}
3138
3139function childrenRule(props, propName, component) {
3140 var children = props[propName];
3141
3142 if (!_Array$isArray(children)) {
3143 children = [children];
3144 }
3145
3146 if (!_everyInstanceProperty(children).call(children, function (child) {
3147 return child.type.name === 'Tab' || child.type.target === Tab;
3148 })) {
3149 return new Error('Tab Panel only accepts Tabs as direct descendants.');
3150 }
3151
3152 return null;
3153}
3154
3155TabPanel.propTypes = process.env.NODE_ENV !== "production" ? {
3156 /**
3157 * Makes sure immediate children are Tabs, as we cannot render anything else in the tab heading.
3158 */
3159 children: childrenRule,
3160 selectedKey: PropTypes.any,
3161
3162 /**
3163 * Callback run before the selected tab has changed. The callback is given the name of the tab that is active and returns whether the tab change event should fire.
3164 */
3165 canTabChange: PropTypes.func,
3166
3167 /**
3168 * Callback when the selected tab has changed. The callback is given the name of the tab that is active
3169 */
3170 tabChanged: PropTypes.func
3171} : {};
3172TabPanel.defaultProps = {
3173 children: undefined,
3174 selectedKey: '',
3175 tabChanged: _noop,
3176 canTabChange: function canTabChange() {
3177 return true;
3178 }
3179};
3180TabPanel.Tab = Tab;
3181
3182function _templateObject$r() {
3183 var data = _taggedTemplateLiteral(["\n > * {\n display: block;\n padding: 20px;\n\n &:nth-child(even) {\n background-color: ", ";\n }\n\n &:nth-child(odd) {\n background-color: ", ";\n }\n }\n"]);
3184
3185 _templateObject$r = function _templateObject() {
3186 return data;
3187 };
3188
3189 return data;
3190}
3191var StripedContainerWrapper = styled.div(_templateObject$r(), function (props) {
3192 return props.evenColor;
3193}, function (props) {
3194 return props.oddColor;
3195});
3196
3197function StripedContainer(props) {
3198 var _context;
3199
3200 var theme = useTheme();
3201 return React.createElement(StripedContainerWrapper, {
3202 oddColor: theme.colors.gray2,
3203 evenColor: theme.colors.gray4
3204 }, _mapInstanceProperty(_context = React.Children).call(_context, props.children, function (child) {
3205 return React.cloneElement(child);
3206 }));
3207}
3208
3209StripedContainer.propTypes = process.env.NODE_ENV !== "production" ? {
3210 children: PropTypes.node
3211} : {};
3212StripedContainer.defaultProps = {
3213 children: undefined
3214};
3215
3216function _templateObject4$7() {
3217 var data = _taggedTemplateLiteral([""]);
3218
3219 _templateObject4$7 = function _templateObject4() {
3220 return data;
3221 };
3222
3223 return data;
3224}
3225
3226function _templateObject3$9() {
3227 var data = _taggedTemplateLiteral([""]);
3228
3229 _templateObject3$9 = function _templateObject3() {
3230 return data;
3231 };
3232
3233 return data;
3234}
3235
3236function _templateObject2$d() {
3237 var data = _taggedTemplateLiteral([""]);
3238
3239 _templateObject2$d = function _templateObject2() {
3240 return data;
3241 };
3242
3243 return data;
3244}
3245
3246function _templateObject$s() {
3247 var data = _taggedTemplateLiteral(["\n border-collapse: collapse;\n border: 0;\n border-spacing: 0;\n margin: 0 0 25px 0;\n padding: 0;\n width: 100%;\n\n caption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: ", ";\n font-size: 1.3em;\n margin: 0.5em 0;\n text-align: left;\n }\n\n thead th {\n border-bottom: 2px solid ", ";\n }\n\n tbody tr:not(:first-child) {\n th,\n td {\n border-top: 1px solid ", ";\n }\n }\n\n th {\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma,\n sans-serif;\n font-weight: bold;\n line-height: ", ";\n padding: ", ";\n text-align: left;\n vertical-align: bottom;\n }\n\n td {\n line-height: ", ";\n padding: ", ";\n vertical-align: top;\n }\n\n && tbody {\n ", ";\n\n th {\n vertical-align: top;\n }\n }\n\n && tbody {\n ", ";\n }\n"]);
3248
3249 _templateObject$s = function _templateObject() {
3250 return data;
3251 };
3252
3253 return data;
3254}
3255var TableBase = styled.table(_templateObject$s(), function (props) {
3256 return props.theme.colors.gray8;
3257}, function (props) {
3258 return props.theme.colors.gray4;
3259}, function (props) {
3260 return props.theme.colors.gray4;
3261}, function (props) {
3262 return props.theme.sizes.baseLineHeight;
3263}, function (props) {
3264 return props.cellPadding;
3265}, function (props) {
3266 return props.theme.sizes.baseLineHeight;
3267}, function (props) {
3268 return props.cellPadding;
3269}, function (props) {
3270 return props.hasStripes && css(["tr:nth-of-type(odd){background-color:", ";}"], props.theme.colors.gray0);
3271}, function (props) {
3272 return props.hasHover && css(["tr:hover{background-color:", ";}"], props.theme.colors.gray1);
3273});
3274
3275function Table(props) {
3276 var isCondensed = props.isCondensed,
3277 isRoomy = props.isRoomy,
3278 rest = _objectWithoutProperties(props, ["isCondensed", "isRoomy"]);
3279
3280 var cellPadding = '8px';
3281 cellPadding = isCondensed ? '5px' : cellPadding;
3282 cellPadding = isRoomy ? '12px' : cellPadding;
3283 return React.createElement(TableBase, _extends({
3284 cellPadding: cellPadding
3285 }, rest));
3286} // kept to preserve backward-compatibility for now
3287
3288
3289var TableRow = styled.tr(_templateObject2$d());
3290var TableBodyCell = styled.td(_templateObject3$9());
3291var TableHeaderCell = styled.th(_templateObject4$7());
3292Table.Row = TableRow;
3293Table.Cell = TableBodyCell;
3294Table.HeaderCell = TableHeaderCell;
3295Table.propTypes = process.env.NODE_ENV !== "production" ? {
3296 /** adds a darker background to every other row */
3297 hasStripes: PropTypes.bool,
3298
3299 /** adds a hover effect to rows */
3300 hasHover: PropTypes.bool,
3301
3302 /** reduce cell padding for a smaller footprint */
3303 isCondensed: PropTypes.bool,
3304
3305 /** increase cell padding for more white space */
3306 isRoomy: PropTypes.bool
3307} : {};
3308Table.defaultProps = {
3309 hasStripes: false,
3310 hasHover: false,
3311 isCondensed: false,
3312 isRoomy: false
3313};
3314
3315function _templateObject$t() {
3316 var data = _taggedTemplateLiteral(["\n tbody {\n th {\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma,\n sans-serif;\n font-weight: normal;\n }\n }\n\n &&& {\n @media (max-width: ", ") {\n background-color: ", ";\n\n thead {\n border: none;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n }\n\n tr {\n background-color: ", ";\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);\n display: block;\n margin: 0.625em;\n padding: 0.35em;\n }\n\n td,\n tbody th {\n border-top: 1px solid ", ";\n display: flex;\n justify-content: space-between;\n padding: 0.625em;\n text-align: right;\n\n &:before {\n content: attr(data-label);\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma,\n sans-serif;\n font-weight: bold;\n margin-right: 2em;\n max-width: 25%;\n text-align: left;\n }\n\n &:first-child {\n border-top: 0;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n"]);
3317
3318 _templateObject$t = function _templateObject() {
3319 return data;
3320 };
3321
3322 return data;
3323}
3324var TableBase$1 = styled(Table)(_templateObject$t(), function (props) {
3325 return props.theme.screenSize.phone;
3326}, function (props) {
3327 return props.theme.colors.gray2;
3328}, function (props) {
3329 return props.theme.colors.white;
3330}, function (props) {
3331 return props.theme.colors.gray4;
3332});
3333
3334function ResponsiveTable(props) {
3335 return React.createElement(TableBase$1, props);
3336}
3337
3338var ValidationContext = React.createContext('default');
3339
3340function _templateObject$u() {
3341 var data = _taggedTemplateLiteral(["\n color: ", ";\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n margin-bottom: 25px;\n\n >[role=\"group\"] {\n margin-bottom: 0;\n }\n\n select {\n border-color: ", ";\n box-shadow: ", ";\n }\n\n input:focus,\n select:focus {\n border-color: ", ";\n box-shadow: ", ";\n }\n\n ", "\n }\n\n ", ";\n"]);
3342
3343 _templateObject$u = function _templateObject() {
3344 return data;
3345 };
3346
3347 return data;
3348}
3349var FlexControl = styled.div(_templateObject$u(), function (props) {
3350 return props.textColor;
3351}, function (props) {
3352 return props.borderColor;
3353}, function (props) {
3354 return props.boxShadow;
3355}, function (props) {
3356 return props.focusBorderColor;
3357}, function (props) {
3358 return props.focusBoxShadow;
3359}, function (props) {
3360 return props.hasValidationBorder && props.validationState !== 'default' && css(["border-bottom:2px solid ", ";box-shadow:inset 0 7px 6px -6px ", ";padding:15px ", ";margin-left:-", ";margin-right:-", ";"], props.theme.colors.gray4, props.textColor, props.borderOffset, props.borderOffset, props.borderOffset);
3361}, function (props) {
3362 return props.layoutOrientation === 'inline' && css(["@media (min-width:", "){align-items:baseline;flex-direction:row;}"], props.theme.screenSize.tablet);
3363});
3364
3365function Control(props) {
3366 var validationState = props.validationState,
3367 hasValidationBorder = props.hasValidationBorder,
3368 orientation = props.orientation,
3369 borderOffset = props.borderOffset,
3370 children = props.children,
3371 other = _objectWithoutProperties(props, ["validationState", "hasValidationBorder", "orientation", "borderOffset", "children"]);
3372
3373 var theme = useTheme();
3374 var textColor = theme.validationTextColor[validationState];
3375 return React.createElement(OrientationContext.Provider, {
3376 value: orientation
3377 }, React.createElement(FlexControl, _extends({
3378 textColor: textColor,
3379 borderOffset: borderOffset,
3380 validationState: validationState
3381 }, theme.validationInputColor[validationState], {
3382 layoutOrientation: orientation,
3383 hasValidationBorder: hasValidationBorder
3384 }, other), React.createElement(ValidationContext.Provider, {
3385 value: validationState
3386 }, children)));
3387}
3388
3389Control.propTypes = process.env.NODE_ENV !== "production" ? {
3390 orientation: PropTypes.oneOf(['stacked', 'inline']),
3391 validationState: PropTypes.oneOf(['default', 'success', 'warning', 'danger']),
3392
3393 /** Apply a top/bottom validation border to a control (usually checkbox/radios) */
3394 hasValidationBorder: PropTypes.bool,
3395
3396 /** Set the border offset to match container padding */
3397 borderOffset: PropTypes.string,
3398 children: PropTypes.node
3399} : {};
3400Control.defaultProps = {
3401 orientation: 'stacked',
3402 validationState: 'default',
3403 hasValidationBorder: false,
3404 borderOffset: '15px',
3405 children: null
3406};
3407
3408function _templateObject2$e() {
3409 var data = _taggedTemplateLiteral(["\n align-items: center;\n color: inherit;\n display: inline-flex;\n margin-top: 5px;\n margin-bottom: 10px;\n width: 100%;\n"]);
3410
3411 _templateObject2$e = function _templateObject2() {
3412 return data;
3413 };
3414
3415 return data;
3416}
3417
3418function _templateObject$v() {
3419 var data = _taggedTemplateLiteral(["\n align-self: flex-start;\n font-size: 35px;\n margin-right: 5px;\n"]);
3420
3421 _templateObject$v = function _templateObject() {
3422 return data;
3423 };
3424
3425 return data;
3426}
3427var ValidationIcon = styled(Icon)(_templateObject$v());
3428var HelpText = styled.div(_templateObject2$e());
3429
3430function AdditionalHelp(_ref) {
3431 var children = _ref.children,
3432 hasValidationIcon = _ref.hasValidationIcon,
3433 props = _objectWithoutProperties(_ref, ["children", "hasValidationIcon"]);
3434
3435 var theme = useTheme();
3436 var validationState = React.useContext(ValidationContext);
3437 return React.createElement(HelpText, props, hasValidationIcon && children && validationState !== 'default' && React.createElement(ValidationIcon, {
3438 "aria-hidden": "true",
3439 name: theme.validationIconName[validationState]
3440 }), children);
3441}
3442
3443AdditionalHelp.propTypes = process.env.NODE_ENV !== "production" ? {
3444 children: PropTypes.any,
3445
3446 /** use to show or hide an associated validation icon */
3447 hasValidationIcon: PropTypes.bool
3448} : {};
3449AdditionalHelp.defaultProps = {
3450 children: undefined,
3451 hasValidationIcon: true
3452};
3453
3454function _templateObject$w() {
3455 var data = _taggedTemplateLiteral(["\n color: ", ";\n cursor: pointer;\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: ", ";\n font-weight: bold;\n line-height: ", ";\n margin-bottom: 5px;\n display: inline-block;\n\n &[disabled] {\n cursor: not-allowed;\n }\n\n @media (min-width: ", ") {\n margin-right: 20px;\n }\n"]);
3456
3457 _templateObject$w = function _templateObject() {
3458 return data;
3459 };
3460
3461 return data;
3462}
3463var Label = styled.label(_templateObject$w(), function (props) {
3464 return props.theme.colors.gray9;
3465}, function (props) {
3466 return props.theme.sizes.baseFontSize;
3467}, function (props) {
3468 return props.theme.sizes.baseLineHeight;
3469}, function (props) {
3470 return props.theme.screenSize.tablet;
3471});
3472
3473function _templateObject$x() {
3474 var data = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: 2px;\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n font-size: ", ";\n font-weight: normal;\n height: 39px;\n line-height: ", ";\n min-width: 0;\n padding: 6px 12px;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n width: 100%;\n\n &:focus {\n border-color: ", ";\n box-shadow: ", ";\n outline: 0;\n }\n\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n\n &:read-only {\n background-color: ", ";\n cursor: text;\n }\n"]);
3475
3476 _templateObject$x = function _templateObject() {
3477 return data;
3478 };
3479
3480 return data;
3481}
3482var InputBase = styled.input(_templateObject$x(), function (props) {
3483 return props.borderColor;
3484}, function (props) {
3485 return props.boxShadow;
3486}, function (props) {
3487 return props.theme.colors.black;
3488}, function (props) {
3489 return props.theme.sizes.baseFontSize;
3490}, function (props) {
3491 return props.theme.sizes.baseLineHeight;
3492}, function (props) {
3493 return props.focusBorderColor;
3494}, function (props) {
3495 return props.focusBoxShadow;
3496}, function (props) {
3497 return props.theme.colors.gray2;
3498}, function (props) {
3499 return props.theme.colors.gray2;
3500});
3501
3502function _templateObject4$8() {
3503 var data = _taggedTemplateLiteral(["\n display: flex;\n"]);
3504
3505 _templateObject4$8 = function _templateObject4() {
3506 return data;
3507 };
3508
3509 return data;
3510}
3511
3512function _templateObject3$a() {
3513 var data = _taggedTemplateLiteral(["\n border-bottom-left-radius: 0;\n border-left: none;\n border-top-left-radius: 0;\n"]);
3514
3515 _templateObject3$a = function _templateObject3() {
3516 return data;
3517 };
3518
3519 return data;
3520}
3521
3522function _templateObject2$f() {
3523 var data = _taggedTemplateLiteral(["\n border-bottom-right-radius: 0;\n border-right: none;\n border-top-right-radius: 0;\n"]);
3524
3525 _templateObject2$f = function _templateObject2() {
3526 return data;
3527 };
3528
3529 return data;
3530}
3531
3532function _templateObject$y() {
3533 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border: 1px solid\n ", ";\n border-radius: ", ";\n box-sizing: border-box;\n color: ", ";\n display: flex;\n flex-direction: column;\n height: 39px;\n justify-content: center;\n line-height: 1;\n margin: 0;\n outline: 0;\n padding: 6px 11px;\n"]);
3534
3535 _templateObject$y = function _templateObject() {
3536 return data;
3537 };
3538
3539 return data;
3540}
3541var defaultBorderRadius = '2px';
3542var AddOn = styled.button(_templateObject$y(), function (props) {
3543 return props.addOnBgColor;
3544}, function (props) {
3545 return props.addOnBgColor === props.theme.colors.gray3 ? props.theme.colors.gray5 : props.addOnBgColor;
3546}, defaultBorderRadius, function (props) {
3547 return props.addOnTextColor;
3548});
3549var Prepend = styled(AddOn)(_templateObject2$f());
3550var Append = styled(AddOn)(_templateObject3$a());
3551var InputWrapper = styled.div(_templateObject4$8());
3552
3553function _templateObject$z() {
3554 var data = _taggedTemplateLiteral(["\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n border-top-left-radius: ", ";\n border-top-right-radius: ", ";\n display: table-cell;\n -webkit-appearance: none;\n"]);
3555
3556 _templateObject$z = function _templateObject() {
3557 return data;
3558 };
3559
3560 return data;
3561}
3562var defaultBorderRadius$1 = '2px';
3563var TextboxBase = styled(InputBase)(_templateObject$z(), function (props) {
3564 return props.hasPrepend ? '0' : defaultBorderRadius$1;
3565}, function (props) {
3566 return props.hasAppend ? '0' : defaultBorderRadius$1;
3567}, function (props) {
3568 return props.hasPrepend ? '0' : defaultBorderRadius$1;
3569}, function (props) {
3570 return props.hasAppend ? '0' : defaultBorderRadius$1;
3571});
3572var Textbox = React.forwardRef(function Textbox(props, ref) {
3573 var prependIconName = props.prependIconName,
3574 appendIconName = props.appendIconName,
3575 additionalTextProps = _objectWithoutProperties(props, ["prependIconName", "appendIconName"]);
3576
3577 var theme = useTheme();
3578 var validationState = React.useContext(ValidationContext);
3579 var inputRef = React.useRef();
3580 React.useImperativeHandle(ref, function () {
3581 return inputRef.current;
3582 });
3583 var hasPrepend = !!prependIconName;
3584 var hasAppend = !!appendIconName;
3585 var hasValidationState = validationState !== 'default';
3586 var addOnTextColor = hasValidationState ? theme.colors.white : theme.colors.gray8;
3587 var addOnBgColor = hasValidationState ? theme.validationTextColor[validationState] : theme.colors.gray3;
3588
3589 function focusInput() {
3590 inputRef.current.focus();
3591 }
3592
3593 return React.createElement(InputWrapper, null, hasPrepend && React.createElement(Prepend, {
3594 addOnTextColor: addOnTextColor,
3595 addOnBgColor: addOnBgColor,
3596 "aria-hidden": "true",
3597 onClick: focusInput,
3598 type: "button"
3599 }, React.createElement(Icon, {
3600 "aria-hidden": "true",
3601 name: prependIconName,
3602 size: 18
3603 })), React.createElement(TextboxBase, _extends({
3604 hasAppend: hasAppend,
3605 hasPrepend: hasPrepend,
3606 ref: inputRef
3607 }, additionalTextProps, theme.validationInputColor[validationState])), hasAppend && React.createElement(Append, {
3608 addOnTextColor: addOnTextColor,
3609 addOnBgColor: addOnBgColor,
3610 "aria-hidden": "true",
3611 onClick: focusInput,
3612 type: "button"
3613 }, React.createElement(Icon, {
3614 "aria-hidden": "true",
3615 name: appendIconName,
3616 size: 18
3617 })));
3618});
3619Textbox.propTypes = process.env.NODE_ENV !== "production" ? {
3620 /** Content to prepend input box with */
3621 prependIconName: PropTypes.string,
3622
3623 /** Content to append to input box */
3624 appendIconName: PropTypes.string
3625} : {};
3626Textbox.defaultProps = {
3627 prependIconName: undefined,
3628 appendIconName: undefined
3629};
3630
3631function _templateObject$A() {
3632 var data = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: 2px;\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n font-size: ", ";\n font-weight: normal;\n line-height: ", ";\n min-width: 0;\n padding: 6px 12px;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n\n &:focus {\n border-color: ", ";\n box-shadow: ", ";\n outline: 0;\n }\n\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n\n &:read-only {\n background-color: ", ";\n cursor: text;\n }\n"]);
3633
3634 _templateObject$A = function _templateObject() {
3635 return data;
3636 };
3637
3638 return data;
3639}
3640var TextareaBase = styled.textarea(_templateObject$A(), function (props) {
3641 return props.borderColor;
3642}, function (props) {
3643 return props.boxShadow;
3644}, function (props) {
3645 return props.theme.colors.black;
3646}, function (props) {
3647 return props.theme.sizes.baseFontSize;
3648}, function (props) {
3649 return props.theme.sizes.baseLineHeight;
3650}, function (props) {
3651 return props.focusBorderColor;
3652}, function (props) {
3653 return props.focusBoxShadow;
3654}, function (props) {
3655 return props.theme.colors.gray2;
3656}, function (props) {
3657 return props.theme.colors.gray2;
3658});
3659var Textarea = React.forwardRef(function Textarea(props, ref) {
3660 var theme = useTheme();
3661 var validationState = React.useContext(ValidationContext);
3662 return React.createElement(TextareaBase, _extends({
3663 ref: ref
3664 }, props, theme.validationInputColor[validationState]));
3665});
3666
3667var inputMask = {
3668 date: {
3669 mask: [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/],
3670 pipe: createautoCorrectedDatePipe('mm/dd/yyyy'),
3671 showMask: false,
3672 keepCharPositions: true,
3673 placeholderChar: "\u2000",
3674 title: 'Enter month, day, and 4-digit year'
3675 },
3676 dollar: {
3677 mask: createNumberMask({
3678 prefix: '$'
3679 })
3680 },
3681 phone: {
3682 mask: ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/],
3683 showMask: false,
3684 keepCharPositions: true,
3685 placeholderChar: "\u2000",
3686 title: 'Enter area code and phone number'
3687 },
3688 ssnum: {
3689 mask: [/\d/, /\d/, /\d/, '-', /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/],
3690 showMask: false,
3691 keepCharPositions: true,
3692 placeholderChar: "\u2000",
3693 title: 'Enter 9-digit social security number'
3694 },
3695 zip: {
3696 mask: [/\d/, /\d/, /\d/, /\d/, /\d/],
3697 guide: false,
3698 title: 'Enter 5-digit zip code'
3699 }
3700};
3701
3702var MaskedTextbox = React.forwardRef(function MaskedTextbox(props, ref) {
3703 var maskType = props.maskType,
3704 customMask = props.customMask,
3705 additionalTextProps = _objectWithoutProperties(props, ["maskType", "customMask"]);
3706
3707 var inputRef = React.useRef();
3708 React.useImperativeHandle(ref, function () {
3709 return inputRef.current;
3710 });
3711 var maskArgs = maskType === 'custom' && customMask ? customMask : inputMask[maskType];
3712 return React.createElement(MaskedInput, _extends({
3713 render: function render(maskRef, textboxProps) {
3714 var setRef = function setRef(inputElement) {
3715 // we need to set both the mask ref and the passed in ref
3716 maskRef(inputElement);
3717 inputRef.current = inputElement;
3718 };
3719
3720 return React.createElement(Textbox, _extends({
3721 ref: setRef
3722 }, textboxProps));
3723 }
3724 }, maskArgs, {
3725 type: "text"
3726 }, additionalTextProps));
3727});
3728MaskedTextbox.propTypes = process.env.NODE_ENV !== "production" ? {
3729 /** Sets a mask type on the input */
3730 maskType: PropTypes.oneOf(['date', 'dollar', 'phone', 'ssnum', 'zip', 'custom']).isRequired,
3731
3732 /** Provide a custom mask */
3733 customMask: PropTypes.shape({
3734 mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func]).isRequired,
3735 guide: PropTypes.bool,
3736 placeholderChar: PropTypes.string,
3737 keepCharPositions: PropTypes.bool,
3738 pipe: PropTypes.func,
3739 showMask: PropTypes.bool
3740 })
3741} : {};
3742MaskedTextbox.defaultProps = {
3743 customMask: undefined
3744};
3745
3746function _templateObject$B() {
3747 var data = _taggedTemplateLiteral(["\n .es-button__display {\n background-color: ", ";\n box-shadow: 0 4px 0 0 ", ";\n color: ", ";\n transition: background-color 120ms linear, color 120ms linear;\n }\n\n &:hover .es-button__display {\n background-color: ", ";\n box-shadow: 0 4px 0 0 ", ";\n color: ", ";\n }\n"]);
3748
3749 _templateObject$B = function _templateObject() {
3750 return data;
3751 };
3752
3753 return data;
3754}
3755var StyledButton$5 = styled(Button)(_templateObject$B(), function (props) {
3756 return props.defaultStyle.bgColor;
3757}, function (props) {
3758 return props.defaultStyle.boxShadowColor;
3759}, function (props) {
3760 return props.defaultStyle.textColor;
3761}, function (props) {
3762 return props.hoverStyle.bgColor;
3763}, function (props) {
3764 return props.hoverStyle.hoverBgColor;
3765}, function (props) {
3766 return props.hoverStyle.textColor;
3767});
3768var ActionButton = React.forwardRef(function ActionButton(props, ref) {
3769 var children = props.children,
3770 styleType = props.styleType,
3771 other = _objectWithoutProperties(props, ["children", "styleType"]);
3772
3773 var theme = useTheme();
3774 var defaultStyle = theme.buttonStyles.button.variant.default;
3775 var hoverStyle = theme.buttonStyles.button.variant[styleType];
3776 return React.createElement(StyledButton$5, _extends({
3777 ref: ref,
3778 defaultStyle: defaultStyle,
3779 hoverStyle: hoverStyle,
3780 styleType: styleType,
3781 type: "button"
3782 }, other), children);
3783});
3784ActionButton.propTypes = process.env.NODE_ENV !== "production" ? {
3785 children: PropTypes.node.isRequired,
3786
3787 /** Select the color style of the button, types come from theme buttonStyles.button */
3788 styleType: PropTypes.string
3789} : {};
3790ActionButton.defaultProps = {
3791 styleType: 'primary'
3792};
3793
3794var Caret = styled.span(["border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px dashed;display:inline-block;height:0;margin-left:5px;vertical-align:middle;width:0;"]);
3795var ButtonPanel = styled.div(["background-color:", ";border:1px solid ", ";display:", ";margin-top:3px;position:relative;z-index:999;@media (min-width:", "){position:absolute;}"], function (props) {
3796 return props.theme.colors.white;
3797}, function (props) {
3798 return props.theme.colors.gray3;
3799}, function (props) {
3800 return props.isOpen ? 'block' : 'none';
3801}, function (props) {
3802 return props.theme.screenSize.tablet;
3803});
3804var ButtonPanelChildrenContainer = styled.div(["display:flex;flex-direction:column;"]);
3805var StyledButtonLink = styled(LinkButton)(["color:black;margin-bottom:0px;text-align:left;text-decoration:none;padding:10px 20px;&:active,&:focus,&:hover{background-color:", ";color:white;}"], function (props) {
3806 return props.theme.colors.primary;
3807});
3808var TAB_KEY_CODE = 9;
3809var UP_ARROW_CODE = 38;
3810var DOWN_ARROW_CODE = 40;
3811
3812function getFocusables(node) {
3813 var focusableElements = node.querySelectorAll('button');
3814 var firstFocusable = focusableElements[0];
3815 var lastFocusable = focusableElements[focusableElements.length - 1];
3816 return {
3817 focusableElements: focusableElements,
3818 firstFocusable: firstFocusable,
3819 lastFocusable: lastFocusable
3820 };
3821}
3822
3823function isCurrentlyActive(node) {
3824 return document.activeElement === node;
3825}
3826
3827function focusTrap(node) {
3828 var _getFocusables = getFocusables(node),
3829 firstFocusable = _getFocusables.firstFocusable,
3830 lastFocusable = _getFocusables.lastFocusable;
3831
3832 function handleTabFocus(event) {
3833 if (event.key === 'Tab' || event.keyCode === TAB_KEY_CODE) {
3834 if (event.shiftKey) {
3835 if (isCurrentlyActive(firstFocusable)) {
3836 lastFocusable.focus();
3837 event.preventDefault();
3838 }
3839 } else if (isCurrentlyActive(lastFocusable)) {
3840 firstFocusable.focus();
3841 event.preventDefault();
3842 }
3843 }
3844 }
3845
3846 node.addEventListener('keydown', handleTabFocus);
3847 return function removeKeydownListener() {
3848 node.removeEventListener('keydown', handleTabFocus);
3849 };
3850}
3851
3852function arrowMovement(node) {
3853 var _getFocusables2 = getFocusables(node),
3854 focusableElements = _getFocusables2.focusableElements,
3855 firstFocusable = _getFocusables2.firstFocusable,
3856 lastFocusable = _getFocusables2.lastFocusable;
3857
3858 var focusables = _toConsumableArray(focusableElements);
3859
3860 function handleArrowMovementKeys(event) {
3861 if (event.keyCode === UP_ARROW_CODE) {
3862 if (isCurrentlyActive(firstFocusable)) {
3863 lastFocusable.focus();
3864 event.preventDefault();
3865 } else {
3866 var index = _indexOfInstanceProperty(focusables).call(focusables, document.activeElement);
3867
3868 focusables[index - 1].focus();
3869 event.preventDefault();
3870 }
3871 }
3872
3873 if (event.keyCode === DOWN_ARROW_CODE) {
3874 if (isCurrentlyActive(lastFocusable)) {
3875 firstFocusable.focus();
3876 event.preventDefault();
3877 } else {
3878 var _index = _indexOfInstanceProperty(focusables).call(focusables, document.activeElement);
3879
3880 focusableElements[_index + 1].focus();
3881
3882 event.preventDefault();
3883 }
3884 }
3885 }
3886
3887 node.addEventListener('keydown', handleArrowMovementKeys);
3888 return function removeArrowMovementListener() {
3889 node.removeEventListener('keydown', handleArrowMovementKeys);
3890 };
3891}
3892
3893var _StyledDiv = styled.div(["display:", ";flex-direction:column;position:relative;"], function (p) {
3894 return p._css;
3895});
3896
3897var _StyledDiv2 = styled.div(["position:relative;"]);
3898
3899function DropdownButton(props) {
3900 var _useState = useState(props.buttonValue),
3901 _useState2 = _slicedToArray(_useState, 2),
3902 buttonValue = _useState2[0],
3903 setButtonValue = _useState2[1];
3904
3905 var _useState3 = useState(false),
3906 _useState4 = _slicedToArray(_useState3, 2),
3907 isOpen = _useState4[0],
3908 setIsOpen = _useState4[1];
3909
3910 var initialRender = useRef(true);
3911 var buttonDropdown = useRef();
3912 var triggerButton = useRef();
3913 var panelId = useUniqueId(props.id);
3914 useEffect(function () {
3915 var removeFocusTrapListener = focusTrap(buttonDropdown.current);
3916 var removeArrowMovementListener = arrowMovement(buttonDropdown.current);
3917 return function removeListeners() {
3918 removeFocusTrapListener();
3919 removeArrowMovementListener();
3920 };
3921 }, [isOpen]);
3922 useEffect(function () {
3923 if (!initialRender.current) {
3924 triggerButton.current.focus();
3925 }
3926
3927 initialRender.current = false;
3928 }, [isOpen]);
3929
3930 var toggleDropdown = function toggleDropdown() {
3931 return setIsOpen(!isOpen);
3932 };
3933
3934 function closeDropdown() {
3935 if (isOpen) {
3936 setIsOpen(false);
3937 }
3938 }
3939
3940 function handleDropdownItemClick(buttonProps) {
3941 var shouldCloseOnButtonClick = props.shouldCloseOnButtonClick,
3942 shouldUpdateButtonValue = props.shouldUpdateButtonValue;
3943 return function (event) {
3944 if (shouldUpdateButtonValue) {
3945 setButtonValue(buttonProps.children);
3946 }
3947
3948 if (shouldCloseOnButtonClick) {
3949 closeDropdown();
3950 }
3951
3952 buttonProps.onClick(event, buttonProps.name);
3953 };
3954 }
3955
3956 var rootClose = props.rootClose,
3957 children = props.children,
3958 manualButtonValue = props.manualButtonValue,
3959 styleType = props.styleType,
3960 inline = props.inline,
3961 otherProps = _objectWithoutProperties(props, ["rootClose", "children", "manualButtonValue", "styleType", "inline"]);
3962
3963 return React.createElement(RootCloseWrapper, {
3964 onRootClose: closeDropdown,
3965 disabled: !rootClose
3966 }, React.createElement(_StyledDiv, {
3967 ref: buttonDropdown,
3968 role: "combobox",
3969 "aria-controls": panelId,
3970 "aria-expanded": isOpen,
3971 "aria-haspopup": "listbox",
3972 _css: inline ? 'inline-flex' : 'block'
3973 }, React.createElement(Button, _extends({}, otherProps, {
3974 onClick: toggleDropdown,
3975 "aria-haspopup": "true",
3976 "aria-pressed": isOpen,
3977 ref: triggerButton,
3978 styleType: styleType
3979 }), manualButtonValue || buttonValue, React.createElement(Caret, null)), React.createElement(_StyledDiv2, null, React.createElement(ButtonPanel, {
3980 isOpen: isOpen,
3981 id: panelId
3982 }, React.createElement(ButtonPanelChildrenContainer, null, _mapInstanceProperty(Children).call(Children, children, function (child) {
3983 var onClickHandler = handleDropdownItemClick(child.props);
3984 var newProps = {
3985 onClick: onClickHandler,
3986 role: 'option'
3987 };
3988 return React.cloneElement(child, newProps);
3989 }))))));
3990}
3991
3992DropdownButton.Button = StyledButtonLink;
3993DropdownButton.propTypes = process.env.NODE_ENV !== "production" ? {
3994 /** Content shown in the button */
3995 buttonValue: PropTypes.any,
3996
3997 /**
3998 * Defines what value should be displayed on the button.
3999 * Overrides the stored state value, and renders shouldUpdateButtonValue
4000 * useless
4001 */
4002 manualButtonValue: PropTypes.node,
4003 children: PropTypes.any.isRequired,
4004
4005 /**
4006 * Defines if the buttons value should update to the last pressed,
4007 * childs value.
4008 */
4009 shouldUpdateButtonValue: PropTypes.bool,
4010
4011 /** Defines if the dropdown should close when any child button is clicked */
4012 shouldCloseOnButtonClick: PropTypes.bool,
4013
4014 /**
4015 * Defines whether the dropdown will close when any other element on the page is clicked.
4016 * Uses RootCloseWrapper from React-Overlay
4017 */
4018 rootClose: PropTypes.bool,
4019
4020 /** Select the color style of the button, types come from theme */
4021 styleType: PropTypes.string,
4022
4023 /** Display the dropdown button inline */
4024 inline: PropTypes.bool,
4025 id: PropTypes.string
4026} : {};
4027DropdownButton.defaultProps = {
4028 buttonValue: undefined,
4029 manualButtonValue: undefined,
4030 shouldUpdateButtonValue: false,
4031 shouldCloseOnButtonClick: false,
4032 styleType: 'default',
4033 rootClose: false,
4034 inline: false,
4035 id: undefined
4036};
4037
4038function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
4039
4040function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$5(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$5(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
4041
4042function _templateObject4$9() {
4043 var data = _taggedTemplateLiteral(["\n clip-path: inset(100%);\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n\n &:focus + div {\n background-color: ", ";\n color: ", ";\n }\n"]);
4044
4045 _templateObject4$9 = function _templateObject4() {
4046 return data;
4047 };
4048
4049 return data;
4050}
4051
4052function _templateObject3$b() {
4053 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border: 2px solid ", ";\n box-shadow: ", "\n ", ";\n box-sizing: border-box;\n color: ", ";\n margin: 0;\n\n &:active {\n margin: 0;\n }\n"]);
4054
4055 _templateObject3$b = function _templateObject3() {
4056 return data;
4057 };
4058
4059 return data;
4060}
4061
4062function _templateObject2$g() {
4063 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: transparent;\n box-shadow: 0 4px 0 0 ", ";\n color: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n margin-bottom: 4px;\n margin-top: 0;\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n text-align: center;\n text-transform: ", ";\n transition: background-color 250ms linear, color 250ms linear;\n user-select: none;\n\n &:active {\n background-color: ", ";\n box-shadow: 0 0 0 0 transparent;\n color: ", ";\n margin-bottom: 0;\n margin-top: 4px;\n }\n\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n\n &[disabled] {\n cursor: not-allowed;\n opacity: 0.65;\n\n > * {\n pointer-events: none;\n }\n }\n"]);
4064
4065 _templateObject2$g = function _templateObject2() {
4066 return data;
4067 };
4068
4069 return data;
4070}
4071
4072function _templateObject$C() {
4073 var data = _taggedTemplateLiteral(["\n flex-grow: 1;\n\n @media (min-width: ", ") {\n flex-grow: 0;\n min-width: ", ";\n }\n"]);
4074
4075 _templateObject$C = function _templateObject() {
4076 return data;
4077 };
4078
4079 return data;
4080}
4081var AnswerLabel = styled.label(_templateObject$C(), function (props) {
4082 return props.theme.screenSize.tablet;
4083}, function (props) {
4084 return props.itemWidth;
4085});
4086var AnswerDisplay = styled.div(_templateObject2$g(), function (props) {
4087 return props.buttonStyle.bgColor;
4088}, function (props) {
4089 return props.buttonStyle.boxShadowColor;
4090}, function (props) {
4091 return props.buttonStyle.textColor;
4092}, function (props) {
4093 return props.buttonSize.fontWeight || 'normal';
4094}, function (props) {
4095 return props.buttonSize.fontSize;
4096}, function (props) {
4097 return props.buttonSize.lineHeight;
4098}, function (props) {
4099 return props.buttonSize.paddingTop;
4100}, function (props) {
4101 return props.buttonSize.paddingSides;
4102}, function (props) {
4103 return props.buttonSize.paddingBottom;
4104}, function (props) {
4105 return props.buttonSize.paddingSides;
4106}, function (props) {
4107 return props.buttonSize.textTransform ? props.buttonSize.textTransform : 'none';
4108}, function (props) {
4109 return props.buttonStyle.activeBgColor;
4110}, function (props) {
4111 return props.buttonStyle.activeTextColor;
4112}, function (props) {
4113 return props.buttonStyle.hoverBgColor;
4114}, function (props) {
4115 return props.buttonStyle.hoverTextColor;
4116});
4117var OutlineAnswerDisplay = styled(AnswerDisplay)(_templateObject3$b(), function (props) {
4118 return props.isChecked ? props.buttonStyle.hoverBgColor : props.buttonStyle.bgColor;
4119}, function (props) {
4120 return props.buttonStyle.borderColor;
4121}, function (props) {
4122 return props.isChecked ? '0 0 0 0' : 'none';
4123}, function (props) {
4124 return props.isChecked && props.buttonStyle.boxShadowColor;
4125}, function (props) {
4126 return props.isChecked ? props.buttonStyle.hoverTextColor : props.buttonStyle.textColor;
4127});
4128var AnswerInput = styled.input(_templateObject4$9(), function (props) {
4129 return props.buttonStyle.activeBgColor;
4130}, function (props) {
4131 return props.buttonStyle.activeTextColor;
4132});
4133
4134function AnswerButton(_ref) {
4135 var name = _ref.name,
4136 children = _ref.children,
4137 itemWidth = _ref.itemWidth,
4138 styleType = _ref.styleType,
4139 selectedType = _ref.selectedType,
4140 size = _ref.size,
4141 isOutline = _ref.isOutline,
4142 checked = _ref.checked,
4143 radioProps = _objectWithoutProperties(_ref, ["name", "children", "itemWidth", "styleType", "selectedType", "size", "isOutline", "checked"]);
4144
4145 var id = useUniqueId(radioProps.id);
4146 var isChecked = radioProps.checked || radioProps.defaultChecked;
4147 var theme = useTheme();
4148 var validationState = React.useContext(ValidationContext);
4149 var buttonType = isOutline ? 'outlineButton' : 'button';
4150 var buttonSize = theme.buttonStyles[buttonType].size[size];
4151 var variant = validationState !== 'default' && !isOutline ? validationState : styleType;
4152 var validationBorder = theme.buttonStyles[buttonType].variant[validationState].borderColor;
4153 var selectedStyles = theme.buttonStyles[buttonType].variant[selectedType];
4154 var unSelectedStyles = theme.buttonStyles[buttonType].variant[variant];
4155
4156 if (isOutline && validationState !== 'default') {
4157 selectedStyles = _objectSpread$5({}, selectedStyles, {
4158 borderColor: validationBorder
4159 });
4160 unSelectedStyles = _objectSpread$5({}, unSelectedStyles, {
4161 borderColor: validationBorder
4162 });
4163 }
4164
4165 var buttonStyle = isChecked ? selectedStyles : unSelectedStyles;
4166 var buttonProps = {
4167 disabled: radioProps.disabled,
4168 isChecked: isChecked,
4169 buttonStyle: buttonStyle,
4170 buttonSize: buttonSize
4171 };
4172 var labelProps = {
4173 disabled: radioProps.disabled,
4174 itemWidth: itemWidth,
4175 htmlFor: id,
4176 validationState: validationState
4177 };
4178 var Display = isOutline ? OutlineAnswerDisplay : AnswerDisplay;
4179 return React.createElement(AnswerLabel, labelProps, React.createElement(AnswerInput, _extends({
4180 type: "radio",
4181 name: name,
4182 id: id,
4183 buttonStyle: buttonStyle
4184 }, radioProps)), React.createElement(Display, buttonProps, children));
4185}
4186
4187function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
4188
4189function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty(_context3 = ownKeys$6(source, true)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context4; _forEachInstanceProperty(_context4 = ownKeys$6(source)).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
4190
4191function RadioGroup(_ref) {
4192 var _context;
4193
4194 var name = _ref.name,
4195 disableAllOptions = _ref.disableAllOptions,
4196 selectedValue = _ref.selectedValue,
4197 children = _ref.children,
4198 rest = _objectWithoutProperties(_ref, ["name", "disableAllOptions", "selectedValue", "children"]);
4199
4200 return _mapInstanceProperty(_context = React.Children).call(_context, children, function (child, index) {
4201 var _context2;
4202
4203 var key = _concatInstanceProperty(_context2 = "".concat(name, "-option-")).call(_context2, index + 1);
4204
4205 var disabled = disableAllOptions || child.props.disabled;
4206 var checked = selectedValue === child.props.value;
4207 return React.cloneElement(child, _objectSpread$6({
4208 key: key,
4209 name: name,
4210 disabled: disabled,
4211 defaultChecked: checked
4212 }, rest));
4213 });
4214}
4215
4216RadioGroup.propTypes = process.env.NODE_ENV !== "production" ? {
4217 /** The name of the radio group */
4218 name: PropTypes.string.isRequired,
4219
4220 /** Selected option for the radio group */
4221 selectedValue: PropTypes.any,
4222
4223 /** Disable all radio buttons */
4224 disableAllOptions: PropTypes.bool
4225} : {};
4226RadioGroup.defaultProps = {
4227 selectedValue: undefined,
4228 disableAllOptions: false
4229};
4230
4231function _templateObject$D() {
4232 var data = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: nowrap;\n\n ", ";\n"]);
4233
4234 _templateObject$D = function _templateObject() {
4235 return data;
4236 };
4237
4238 return data;
4239}
4240var outlineStyles = css(["> label:first-child > div{border-radius:4px 0 0 4px;}> label:last-child > div{border-left:none;border-radius:0 4px 4px 0;}> label:not(:first-child):not(:last-child) > div{border-left:1px;}"]);
4241var AnswerSet = styled.div(_templateObject$D(), function (props) {
4242 return props.isOutline && outlineStyles;
4243});
4244
4245function AnswerGroup(props) {
4246 return React.createElement(AnswerSet, {
4247 isOutline: props.isOutline
4248 }, React.createElement(RadioGroup, props));
4249}
4250
4251AnswerGroup.propTypes = process.env.NODE_ENV !== "production" ? {
4252 /** The name of the answer group */
4253 name: PropTypes.string.isRequired,
4254 children: PropTypes.node.isRequired,
4255
4256 /** The width of each item when not in mobile view */
4257 itemWidth: PropTypes.string,
4258
4259 /** Select the color style of the buttons, types come from theme */
4260 styleType: PropTypes.string,
4261
4262 /** Select the color style of the selected button, types come from theme */
4263 selectedType: PropTypes.string,
4264
4265 /** Set the button size, sizes come from theme (buttonStyles) */
4266 size: PropTypes.string,
4267
4268 /** Set if the items should have a flat outline style */
4269 isOutline: PropTypes.bool,
4270
4271 /** Disable all radio buttons */
4272 disableAllOptions: PropTypes.bool,
4273
4274 /** Selected option for the answer group */
4275 selectedValue: PropTypes.any
4276} : {};
4277AnswerGroup.defaultProps = {
4278 styleType: 'default',
4279 selectedType: 'success',
4280 size: 'default',
4281 itemWidth: '100px',
4282 isOutline: false,
4283 disableAllOptions: false,
4284 selectedValue: undefined
4285};
4286
4287function getRadioFillVariables(isChecked, isDisabled, validationState, colors) {
4288 var isNotDisabled = !isDisabled;
4289 var isValid = validationState === 'default';
4290
4291 if (isDisabled) {
4292 return {
4293 fill: colors.gray5
4294 };
4295 }
4296
4297 if (isNotDisabled && !isValid) {
4298 return {
4299 fill: colors[validationState],
4300 hover: colors.gray3
4301 };
4302 }
4303
4304 if (isChecked && isNotDisabled) {
4305 return {
4306 fill: colors.primary
4307 };
4308 }
4309
4310 return {
4311 fill: colors.gray8,
4312 hover: colors.gray3
4313 };
4314}
4315
4316function _templateObject3$c() {
4317 var data = _taggedTemplateLiteral(["\n border: 3px solid ", ";\n border-radius: 50%;\n box-sizing: border-box;\n height: 25px;\n margin-right: 8px;\n min-width: 25px;\n\n &:before {\n ", ";\n }\n"]);
4318
4319 _templateObject3$c = function _templateObject3() {
4320 return data;
4321 };
4322
4323 return data;
4324}
4325
4326function _templateObject2$h() {
4327 var data = _taggedTemplateLiteral(["\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n position: absolute;\n\n &:focus ~ .es-radio__fill {\n box-shadow: 0 0 3px 3px ", ";\n }\n"]);
4328
4329 _templateObject2$h = function _templateObject2() {
4330 return data;
4331 };
4332
4333 return data;
4334}
4335
4336function _templateObject$E() {
4337 var data = _taggedTemplateLiteral(["\n align-self: flex-start;\n cursor: pointer;\n display: flex;\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: ", ";\n font-weight: normal;\n line-height: ", ";\n margin-right: 15px;\n margin-bottom: 10px;\n position: relative;\n padding: 10px 0 10px 10px;\n text-transform: none;\n\n &:hover .es-radio__fill:before {\n ", ";\n }\n\n @media (min-width: ", ") {\n padding: 5px 0;\n }\n"]);
4338
4339 _templateObject$E = function _templateObject() {
4340 return data;
4341 };
4342
4343 return data;
4344}
4345
4346function radioFill(color) {
4347 return "\n background-color: ".concat(color, ";\n border-radius: 50%;\n content: '';\n display: block;\n height: 13px;\n left: 3px;\n position: relative;\n width: 13px;\n top: 3px;\n transition: background 0.25s linear;\n ");
4348}
4349
4350var RadioLabel = styled(Label)(_templateObject$E(), function (props) {
4351 return props.theme.sizes.baseFontSize;
4352}, function (props) {
4353 return props.theme.sizes.baseLineHeight;
4354}, function (props) {
4355 return !props.checked && radioFill(props.hoverFillColor);
4356}, function (props) {
4357 return props.theme.screenSize.tablet;
4358});
4359var RadioInput = styled.input(_templateObject2$h(), function (props) {
4360 return props.theme.colors.inputFocus;
4361});
4362var RadioDisplay = styled.span(_templateObject3$c(), function (props) {
4363 return props.borderColor;
4364}, function (props) {
4365 return radioFill(_fillInstanceProperty(props));
4366});
4367function RadioButton(_ref) {
4368 var children = _ref.children,
4369 radioProps = _objectWithoutProperties(_ref, ["children"]);
4370
4371 var id = useUniqueId(radioProps.id);
4372 var isChecked = radioProps.checked || radioProps.defaultChecked;
4373 var theme = useTheme();
4374 var validationState = React.useContext(ValidationContext);
4375
4376 var _getRadioFillVariable = getRadioFillVariables(isChecked, radioProps.disabled, validationState, theme.colors),
4377 hover = _getRadioFillVariable.hover,
4378 fill = _fillInstanceProperty(_getRadioFillVariable);
4379
4380 var radioDisplayFill = isChecked ? fill : theme.colors.white;
4381 var labelProps = {
4382 disabled: radioProps.disabled,
4383 htmlFor: id,
4384 hoverFillColor: hover,
4385 validationState: validationState,
4386 checked: isChecked
4387 };
4388 return React.createElement(RadioLabel, labelProps, React.createElement(RadioInput, _extends({
4389 type: "radio",
4390 id: id
4391 }, radioProps)), React.createElement(RadioDisplay, {
4392 className: "es-radio__fill",
4393 borderColor: fill,
4394 fill: radioDisplayFill
4395 }), children);
4396}
4397RadioButton.propTypes = process.env.NODE_ENV !== "production" ? {
4398 children: PropTypes.any
4399} : {};
4400RadioButton.defaultProps = {
4401 children: undefined
4402};
4403
4404function _templateObject$F() {
4405 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 2px;\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n flex: auto;\n font-size: ", ";\n font-weight: normal;\n height: 39px;\n min-width: 100px;\n padding: 6px 12px;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n\n &:focus {\n border-color: ", ";\n box-shadow: ", ";\n outline: 0;\n }\n\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n"]);
4406
4407 _templateObject$F = function _templateObject() {
4408 return data;
4409 };
4410
4411 return data;
4412}
4413var DropdownBase = styled.select(_templateObject$F(), function (props) {
4414 return props.theme.colors.white;
4415}, function (props) {
4416 return props.theme.colors.gray5;
4417}, function (props) {
4418 return props.boxShadow;
4419}, function (props) {
4420 return props.theme.colors.black;
4421}, function (props) {
4422 return props.theme.sizes.baseFontSize;
4423}, function (props) {
4424 return props.focusBorderColor;
4425}, function (props) {
4426 return props.focusBoxShadow;
4427}, function (props) {
4428 return props.theme.colors.gray2;
4429});
4430
4431function Dropdown(props) {
4432 return React.createElement(DropdownBase, props);
4433}
4434
4435function _templateObject3$d() {
4436 var data = _taggedTemplateLiteral(["\n background: ", ";\n border: 3px solid ", ";\n border-radius: 4px;\n box-sizing: border-box;\n cursor: pointer;\n height: 25px;\n left: 10px;\n position: absolute;\n top: 0.55em;\n transition: all 0.25s linear, box-shadow 0.15s linear;\n width: 25px;\n\n @media (min-width: ", ") {\n left: 0;\n top: 0.35em;\n }\n\n &:after {\n background: transparent;\n border: 3px solid ", ";\n border-right: none;\n border-top: none;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 9px;\n margin: 3px 0 0 2px;\n transform: rotate(-45deg);\n transition: border 0.25s linear;\n width: 15px;\n }\n"]);
4437
4438 _templateObject3$d = function _templateObject3() {
4439 return data;
4440 };
4441
4442 return data;
4443}
4444
4445function _templateObject2$i() {
4446 var data = _taggedTemplateLiteral(["\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n position: absolute;\n\n &:focus ~ .es-checkbox__fill {\n box-shadow: 0 0 3px 3px ", ";\n &:after {\n border-color: ", ";\n }\n }\n"]);
4447
4448 _templateObject2$i = function _templateObject2() {
4449 return data;
4450 };
4451
4452 return data;
4453}
4454
4455function _templateObject$G() {
4456 var data = _taggedTemplateLiteral(["\n font-size: ", ";\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: ", ";\n font-weight: normal;\n line-height: ", ";\n margin-left: -10px;\n min-height: 25px;\n padding: 10px 0 10px 42px;\n position: relative;\n\n @media (min-width: ", ") {\n margin-left: 0;\n padding: 5px 0 5px 32px;\n }\n\n > .es-checkbox__fill {\n background-color: ", ";\n border-color: ", ";\n\n &:after {\n border-color: ", ";\n }\n }\n\n &:hover > .es-checkbox__fill:after {\n border-color: ", ";\n }\n\n &[disabled] > .es-checkbox__fill {\n background-color: ", ";\n border-color: ", ";\n cursor: not-allowed;\n outline: 0;\n\n &:after {\n border-color: ", ";\n }\n }\n"]);
4457
4458 _templateObject$G = function _templateObject() {
4459 return data;
4460 };
4461
4462 return data;
4463}
4464
4465var backgroundColorSelect = function backgroundColorSelect(checked, theme, validationState) {
4466 if (checked) {
4467 return validationState === 'default' ? theme.colors.primary : theme.colors[validationState];
4468 }
4469
4470 return theme.colors.white;
4471};
4472
4473var CheckboxLabel = styled(Label)(_templateObject$G(), function (props) {
4474 return props.theme.sizes.baseFontSize;
4475}, function (props) {
4476 return props.theme.sizes.baseFontSize;
4477}, function (props) {
4478 return props.theme.sizes.baseLineHeight;
4479}, function (props) {
4480 return props.theme.screenSize.tablet;
4481}, function (_ref) {
4482 var checked = _ref.checked,
4483 theme = _ref.theme,
4484 validationState = _ref.validationState;
4485 return backgroundColorSelect(checked, theme, validationState);
4486}, function (_ref2) {
4487 var checked = _ref2.checked,
4488 theme = _ref2.theme,
4489 validationState = _ref2.validationState;
4490 return checked && validationState === 'default' ? theme.colors.primary : theme.colors[validationState];
4491}, function (props) {
4492 return props.theme.colors.white;
4493}, function (_ref3) {
4494 var checked = _ref3.checked,
4495 theme = _ref3.theme;
4496 return checked ? theme.colors.white : theme.colors.gray3;
4497}, function (_ref4) {
4498 var checked = _ref4.checked,
4499 theme = _ref4.theme;
4500 return checked ? theme.colors.gray5 : theme.colors.white;
4501}, function (props) {
4502 return props.theme.colors.gray5;
4503}, function (props) {
4504 return props.theme.colors.white;
4505});
4506var CheckboxInput = styled.input(_templateObject2$i(), function (props) {
4507 return props.theme.colors.inputFocus;
4508}, function (_ref5) {
4509 var checked = _ref5.checked,
4510 theme = _ref5.theme;
4511 return checked ? theme.colors.white : theme.colors.gray3;
4512});
4513var CheckboxDisplay = styled.span(_templateObject3$d(), function (props) {
4514 return props.theme.colors.white;
4515}, function (props) {
4516 return props.theme.colors.gray8;
4517}, function (props) {
4518 return props.theme.screenSize.tablet;
4519}, function (props) {
4520 return props.theme.colors.white;
4521});
4522
4523function Checkbox(_ref6) {
4524 var children = _ref6.children,
4525 checkboxProps = _objectWithoutProperties(_ref6, ["children"]);
4526
4527 var theme = useTheme();
4528 var validationState = React.useContext(ValidationContext);
4529 return React.createElement(CheckboxLabel, {
4530 validationState: validationState,
4531 checked: checkboxProps.checked,
4532 disabled: checkboxProps.disabled
4533 }, React.createElement(CheckboxInput, _extends({
4534 type: "checkbox",
4535 focusBorderColor: theme.colors.inputFocus
4536 }, checkboxProps)), React.createElement(CheckboxDisplay, {
4537 className: "es-checkbox__fill"
4538 }), children);
4539}
4540
4541Checkbox.propTypes = process.env.NODE_ENV !== "production" ? {
4542 children: PropTypes.any
4543} : {};
4544Checkbox.defaultProps = {
4545 children: undefined
4546};
4547
4548function _templateObject2$j() {
4549 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n ul {\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n"]);
4550
4551 _templateObject2$j = function _templateObject2() {
4552 return data;
4553 };
4554
4555 return data;
4556}
4557
4558function _templateObject$H() {
4559 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n box-shadow: 2px 2px 5px ", ";\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n"]);
4560
4561 _templateObject$H = function _templateObject() {
4562 return data;
4563 };
4564
4565 return data;
4566}
4567var VerticalNavigation = styled.nav(_templateObject$H(), function (props) {
4568 return props.theme.colors.white;
4569}, function (props) {
4570 return props.theme.colors.gray6;
4571});
4572var HorizontalNavigation = styled.nav(_templateObject2$j(), function (props) {
4573 return props.theme.colors.white;
4574});
4575function useNavigation(orientation) {
4576 var OrientedNavigation = orientation === 'horizontal' ? HorizontalNavigation : VerticalNavigation;
4577
4578 function Navigation(props) {
4579 var _context;
4580
4581 var useAltStyle = props.useAltStyle,
4582 children = props.children;
4583
4584 var _React$useState = React.useState(props.selected),
4585 _React$useState2 = _slicedToArray(_React$useState, 2),
4586 selected = _React$useState2[0],
4587 setSelected = _React$useState2[1];
4588
4589 React.useEffect(function () {
4590 setSelected(props.selected);
4591 }, [props.selected]);
4592 return React.createElement(OrientedNavigation, {
4593 className: "es-sidenav"
4594 }, React.createElement("ul", null, _mapInstanceProperty(_context = React.Children).call(_context, children, function (child) {
4595 return React.cloneElement(child, {
4596 useAltStyle: useAltStyle,
4597 highlightedId: selected
4598 });
4599 })));
4600 }
4601
4602 Navigation.propTypes = process.env.NODE_ENV !== "production" ? {
4603 /** Use the alternate nav style */
4604 useAltStyle: PropTypes.bool,
4605 children: PropTypes.node.isRequired,
4606
4607 /** Set the selected nav item by id, controlled mode */
4608 selected: PropTypes.string
4609 } : {};
4610 Navigation.defaultProps = {
4611 useAltStyle: false,
4612 selected: undefined
4613 };
4614 return Navigation;
4615}
4616
4617function _templateObject4$a() {
4618 var data = _taggedTemplateLiteral(["\n align-content: center;\n background-color: transparent;\n border: 0;\n color: inherit;\n cursor: inherit;\n display: flex;\n font-size: inherit;\n height: 100%;\n justify-content: ", ";\n padding: 0;\n text-decoration: none;\n width: 100%;\n"]);
4619
4620 _templateObject4$a = function _templateObject4() {
4621 return data;
4622 };
4623
4624 return data;
4625}
4626
4627function _templateObject3$e() {
4628 var data = _taggedTemplateLiteral(["\n align-self: flex-end;\n"]);
4629
4630 _templateObject3$e = function _templateObject3() {
4631 return data;
4632 };
4633
4634 return data;
4635}
4636
4637function _templateObject2$k() {
4638 var data = _taggedTemplateLiteral(["\n ", "\n\n ", " ", ";\n"]);
4639
4640 _templateObject2$k = function _templateObject2() {
4641 return data;
4642 };
4643
4644 return data;
4645}
4646
4647function _templateObject$I() {
4648 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n line-height: ", ";\n min-width: 75px;\n padding: 10px;\n\n &:hover {\n background-color: ", ";\n color: ", ";\n\n > i {\n color: ", ";\n }\n }\n\n ", " ", ";\n"]);
4649
4650 _templateObject$I = function _templateObject() {
4651 return data;
4652 };
4653
4654 return data;
4655}
4656var NavItemWrapper = styled.li(_templateObject$I(), function (props) {
4657 return props.theme.colors.white;
4658}, function (props) {
4659 return props.theme.colors.black;
4660}, function (props) {
4661 return props.theme.sizes.baseLineHeight;
4662}, function (props) {
4663 return props.theme.colors.gray2;
4664}, function (props) {
4665 return props.theme.colors.primary;
4666}, function (props) {
4667 return props.theme.colors.primary;
4668}, function (props) {
4669 return props.isActive && css(["background-color:", ";color:", ";&:hover{background-color:", ";color:", ";> i{color:", ";}}"], props.theme.colors.primary, props.theme.colors.white, props.theme.colors.primary, props.theme.colors.white, props.theme.colors.white);
4670}, function (props) {
4671 return props.isDisabled && css(["background-color:", ";color:", ";cursor:not-allowed;> span{pointer-events:none;}> i{color:", ";}&:hover{background-color:", ";color:", ";> i{color:", ";}}"], props.theme.colors.gray1, props.theme.colors.gray6, props.theme.colors.gray1, props.theme.colors.gray1, props.theme.colors.gray6, props.theme.colors.gray1);
4672});
4673var AltNavItemWrapper = styled(NavItemWrapper)(_templateObject2$k(), function (props) {
4674 return css(["border-bottom:", " ", ";&:hover{border-", ":4px solid ", ";padding-left:", ";padding-bottom:", ";}"], props.isVertical ? 'none' : '2px solid', props.theme.colors.gray5, props.isVertical ? 'left' : 'bottom', props.theme.colors.primary, props.isVertical ? '6px' : '10px', props.isVertical ? '10px' : '6px');
4675}, function (props) {
4676 return props.isActive && css(["background-color:", ";border-", ":4px solid ", ";color:", ";padding-left:", ";padding-bottom:", ";> i{color:", ";}&:hover{background-color:", ";border-", ":4px solid ", ";color:", ";> i{color:", ";}}"], props.theme.colors.gray1, props.isVertical ? 'left' : 'bottom', props.theme.brandColors.vbMagenta, props.theme.colors.black, props.isVertical ? '6px' : '10px', props.isVertical ? '10px' : '6px', props.theme.brandColors.vbMagenta, props.theme.colors.gray1, props.isVertical ? 'left' : 'bottom', props.theme.brandColors.vbMagenta, props.theme.colors.black, props.theme.brandColors.vbMagenta);
4677}, function (props) {
4678 return props.isDisabled && css(["&:hover{border-left:none;padding-left:10px;}"]);
4679});
4680var NavIcon = styled(Icon)(_templateObject3$e());
4681var NavigationAnchor = styled.a(_templateObject4$a(), function (props) {
4682 return props.isVertical ? 'space-between' : 'center';
4683});
4684function useNavigationItem(orientation) {
4685 function NavItem(props) {
4686 var highlightedId = props.highlightedId,
4687 id = props.id,
4688 isDisabled = props.isDisabled,
4689 useAltStyle = props.useAltStyle,
4690 children = props.children;
4691 var isActive = id === highlightedId;
4692 var Wrapper = useAltStyle ? AltNavItemWrapper : NavItemWrapper;
4693 var isVertical = orientation === 'vertical';
4694 var child = React.Children.only(children);
4695
4696 var _child$props = child.props,
4697 grandChildren = _child$props.children,
4698 rest = _objectWithoutProperties(_child$props, ["children"]);
4699
4700 var styledChild = React.createElement(NavigationAnchor, _extends({
4701 as: child.type,
4702 isVertical: isVertical
4703 }, rest), React.createElement("span", null, grandChildren), isVertical ? React.createElement(NavIcon, {
4704 name: "chevron-right"
4705 }) : null);
4706 return React.createElement(Wrapper, {
4707 className: "es-sidenav__navitem",
4708 isActive: isActive,
4709 isDisabled: isDisabled,
4710 isVertical: isVertical
4711 }, styledChild);
4712 }
4713
4714 NavItem.propTypes = process.env.NODE_ENV !== "production" ? {
4715 /** @ignore */
4716 useAltStyle: PropTypes.bool,
4717
4718 /** Item content */
4719 children: PropTypes.any,
4720
4721 /** @ignore */
4722 highlightedId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
4723
4724 /** Each item must have a unique identifier */
4725 id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
4726
4727 /** Disable the nav item to render it un-clickable */
4728 isDisabled: PropTypes.bool
4729 } : {};
4730 NavItem.defaultProps = {
4731 useAltStyle: false,
4732 isDisabled: false,
4733 children: undefined,
4734 highlightedId: undefined
4735 };
4736 return NavItem;
4737}
4738
4739var Navigation = useNavigation('vertical');
4740
4741function SideNav(props) {
4742 return React.createElement(Navigation, props);
4743}
4744
4745SideNav.Item = useNavigationItem('vertical');
4746
4747var Navigation$1 = useNavigation('horizontal');
4748
4749function HorizontalNav(props) {
4750 return React.createElement(Navigation$1, props);
4751}
4752
4753HorizontalNav.Item = useNavigationItem('horizontal');
4754
4755function useWindowWidth() {
4756 var _React$useState = React.useState(document.body.clientWidth),
4757 _React$useState2 = _slicedToArray(_React$useState, 2),
4758 width = _React$useState2[0],
4759 setWidth = _React$useState2[1];
4760
4761 React.useEffect(function () {
4762 var handleResize = function handleResize() {
4763 return setWidth(document.body.clientWidth);
4764 };
4765
4766 window.addEventListener('resize', handleResize);
4767 return function () {
4768 window.removeEventListener('resize', handleResize);
4769 };
4770 }, []);
4771 return width;
4772}
4773
4774function _templateObject$J() {
4775 var data = _taggedTemplateLiteral(["\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow {\n margin-left: -8px;\n position: absolute;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow,\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n box-sizing: content-box;\n position: absolute;\n border: 8px solid transparent;\n height: 0;\n width: 1px;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n content: \"\";\n z-index: -1;\n border-width: 8px;\n left: -8px;\n border-bottom-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle {\n top: 0;\n margin-top: -8px;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before {\n border-top: none;\n border-bottom-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before {\n top: -1px;\n border-bottom-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow {\n bottom: 1px;\n margin-bottom: -8px;\n }\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n border-bottom: none;\n border-top-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n bottom: -1px;\n border-top-color: ", ";\n }\n .react-datepicker-wrapper {\n display: inline-block;\n }\n .react-datepicker {\n font-size: 18px;\n background-color: ", ";\n border: solid 1px ", ";\n border-radius: 4px;\n color: ", ";\n box-shadow: 0 5px 10px ", ";\n display: inline-block;\n position: relative;\n }\n .react-datepicker--time-only .react-datepicker__triangle {\n left: 35px;\n }\n .react-datepicker--time-only .react-datepicker__time-container {\n border-left: 0;\n }\n .react-datepicker--time-only .react-datepicker__time {\n border-radius: 0.3rem;\n }\n .react-datepicker--time-only .react-datepicker__time-box {\n border-radius: 0.3rem;\n }\n .react-datepicker__triangle {\n position: absolute;\n left: 50px;\n }\n .react-datepicker-popper {\n z-index: 1060;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] {\n margin-top: 12px;\n }\n .react-datepicker-popper[data-placement^=\"top\"] {\n margin-bottom: 6px;\n }\n .react-datepicker-popper[data-placement^=\"right\"] {\n margin-left: 8px;\n }\n .react-datepicker-popper[data-placement^=\"right\"] .react-datepicker__triangle {\n left: auto;\n right: 42px;\n }\n .react-datepicker-popper[data-placement^=\"left\"] {\n margin-right: 8px;\n }\n .react-datepicker-popper[data-placement^=\"left\"] .react-datepicker__triangle {\n left: 42px;\n right: auto;\n }\n .react-datepicker__header {\n text-align: center;\n background-color: ", ";\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n padding-top: 10px;\n position: relative;\n }\n .react-datepicker__header--time {\n padding-bottom: 8px;\n padding-left: 5px;\n padding-right: 5px;\n }\n .react-datepicker__year-dropdown-container--select,\n .react-datepicker__month-dropdown-container--select,\n .react-datepicker__month-year-dropdown-container--select,\n .react-datepicker__year-dropdown-container--scroll,\n .react-datepicker__month-dropdown-container--scroll,\n .react-datepicker__month-year-dropdown-container--scroll {\n display: inline-block;\n margin: 0 2px;\n }\n .react-datepicker__current-month,\n .react-datepicker-time__header {\n margin-top: 0;\n color: ", ";\n font-weight: bold;\n font-size: 18px;\n }\n .react-datepicker-time__header {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n .react-datepicker__navigation {\n background-color: transparent;\n line-height: 1.7rem;\n text-align: center;\n cursor: pointer;\n position: absolute;\n top: 10px;\n padding: 0;\n height: 10px;\n width: 0;\n border: 0.45rem solid transparent;\n z-index: 1;\n text-indent: -999em;\n overflow: hidden;\n }\n .react-datepicker__navigation--previous {\n left: 10px;\n border-right-color: ", ";\n }\n .react-datepicker__navigation--previous:hover {\n border-right-color: ", ";\n }\n .react-datepicker__navigation--previous--disabled,\n .react-datepicker__navigation--previous--disabled:hover {\n border-right-color: ", ";\n cursor: default;\n }\n .react-datepicker__navigation--next {\n right: 10px;\n border-left-color: ", ";\n }\n .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {\n right: 110px;\n }\n .react-datepicker__navigation--next:hover {\n border-left-color: ", ";\n }\n .react-datepicker__navigation--next--disabled,\n .react-datepicker__navigation--next--disabled:hover {\n border-left-color: ", ";\n cursor: default;\n }\n .react-datepicker__navigation--years {\n position: relative;\n top: 0;\n display: block;\n margin-left: auto;\n margin-right: auto;\n }\n .react-datepicker__navigation--years-previous {\n top: 4px;\n border-top-color: ", ";\n }\n .react-datepicker__navigation--years-previous:hover {\n border-top-color: ", ";\n }\n .react-datepicker__navigation--years-upcoming {\n top: -4px;\n border-bottom-color: ", ";\n }\n .react-datepicker__navigation--years-upcoming:hover {\n border-bottom-color: ", ";\n }\n .react-datepicker__month-container {\n float: left;\n }\n .react-datepicker__month {\n margin: 0.4rem;\n text-align: center;\n }\n .react-datepicker__time-container {\n float: right;\n border-left: 1px solid ", ";\n }\n .react-datepicker__time-container--with-today-button {\n display: inline;\n border: 1px solid ", ";\n border-radius: 0.3rem;\n position: absolute;\n right: -72px;\n top: 0;\n }\n .react-datepicker__time-container .react-datepicker__time {\n font-size: 14px;\n position: relative;\n background: white;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {\n width: 102px;\n overflow-x: hidden;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {\n list-style: none;\n margin: 0;\n height: 204px;\n overflow-y: scroll;\n padding: 0;\n width: 100%;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {\n padding: 5px 10px;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {\n cursor: pointer;\n background-color: ", ";\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {\n background-color: ", ";\n color: white;\n font-weight: bold;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {\n background-color: ", ";\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {\n color: ", ";\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {\n cursor: default;\n background-color: transparent;\n }\n .react-datepicker__week-number {\n color: ", ";\n display: inline-block;\n width: 1.7rem;\n line-height: 1.7rem;\n text-align: center;\n margin: 0.166rem;\n }\n .react-datepicker__week-number.react-datepicker__week-number--clickable {\n cursor: pointer;\n }\n .react-datepicker__week-number.react-datepicker__week-number--clickable:hover {\n border-radius: 0.3rem;\n background-color: ", ";\n }\n .react-datepicker__day-names,\n .react-datepicker__week {\n white-space: nowrap;\n }\n .react-datepicker__day-names {\n font-weight: bold;\n }\n .react-datepicker__day-names .react-datepicker__day-name {\n color: ", ";\n }\n .react-datepicker__day-name,\n .react-datepicker__day,\n .react-datepicker__time-name {\n color: ", ";\n display: inline-block;\n width: 1.9rem;\n line-height: 1.9rem;\n text-align: center;\n margin: 0.2rem;\n }\n .react-datepicker__day {\n cursor: pointer;\n }\n .react-datepicker__day:hover {\n border-radius: 0.3rem;\n background-color: ", ";\n }\n .react-datepicker__day--today {\n font-weight: bold;\n }\n .react-datepicker__day--highlighted {\n border-radius: 0.3rem;\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--highlighted:hover {\n background-color: ", ";\n color: ", "\n }\n .react-datepicker__day--selected,\n .react-datepicker__day--in-selecting-range,\n .react-datepicker__day--in-range {\n border-radius: 0.3rem;\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--selected:hover,\n .react-datepicker__day--in-selecting-range:hover,\n .react-datepicker__day--in-range:hover {\n background-color: ", ";\n }\n .react-datepicker__day--keyboard-selected {\n border-radius: 0.3rem;\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--keyboard-selected:hover {\n background-color: ", ";\n }\n .react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range) {\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range) {\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--disabled {\n cursor: default;\n color: ", ";\n }\n .react-datepicker__day--disabled:hover {\n background-color: transparent;\n }\n .react-datepicker__input-container {\n position: relative;\n display: inline-block;\n }\n .react-datepicker__year-read-view,\n .react-datepicker__month-read-view,\n .react-datepicker__month-year-read-view {\n border: 1px solid transparent;\n color: ", ";\n }\n .react-datepicker__year-read-view:hover,\n .react-datepicker__month-read-view:hover,\n .react-datepicker__month-year-read-view:hover {\n cursor: pointer;\n }\n .react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {\n border-top-color: ", ";\n }\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow {\n border-top-color: ", ";\n float: right;\n margin-left: 20px;\n top: 5px;\n position: relative;\n border-width: 0.45rem;\n }\n .react-datepicker__year-dropdown,\n .react-datepicker__month-dropdown,\n .react-datepicker__month-year-dropdown {\n background-color: ", ";\n position: absolute;\n width: 50%;\n left: 25%;\n top: 30px;\n z-index: 1;\n text-align: center;\n border-radius: 0.3rem;\n border: 1px solid ", ";\n }\n .react-datepicker__year-dropdown:hover,\n .react-datepicker__month-dropdown:hover,\n .react-datepicker__month-year-dropdown:hover {\n cursor: pointer;\n }\n .react-datepicker__year-dropdown--scrollable,\n .react-datepicker__month-dropdown--scrollable,\n .react-datepicker__month-year-dropdown--scrollable {\n height: 150px;\n overflow-y: scroll;\n }\n .react-datepicker__year-option,\n .react-datepicker__month-option,\n .react-datepicker__month-year-option {\n line-height: 20px;\n width: 100%;\n display: block;\n margin-left: auto;\n margin-right: auto;\n }\n .react-datepicker__year-option:first-of-type,\n .react-datepicker__month-option:first-of-type,\n .react-datepicker__month-year-option:first-of-type {\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n }\n .react-datepicker__year-option:last-of-type,\n .react-datepicker__month-option:last-of-type,\n .react-datepicker__month-year-option:last-of-type {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border-bottom-left-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n }\n .react-datepicker__year-option:hover,\n .react-datepicker__month-option:hover,\n .react-datepicker__month-year-option:hover {\n background-color: ", ";\n }\n .react-datepicker__year-option--selected,\n .react-datepicker__month-option--selected,\n .react-datepicker__month-year-option--selected {\n position: absolute;\n left: 15px;\n }\n .react-datepicker__close-icon {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: inline-block;\n height: 0;\n outline: 0;\n padding: 0;\n vertical-align: middle;\n }\n .react-datepicker__close-icon::after {\n background-color: ", ";\n border-radius: 50%;\n bottom: 0;\n box-sizing: border-box;\n color: ", void 0, ";\n border-top: 1px solid ", ";\n cursor: pointer;\n text-align: center;\n font-weight: bold;\n padding: 5px 0;\n clear: left;\n }\n .react-datepicker__portal {\n position: fixed;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n left: 0;\n top: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n z-index: 2147483647;\n }\n .react-datepicker__portal .react-datepicker__day-name,\n .react-datepicker__portal .react-datepicker__day,\n .react-datepicker__portal .react-datepicker__time-name {\n width: 3rem;\n line-height: 3rem;\n }\n @media (max-width: 400px),\n (max-height: 550px) {\n .react-datepicker__portal .react-datepicker__day-name,\n .react-datepicker__portal .react-datepicker__day,\n .react-datepicker__portal .react-datepicker__time-name {\n width: 2rem;\n line-height: 2rem;\n }\n }\n .react-datepicker__portal .react-datepicker__current-month,\n .react-datepicker__portal .react-datepicker-time__header {\n font-size: 1.44rem;\n }\n .react-datepicker__portal .react-datepicker__navigation {\n border: 0.81rem solid transparent;\n }\n .react-datepicker__portal .react-datepicker__navigation--previous {\n border-right-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--previous:hover {\n border-right-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--previous--disabled,\n .react-datepicker__portal .react-datepicker__navigation--previous--disabled:hover {\n border-right-color: ", ";\n cursor: default;\n }\n .react-datepicker__portal .react-datepicker__navigation--next {\n border-left-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--next:hover {\n border-left-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--next--disabled,\n .react-datepicker__portal .react-datepicker__navigation--next--disabled:hover {\n border-left-color: ", ";\n cursor: default;\n }\n"], ["\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow {\n margin-left: -8px;\n position: absolute;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow,\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n box-sizing: content-box;\n position: absolute;\n border: 8px solid transparent;\n height: 0;\n width: 1px;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n content: \"\";\n z-index: -1;\n border-width: 8px;\n left: -8px;\n border-bottom-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle {\n top: 0;\n margin-top: -8px;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before {\n border-top: none;\n border-bottom-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before {\n top: -1px;\n border-bottom-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow {\n bottom: 1px;\n margin-bottom: -8px;\n }\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow,\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n border-bottom: none;\n border-top-color: ", ";\n }\n .react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,\n .react-datepicker__year-read-view--down-arrow::before,\n .react-datepicker__month-read-view--down-arrow::before,\n .react-datepicker__month-year-read-view--down-arrow::before {\n bottom: -1px;\n border-top-color: ", ";\n }\n .react-datepicker-wrapper {\n display: inline-block;\n }\n .react-datepicker {\n font-size: 18px;\n background-color: ", ";\n border: solid 1px ", ";\n border-radius: 4px;\n color: ", ";\n box-shadow: 0 5px 10px ", ";\n display: inline-block;\n position: relative;\n }\n .react-datepicker--time-only .react-datepicker__triangle {\n left: 35px;\n }\n .react-datepicker--time-only .react-datepicker__time-container {\n border-left: 0;\n }\n .react-datepicker--time-only .react-datepicker__time {\n border-radius: 0.3rem;\n }\n .react-datepicker--time-only .react-datepicker__time-box {\n border-radius: 0.3rem;\n }\n .react-datepicker__triangle {\n position: absolute;\n left: 50px;\n }\n .react-datepicker-popper {\n z-index: 1060;\n }\n .react-datepicker-popper[data-placement^=\"bottom\"] {\n margin-top: 12px;\n }\n .react-datepicker-popper[data-placement^=\"top\"] {\n margin-bottom: 6px;\n }\n .react-datepicker-popper[data-placement^=\"right\"] {\n margin-left: 8px;\n }\n .react-datepicker-popper[data-placement^=\"right\"] .react-datepicker__triangle {\n left: auto;\n right: 42px;\n }\n .react-datepicker-popper[data-placement^=\"left\"] {\n margin-right: 8px;\n }\n .react-datepicker-popper[data-placement^=\"left\"] .react-datepicker__triangle {\n left: 42px;\n right: auto;\n }\n .react-datepicker__header {\n text-align: center;\n background-color: ", ";\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n padding-top: 10px;\n position: relative;\n }\n .react-datepicker__header--time {\n padding-bottom: 8px;\n padding-left: 5px;\n padding-right: 5px;\n }\n .react-datepicker__year-dropdown-container--select,\n .react-datepicker__month-dropdown-container--select,\n .react-datepicker__month-year-dropdown-container--select,\n .react-datepicker__year-dropdown-container--scroll,\n .react-datepicker__month-dropdown-container--scroll,\n .react-datepicker__month-year-dropdown-container--scroll {\n display: inline-block;\n margin: 0 2px;\n }\n .react-datepicker__current-month,\n .react-datepicker-time__header {\n margin-top: 0;\n color: ", ";\n font-weight: bold;\n font-size: 18px;\n }\n .react-datepicker-time__header {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n .react-datepicker__navigation {\n background-color: transparent;\n line-height: 1.7rem;\n text-align: center;\n cursor: pointer;\n position: absolute;\n top: 10px;\n padding: 0;\n height: 10px;\n width: 0;\n border: 0.45rem solid transparent;\n z-index: 1;\n text-indent: -999em;\n overflow: hidden;\n }\n .react-datepicker__navigation--previous {\n left: 10px;\n border-right-color: ", ";\n }\n .react-datepicker__navigation--previous:hover {\n border-right-color: ", ";\n }\n .react-datepicker__navigation--previous--disabled,\n .react-datepicker__navigation--previous--disabled:hover {\n border-right-color: ", ";\n cursor: default;\n }\n .react-datepicker__navigation--next {\n right: 10px;\n border-left-color: ", ";\n }\n .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {\n right: 110px;\n }\n .react-datepicker__navigation--next:hover {\n border-left-color: ", ";\n }\n .react-datepicker__navigation--next--disabled,\n .react-datepicker__navigation--next--disabled:hover {\n border-left-color: ", ";\n cursor: default;\n }\n .react-datepicker__navigation--years {\n position: relative;\n top: 0;\n display: block;\n margin-left: auto;\n margin-right: auto;\n }\n .react-datepicker__navigation--years-previous {\n top: 4px;\n border-top-color: ", ";\n }\n .react-datepicker__navigation--years-previous:hover {\n border-top-color: ", ";\n }\n .react-datepicker__navigation--years-upcoming {\n top: -4px;\n border-bottom-color: ", ";\n }\n .react-datepicker__navigation--years-upcoming:hover {\n border-bottom-color: ", ";\n }\n .react-datepicker__month-container {\n float: left;\n }\n .react-datepicker__month {\n margin: 0.4rem;\n text-align: center;\n }\n .react-datepicker__time-container {\n float: right;\n border-left: 1px solid ", ";\n }\n .react-datepicker__time-container--with-today-button {\n display: inline;\n border: 1px solid ", ";\n border-radius: 0.3rem;\n position: absolute;\n right: -72px;\n top: 0;\n }\n .react-datepicker__time-container .react-datepicker__time {\n font-size: 14px;\n position: relative;\n background: white;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {\n width: 102px;\n overflow-x: hidden;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {\n list-style: none;\n margin: 0;\n height: 204px;\n overflow-y: scroll;\n padding: 0;\n width: 100%;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {\n padding: 5px 10px;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {\n cursor: pointer;\n background-color: ", ";\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {\n background-color: ", ";\n color: white;\n font-weight: bold;\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {\n background-color: ", ";\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {\n color: ", ";\n }\n .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {\n cursor: default;\n background-color: transparent;\n }\n .react-datepicker__week-number {\n color: ", ";\n display: inline-block;\n width: 1.7rem;\n line-height: 1.7rem;\n text-align: center;\n margin: 0.166rem;\n }\n .react-datepicker__week-number.react-datepicker__week-number--clickable {\n cursor: pointer;\n }\n .react-datepicker__week-number.react-datepicker__week-number--clickable:hover {\n border-radius: 0.3rem;\n background-color: ", ";\n }\n .react-datepicker__day-names,\n .react-datepicker__week {\n white-space: nowrap;\n }\n .react-datepicker__day-names {\n font-weight: bold;\n }\n .react-datepicker__day-names .react-datepicker__day-name {\n color: ", ";\n }\n .react-datepicker__day-name,\n .react-datepicker__day,\n .react-datepicker__time-name {\n color: ", ";\n display: inline-block;\n width: 1.9rem;\n line-height: 1.9rem;\n text-align: center;\n margin: 0.2rem;\n }\n .react-datepicker__day {\n cursor: pointer;\n }\n .react-datepicker__day:hover {\n border-radius: 0.3rem;\n background-color: ", ";\n }\n .react-datepicker__day--today {\n font-weight: bold;\n }\n .react-datepicker__day--highlighted {\n border-radius: 0.3rem;\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--highlighted:hover {\n background-color: ", ";\n color: ", "\n }\n .react-datepicker__day--selected,\n .react-datepicker__day--in-selecting-range,\n .react-datepicker__day--in-range {\n border-radius: 0.3rem;\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--selected:hover,\n .react-datepicker__day--in-selecting-range:hover,\n .react-datepicker__day--in-range:hover {\n background-color: ", ";\n }\n .react-datepicker__day--keyboard-selected {\n border-radius: 0.3rem;\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--keyboard-selected:hover {\n background-color: ", ";\n }\n .react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range) {\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range) {\n background-color: ", ";\n color: ", ";\n }\n .react-datepicker__day--disabled {\n cursor: default;\n color: ", ";\n }\n .react-datepicker__day--disabled:hover {\n background-color: transparent;\n }\n .react-datepicker__input-container {\n position: relative;\n display: inline-block;\n }\n .react-datepicker__year-read-view,\n .react-datepicker__month-read-view,\n .react-datepicker__month-year-read-view {\n border: 1px solid transparent;\n color: ", ";\n }\n .react-datepicker__year-read-view:hover,\n .react-datepicker__month-read-view:hover,\n .react-datepicker__month-year-read-view:hover {\n cursor: pointer;\n }\n .react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {\n border-top-color: ", ";\n }\n .react-datepicker__year-read-view--down-arrow,\n .react-datepicker__month-read-view--down-arrow,\n .react-datepicker__month-year-read-view--down-arrow {\n border-top-color: ", ";\n float: right;\n margin-left: 20px;\n top: 5px;\n position: relative;\n border-width: 0.45rem;\n }\n .react-datepicker__year-dropdown,\n .react-datepicker__month-dropdown,\n .react-datepicker__month-year-dropdown {\n background-color: ", ";\n position: absolute;\n width: 50%;\n left: 25%;\n top: 30px;\n z-index: 1;\n text-align: center;\n border-radius: 0.3rem;\n border: 1px solid ", ";\n }\n .react-datepicker__year-dropdown:hover,\n .react-datepicker__month-dropdown:hover,\n .react-datepicker__month-year-dropdown:hover {\n cursor: pointer;\n }\n .react-datepicker__year-dropdown--scrollable,\n .react-datepicker__month-dropdown--scrollable,\n .react-datepicker__month-year-dropdown--scrollable {\n height: 150px;\n overflow-y: scroll;\n }\n .react-datepicker__year-option,\n .react-datepicker__month-option,\n .react-datepicker__month-year-option {\n line-height: 20px;\n width: 100%;\n display: block;\n margin-left: auto;\n margin-right: auto;\n }\n .react-datepicker__year-option:first-of-type,\n .react-datepicker__month-option:first-of-type,\n .react-datepicker__month-year-option:first-of-type {\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n }\n .react-datepicker__year-option:last-of-type,\n .react-datepicker__month-option:last-of-type,\n .react-datepicker__month-year-option:last-of-type {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border-bottom-left-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n }\n .react-datepicker__year-option:hover,\n .react-datepicker__month-option:hover,\n .react-datepicker__month-year-option:hover {\n background-color: ", ";\n }\n .react-datepicker__year-option--selected,\n .react-datepicker__month-option--selected,\n .react-datepicker__month-year-option--selected {\n position: absolute;\n left: 15px;\n }\n .react-datepicker__close-icon {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: inline-block;\n height: 0;\n outline: 0;\n padding: 0;\n vertical-align: middle;\n }\n .react-datepicker__close-icon::after {\n background-color: ", ";\n border-radius: 50%;\n bottom: 0;\n box-sizing: border-box;\n color: ", ";\n content: \"\\00d7\";\n cursor: pointer;\n font-size: 12px;\n height: 16px;\n width: 16px;\n line-height: 1;\n margin: -8px auto 0;\n padding: 2px;\n position: absolute;\n right: 7px;\n text-align: center;\n top: 50%;\n }\n .react-datepicker__today-button {\n background: ", ";\n border-top: 1px solid ", ";\n cursor: pointer;\n text-align: center;\n font-weight: bold;\n padding: 5px 0;\n clear: left;\n }\n .react-datepicker__portal {\n position: fixed;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n left: 0;\n top: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n z-index: 2147483647;\n }\n .react-datepicker__portal .react-datepicker__day-name,\n .react-datepicker__portal .react-datepicker__day,\n .react-datepicker__portal .react-datepicker__time-name {\n width: 3rem;\n line-height: 3rem;\n }\n @media (max-width: 400px),\n (max-height: 550px) {\n .react-datepicker__portal .react-datepicker__day-name,\n .react-datepicker__portal .react-datepicker__day,\n .react-datepicker__portal .react-datepicker__time-name {\n width: 2rem;\n line-height: 2rem;\n }\n }\n .react-datepicker__portal .react-datepicker__current-month,\n .react-datepicker__portal .react-datepicker-time__header {\n font-size: 1.44rem;\n }\n .react-datepicker__portal .react-datepicker__navigation {\n border: 0.81rem solid transparent;\n }\n .react-datepicker__portal .react-datepicker__navigation--previous {\n border-right-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--previous:hover {\n border-right-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--previous--disabled,\n .react-datepicker__portal .react-datepicker__navigation--previous--disabled:hover {\n border-right-color: ", ";\n cursor: default;\n }\n .react-datepicker__portal .react-datepicker__navigation--next {\n border-left-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--next:hover {\n border-left-color: ", ";\n }\n .react-datepicker__portal .react-datepicker__navigation--next--disabled,\n .react-datepicker__portal .react-datepicker__navigation--next--disabled:hover {\n border-left-color: ", ";\n cursor: default;\n }\n"]);
4776
4777 _templateObject$J = function _templateObject() {
4778 return data;
4779 };
4780
4781 return data;
4782}
4783function DatepickerStyles() {
4784 var _useTheme = useTheme(),
4785 colors = _useTheme.colors,
4786 dpColors = _useTheme.datepickerColors;
4787
4788 var Styles = createGlobalStyle(_templateObject$J(), colors.gray5, dpColors.dpBackground, colors.gray5, colors.white, colors.gray5, colors.white, colors.gray5, colors.gray9, colors.boxShadowLight, dpColors.dpBackground, colors.white, dpColors.navArrow, dpColors.navArrowHover, colors.gray3, dpColors.navArrow, dpColors.navArrowHover, colors.gray3, dpColors.dpBackground, dpColors.dpBackground, dpColors.dpBackground, dpColors.dpBackground, colors.gray5, colors.gray5, colors.gray1, dpColors.selected, dpColors.selected, colors.gray2, colors.gray2, colors.gray1, colors.white, colors.gray9, colors.gray3, dpColors.highlight, colors.white, dpColors.highlightHover, colors.gray9, dpColors.selected, colors.white, dpColors.hover, dpColors.keyboard, colors.white, dpColors.hover, dpColors.inRange, colors.gray9, colors.gray3, colors.gray9, colors.gray5, colors.white, colors.gray5, colors.gray3, colors.gray1, colors.gray5, colors.gray3, dpColors.selected, colors.white, colors.gray1, colors.gray5, colors.boxShadowDark, dpColors.navArrow, dpColors.navArrowHover, colors.gray3, dpColors.navArrow, dpColors.navArrowHover, colors.gray3);
4789 return React.createElement(Styles, null);
4790}
4791
4792/* https://github.com/Hacker0x01/react-datepicker/blob/master/src/index.jsx */
4793/* https://github.com/FezVrasta/popper.js/blob/master/packages/popper/src/methods/placements.js */
4794
4795var popperPlacementPositions = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
4796var reactDatePickerPropTypes = {
4797 adjustDateOnChange: PropTypes.bool,
4798 allowSameDay: PropTypes.bool,
4799 autoComplete: PropTypes.string,
4800 autoFocus: PropTypes.bool,
4801 calendarClassName: PropTypes.string,
4802 calendarContainer: PropTypes.func,
4803 children: PropTypes.node,
4804 className: PropTypes.string,
4805 customInput: PropTypes.element,
4806 customInputRef: PropTypes.string,
4807 // eslint-disable-next-line react/no-unused-prop-types
4808 dateFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
4809 dateFormatCalendar: PropTypes.string,
4810 dayClassName: PropTypes.func,
4811 disabled: PropTypes.bool,
4812 disabledKeyboardNavigation: PropTypes.bool,
4813 dropdownMode: PropTypes.oneOf(["scroll", "select"]).isRequired,
4814 endDate: PropTypes.instanceOf(Date),
4815 excludeDates: PropTypes.array,
4816 filterDate: PropTypes.func,
4817 fixedHeight: PropTypes.bool,
4818 formatWeekNumber: PropTypes.func,
4819 highlightDates: PropTypes.array,
4820 id: PropTypes.string,
4821 includeDates: PropTypes.array,
4822 includeTimes: PropTypes.array,
4823 injectTimes: PropTypes.array,
4824 inline: PropTypes.bool,
4825 isClearable: PropTypes.bool,
4826 locale: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
4827 locale: PropTypes.object
4828 })]),
4829 maxDate: PropTypes.instanceOf(Date),
4830 minDate: PropTypes.instanceOf(Date),
4831 monthsShown: PropTypes.number,
4832 name: PropTypes.string,
4833 onBlur: PropTypes.func,
4834 onChange: PropTypes.func.isRequired,
4835 onSelect: PropTypes.func,
4836 onWeekSelect: PropTypes.func,
4837 onClickOutside: PropTypes.func,
4838 onChangeRaw: PropTypes.func,
4839 onFocus: PropTypes.func,
4840 onInputClick: PropTypes.func,
4841 onKeyDown: PropTypes.func,
4842 onMonthChange: PropTypes.func,
4843 onYearChange: PropTypes.func,
4844 onInputError: PropTypes.func,
4845 open: PropTypes.bool,
4846 openToDate: PropTypes.instanceOf(Date),
4847 peekNextMonth: PropTypes.bool,
4848 placeholderText: PropTypes.string,
4849 popperContainer: PropTypes.func,
4850 popperClassName: PropTypes.string,
4851 // <PopperComponent/> props
4852 popperModifiers: PropTypes.object,
4853 // <PopperComponent/> props
4854 popperPlacement: PropTypes.oneOf(popperPlacementPositions),
4855 // <PopperComponent/> props
4856 popperProps: PropTypes.object,
4857 preventOpenOnFocus: PropTypes.bool,
4858 readOnly: PropTypes.bool,
4859 required: PropTypes.bool,
4860 scrollableYearDropdown: PropTypes.bool,
4861 scrollableMonthYearDropdown: PropTypes.bool,
4862 selected: PropTypes.instanceOf(Date),
4863 selectsEnd: PropTypes.bool,
4864 selectsStart: PropTypes.bool,
4865 showMonthDropdown: PropTypes.bool,
4866 showMonthYearDropdown: PropTypes.bool,
4867 showWeekNumbers: PropTypes.bool,
4868 showYearDropdown: PropTypes.bool,
4869 strictParsing: PropTypes.bool,
4870 forceShowMonthNavigation: PropTypes.bool,
4871 showDisabledMonthNavigation: PropTypes.bool,
4872 startDate: PropTypes.instanceOf(Date),
4873 startOpen: PropTypes.bool,
4874 tabIndex: PropTypes.number,
4875 timeCaption: PropTypes.string,
4876 title: PropTypes.string,
4877 todayButton: PropTypes.node,
4878 useWeekdaysShort: PropTypes.bool,
4879 formatWeekDay: PropTypes.func,
4880 value: PropTypes.string,
4881 weekLabel: PropTypes.string,
4882 withPortal: PropTypes.bool,
4883 yearDropdownItemNumber: PropTypes.number,
4884 shouldCloseOnSelect: PropTypes.bool,
4885 showTimeInput: PropTypes.bool,
4886 showMonthYearPicker: PropTypes.bool,
4887 showTimeSelect: PropTypes.bool,
4888 showTimeSelectOnly: PropTypes.bool,
4889 timeFormat: PropTypes.string,
4890 timeIntervals: PropTypes.number,
4891 minTime: PropTypes.instanceOf(Date),
4892 maxTime: PropTypes.instanceOf(Date),
4893 excludeTimes: PropTypes.array,
4894 useShortMonthInDropdown: PropTypes.bool,
4895 clearButtonTitle: PropTypes.string,
4896 previousMonthButtonLabel: PropTypes.string,
4897 nextMonthButtonLabel: PropTypes.string,
4898 timeInputLabel: PropTypes.string,
4899 renderCustomHeader: PropTypes.func,
4900 renderDayContents: PropTypes.func,
4901 inlineFocusSelectedMonth: PropTypes.bool,
4902 onDayMouseEnter: PropTypes.func,
4903 onMonthMouseLeave: PropTypes.func
4904};
4905
4906function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
4907
4908function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$7(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$7(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
4909var STRING_FORMAT = 'yyyy-MM-dd';
4910
4911function normalizeDateString(date) {
4912 var stringFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : STRING_FORMAT;
4913
4914 if (typeof date === 'string') {
4915 var parsedDate = parse(date, stringFormat, new Date());
4916 return isValid(parsedDate) ? format(parsedDate, stringFormat) : '';
4917 }
4918
4919 return isValid(date) ? format(date, stringFormat) : '';
4920}
4921
4922function normalizeDate(date) {
4923 if (typeof date === 'string') {
4924 var parsedDate = parse(date, STRING_FORMAT, new Date());
4925 return isValid(parsedDate) ? parsedDate : null;
4926 }
4927
4928 return isValid(date) ? date : null;
4929}
4930/* eslint-disable react/prop-types */
4931
4932
4933function NativeDatePicker(props) {
4934 return React.createElement(Textbox, _extends({
4935 prependIconName: "calendar",
4936 type: "date",
4937 value: normalizeDateString(props.selectedDate)
4938 }, props));
4939}
4940
4941var _StyledMaskedTextbox = styled(MaskedTextbox)(["max-width:265px;"]);
4942
4943var DateTextbox = React.forwardRef(function DateTextbox(props, ref) {
4944 var inputRef = React.useRef();
4945 React.useImperativeHandle(ref, function () {
4946 return {
4947 focus: function focus() {
4948 inputRef.current.focus();
4949 }
4950 };
4951 });
4952 /* eslint-disable react/forbid-foreign-prop-types */
4953
4954 var datepickerProps = _pick(props, _Object$keys(reactDatePickerPropTypes));
4955
4956 var textboxProps = _omit(props, _Object$keys(reactDatePickerPropTypes));
4957 /* eslint-enable react/forbid-foreign-prop-types */
4958
4959
4960 var textbox = React.createElement(_StyledMaskedTextbox, _extends({
4961 maskType: "date",
4962 placeholder: props.placeholder,
4963 prependIconName: "calendar",
4964 ref: inputRef
4965 }, textboxProps));
4966 return React.createElement(React.Fragment, null, React.createElement(DatepickerStyles, null), props.suppressDatepicker ? textbox : React.createElement(ReactDatePicker, _extends({
4967 customInput: textbox,
4968 placeholderText: props.placeholder,
4969 selected: normalizeDate(props.selectedDate)
4970 }, datepickerProps)));
4971});
4972/* eslint-enable react/prop-types */
4973
4974var DatePicker = function DatePicker(props) {
4975 var normalizedDateFromProps = props.selectedDate ? normalizeDate(props.selectedDate) : null;
4976
4977 var _useState = useState(normalizedDateFromProps),
4978 _useState2 = _slicedToArray(_useState, 2),
4979 selectedDate = _useState2[0],
4980 setSelectedDate = _useState2[1];
4981
4982 function dateSelected(dateOrEvent) {
4983 if (dateOrEvent) {
4984 if (isValid(dateOrEvent)) {
4985 setSelectedDate(dateOrEvent);
4986 } else {
4987 var normalizedDate = normalizeDate(dateOrEvent.target.value);
4988 setSelectedDate(normalizedDate);
4989 }
4990 } else {
4991 setSelectedDate(null);
4992 }
4993 }
4994
4995 useEffect(function () {
4996 if (normalizeDateString(selectedDate) !== normalizeDateString(props.selectedDate)) {
4997 props.onChange(selectedDate);
4998 }
4999 }, [selectedDate]);
5000 var windowWidth = useWindowWidth();
5001 var theme = useTheme();
5002 var phoneWidth = _parseInt(theme.screenSize.phone, 10) || 0;
5003 var userAgent = navigator.userAgent.toLowerCase();
5004 var isAndroid = _indexOfInstanceProperty(userAgent).call(userAgent, 'android') > -1;
5005 var DatePickerInput = props.allowNativeDatepickerOnMobile && windowWidth <= phoneWidth && !isAndroid ? NativeDatePicker : DateTextbox;
5006
5007 var actualProps = _objectSpread$7({}, props, {
5008 selectedDate: selectedDate,
5009 onChange: props.onChange ? dateSelected : _noop
5010 });
5011
5012 return React.createElement(DatePickerInput, actualProps);
5013};
5014
5015DatePicker.propTypes = process.env.NODE_ENV !== "production" ? {
5016 suppressDatepicker: PropTypes.bool,
5017 allowNativeDatepickerOnMobile: PropTypes.bool,
5018 selectedDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),
5019 onChange: PropTypes.func
5020} : {};
5021DatePicker.defaultProps = {
5022 suppressDatepicker: false,
5023 allowNativeDatepickerOnMobile: true,
5024 selectedDate: '',
5025 onChange: undefined
5026};
5027
5028function _templateObject$K() {
5029 var data = _taggedTemplateLiteral(["\n appearance: textfield;\n flex: 1 0 35px;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n appearance: none;\n margin: 0;\n }\n"]);
5030
5031 _templateObject$K = function _templateObject() {
5032 return data;
5033 };
5034
5035 return data;
5036}
5037var DayInput = styled(InputBase)(_templateObject$K());
5038
5039function Day(_ref) {
5040 var onChange = _ref.onChange,
5041 date = _ref.date,
5042 props = _objectWithoutProperties(_ref, ["onChange", "date"]);
5043
5044 var theme = useTheme();
5045 var validationState = React.useContext(ValidationContext);
5046
5047 var _React$useState = React.useState(date ? date.getDate() : ''),
5048 _React$useState2 = _slicedToArray(_React$useState, 2),
5049 value = _React$useState2[0],
5050 setValue = _React$useState2[1];
5051
5052 function onDayChange(event) {
5053 var day = event.target.value;
5054 day = day.length > 2 ? _sliceInstanceProperty(day).call(day, 0, 2) : day;
5055 setValue(day);
5056 onChange('day', day);
5057 }
5058
5059 return React.createElement(DayInput, _extends({
5060 type: "number",
5061 inputmode: "numeric",
5062 pattern: "[0-9]*",
5063 min: "1",
5064 max: "31",
5065 onChange: onDayChange,
5066 placeholder: "Day",
5067 value: value
5068 }, theme.validationInputColor[validationState], props));
5069}
5070
5071function _templateObject$L() {
5072 var data = _taggedTemplateLiteral(["\n flex: 3 1 100px;\n"]);
5073
5074 _templateObject$L = function _templateObject() {
5075 return data;
5076 };
5077
5078 return data;
5079}
5080var MonthDropdown = styled(Dropdown)(_templateObject$L());
5081
5082function Month(_ref) {
5083 var onChange = _ref.onChange,
5084 monthNames = _ref.monthNames,
5085 selectOptionText = _ref.selectOptionText,
5086 date = _ref.date,
5087 props = _objectWithoutProperties(_ref, ["onChange", "monthNames", "selectOptionText", "date"]);
5088
5089 var theme = useTheme();
5090 var validationState = React.useContext(ValidationContext);
5091
5092 var _React$useState = React.useState(date ? date.getMonth() + 1 : ''),
5093 _React$useState2 = _slicedToArray(_React$useState, 2),
5094 month = _React$useState2[0],
5095 setMonth = _React$useState2[1];
5096
5097 function onMonthChange(event) {
5098 setMonth(event.target.value);
5099 onChange('month', event.target.value);
5100 }
5101
5102 return React.createElement(MonthDropdown, _extends({
5103 onChange: onMonthChange
5104 }, theme.validationInputColor[validationState], {
5105 value: month
5106 }, props), selectOptionText && React.createElement("option", {
5107 value: "none"
5108 }, selectOptionText), _mapInstanceProperty(monthNames).call(monthNames, function (value, index) {
5109 return React.createElement("option", {
5110 value: index + 1,
5111 key: value
5112 }, value);
5113 }));
5114}
5115
5116Month.propTypes = process.env.NODE_ENV !== "production" ? {
5117 /** array of month names */
5118 monthNames: PropTypes.array,
5119
5120 /** adds an unselected option at the top */
5121 selectOptionText: PropTypes.string
5122} : {};
5123Month.defaultProps = {
5124 monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
5125 selectOptionText: undefined
5126};
5127
5128function _templateObject$M() {
5129 var data = _taggedTemplateLiteral(["\n appearance: textfield;\n flex: 2 0 40px;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n appearance: none;\n margin: 0;\n }\n"]);
5130
5131 _templateObject$M = function _templateObject() {
5132 return data;
5133 };
5134
5135 return data;
5136}
5137var YearInput = styled(InputBase)(_templateObject$M());
5138
5139function Year(_ref) {
5140 var onChange = _ref.onChange,
5141 date = _ref.date,
5142 props = _objectWithoutProperties(_ref, ["onChange", "date"]);
5143
5144 var theme = useTheme();
5145 var validationState = React.useContext(ValidationContext);
5146
5147 var _React$useState = React.useState(date ? date.getFullYear() : ''),
5148 _React$useState2 = _slicedToArray(_React$useState, 2),
5149 value = _React$useState2[0],
5150 setValue = _React$useState2[1];
5151
5152 function onYearChange(event) {
5153 var year = event.target.value;
5154 year = year.length > 4 ? _sliceInstanceProperty(year).call(year, 0, 4) : year;
5155 setValue(year);
5156 onChange('year', year);
5157 }
5158
5159 return React.createElement(YearInput, _extends({
5160 type: "number",
5161 inputmode: "numeric",
5162 pattern: "[0-9]*",
5163 onChange: onYearChange,
5164 placeholder: "Year",
5165 value: value
5166 }, theme.validationInputColor[validationState], props));
5167}
5168
5169function ownKeys$8(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
5170
5171function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context5; _forEachInstanceProperty(_context5 = ownKeys$8(source, true)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context6; _forEachInstanceProperty(_context6 = ownKeys$8(source)).call(_context6, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
5172
5173function _templateObject$N() {
5174 var data = _taggedTemplateLiteral(["\n display: flex;\n\n && > * {\n margin-right: 2px;\n }\n\n @media (min-width: ", ") {\n max-width: 350px;\n }\n"]);
5175
5176 _templateObject$N = function _templateObject() {
5177 return data;
5178 };
5179
5180 return data;
5181}
5182var Wrapper = styled.div(_templateObject$N(), function (props) {
5183 return props.theme.screenSize.tablet;
5184});
5185
5186function cleanZeroes(day) {
5187 var cleanDay = day;
5188
5189 while (cleanDay.charAt(0) === '0') {
5190 cleanDay = cleanDay.substr(1);
5191 }
5192
5193 return cleanDay;
5194}
5195
5196function reducer(state, action) {
5197 switch (action.type) {
5198 case 'day_updated':
5199 return _objectSpread$8({}, state, {
5200 day: action.value
5201 });
5202
5203 case 'month_updated':
5204 return _objectSpread$8({}, state, {
5205 month: action.value
5206 });
5207
5208 case 'year_updated':
5209 return _objectSpread$8({}, state, {
5210 year: action.value
5211 });
5212
5213 default:
5214 throw new Error();
5215 }
5216}
5217
5218function DateInput(_ref) {
5219 var _context4;
5220
5221 var children = _ref.children,
5222 defaultValue = _ref.defaultValue,
5223 id = _ref.id,
5224 maxDate = _ref.maxDate,
5225 minDate = _ref.minDate,
5226 onBlur = _ref.onBlur,
5227 onChange = _ref.onChange,
5228 props = _objectWithoutProperties(_ref, ["children", "defaultValue", "id", "maxDate", "minDate", "onBlur", "onChange"]);
5229
5230 var _useReducer = useReducer(reducer, {
5231 day: defaultValue ? defaultValue.getDate() : '',
5232 month: defaultValue ? defaultValue.getMonth() + 1 : 1,
5233 year: defaultValue ? defaultValue.getFullYear().toString() : ''
5234 }),
5235 _useReducer2 = _slicedToArray(_useReducer, 2),
5236 state = _useReducer2[0],
5237 dispatch = _useReducer2[1];
5238
5239 var hasDayElement = useRef(false);
5240 useEffect(function () {
5241 var _context;
5242
5243 _forEachInstanceProperty(_context = React.Children).call(_context, children, function (child) {
5244 if (child.type === Month && !state.month) {
5245 if (child.props.selectOptionText) {
5246 dispatch({
5247 type: 'month_updated',
5248 value: 'none'
5249 });
5250 }
5251 }
5252
5253 if (child.type === Day) {
5254 hasDayElement.current = true;
5255 }
5256 });
5257 }, []);
5258
5259 function createDate(year, month, day) {
5260 var _context2, _context3;
5261
5262 var cleanDay = day ? cleanZeroes(day.toString()) : day;
5263 var date = new Date(_concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = "".concat(year, "/")).call(_context3, month, "/")).call(_context2, cleanDay));
5264 var dateIsValid = month !== 'none' && year.length === 4 && (hasDayElement.current ? date.getDate().toString() === cleanDay : true) && (month ? (date.getMonth() + 1).toString() === month.toString() : true) && date.getFullYear().toString() === year.toString();
5265 var isInRange = dateIsValid && (minDate ? isAfter(date, minDate) : true) && (maxDate ? isBefore(date, maxDate) : true);
5266 return {
5267 value: dateIsValid ? date : undefined,
5268 isInRange: isInRange
5269 };
5270 }
5271
5272 function onChangeDatePart(datePart, value) {
5273 switch (datePart) {
5274 case 'day':
5275 onChange(createDate(state.year, state.month, value));
5276 dispatch({
5277 type: 'day_updated',
5278 value: value
5279 });
5280 return;
5281
5282 case 'month':
5283 onChange(createDate(state.year, value, state.day));
5284 dispatch({
5285 type: 'month_updated',
5286 value: value
5287 });
5288 return;
5289
5290 case 'year':
5291 onChange(createDate(value, state.month, state.day));
5292 dispatch({
5293 type: 'year_updated',
5294 value: value
5295 });
5296 return;
5297
5298 default:
5299 throw new Error();
5300 }
5301 }
5302
5303 function onBlurComponent(event) {
5304 var target = event.currentTarget;
5305
5306 _setTimeout(function () {
5307 if (!target.contains(document.activeElement)) {
5308 onBlur(event);
5309 }
5310 }, 0);
5311 }
5312
5313 return React.createElement(Wrapper, _extends({
5314 tabIndex: "-1"
5315 }, props, {
5316 onBlur: onBlurComponent
5317 }), _mapInstanceProperty(_context4 = React.Children).call(_context4, children, function (child, index) {
5318 return index === 0 ? React.cloneElement(child, {
5319 id: id,
5320 onChange: onChangeDatePart,
5321 date: createDate(state.year, state.month, state.day).value
5322 }) : React.cloneElement(child, {
5323 onChange: onChangeDatePart,
5324 date: createDate(state.year, state.month, state.day).value
5325 });
5326 }));
5327}
5328
5329DateInput.propTypes = process.env.NODE_ENV !== "production" ? {
5330 id: PropTypes.string,
5331 children: PropTypes.node.isRequired,
5332
5333 /** set the minimum valid date */
5334 maxDate: PropTypes.instanceOf(Date),
5335
5336 /** set the maximum valid date */
5337 minDate: PropTypes.instanceOf(Date),
5338
5339 /** returns an object (value, isInRange) */
5340 onChange: PropTypes.func.isRequired,
5341 onBlur: PropTypes.func,
5342
5343 /** set the Date value of the component */
5344 defaultValue: PropTypes.instanceOf(Date)
5345} : {};
5346DateInput.defaultProps = {
5347 id: undefined,
5348 maxDate: undefined,
5349 minDate: undefined,
5350 defaultValue: undefined,
5351 onBlur: _noop
5352};
5353DateInput.Day = Day;
5354DateInput.Month = Month;
5355DateInput.Year = Year;
5356
5357function _templateObject3$f() {
5358 var data = _taggedTemplateLiteral(["\n min-width: 0;\n\n .es-button__display {\n min-width: 0;\n }\n"]);
5359
5360 _templateObject3$f = function _templateObject3() {
5361 return data;
5362 };
5363
5364 return data;
5365}
5366
5367function _templateObject2$l() {
5368 var data = _taggedTemplateLiteral(["\n margin: 0 10px;\n min-width: 60px;\n padding-right: 12px;\n text-align: center;\n\n @media (min-width: ", ") {\n width: 60px;\n }\n\n /* Hides browser-specific number controls */\n -moz-appearance: textfield;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &::-ms-clear {\n display: none;\n }\n"]);
5369
5370 _templateObject2$l = function _templateObject2() {
5371 return data;
5372 };
5373
5374 return data;
5375}
5376
5377function _templateObject$O() {
5378 var data = _taggedTemplateLiteral(["\n align-items: flex-start;\n display: flex;\n"]);
5379
5380 _templateObject$O = function _templateObject() {
5381 return data;
5382 };
5383
5384 return data;
5385}
5386var IncrementerWrapper = styled.div(_templateObject$O());
5387var IncrementerTextbox = styled(InputBase)(_templateObject2$l(), function (props) {
5388 return props.theme.screenSize.tablet;
5389});
5390var IncrementerButton = styled(Button)(_templateObject3$f());
5391
5392function determineIsDisabled(threshold, newValue) {
5393 return _isFinite(threshold) && newValue === threshold;
5394}
5395
5396function sanitizeValue(val, lower, upper) {
5397 var enteredValue = _parseInt$1(val);
5398
5399 if (_isFinite(enteredValue)) {
5400 if (upper !== null && enteredValue > upper) {
5401 return upper;
5402 }
5403
5404 if (lower !== null && enteredValue < lower) {
5405 return lower;
5406 }
5407
5408 return enteredValue;
5409 }
5410
5411 return lower > 0 ? lower : 0;
5412}
5413
5414function updateCountReducer(state, action) {
5415 switch (action.type) {
5416 case 'increment':
5417 return {
5418 count: sanitizeValue(_parseInt$1(state.count) + _parseInt$1(action.amount), action.lower, action.upper)
5419 };
5420
5421 case 'decrement':
5422 return {
5423 count: sanitizeValue(_parseInt$1(state.count) - _parseInt$1(action.amount), action.lower, action.upper)
5424 };
5425
5426 case 'set':
5427 return {
5428 count: action.amount
5429 };
5430
5431 default:
5432 }
5433
5434 return null;
5435}
5436
5437var ScreenReaderButtonText = screenReaderOnly('span');
5438
5439function Incrementer(_ref) {
5440 var startingValue = _ref.startingValue,
5441 incrementAmount = _ref.incrementAmount,
5442 decrementAmount = _ref.decrementAmount,
5443 upperThreshold = _ref.upperThreshold,
5444 lowerThreshold = _ref.lowerThreshold,
5445 useOutlineButton = _ref.useOutlineButton,
5446 onValueUpdated = _ref.onValueUpdated,
5447 other = _objectWithoutProperties(_ref, ["startingValue", "incrementAmount", "decrementAmount", "upperThreshold", "lowerThreshold", "useOutlineButton", "onValueUpdated"]);
5448
5449 var theme = useTheme();
5450 var initialRender = useRef(true);
5451
5452 var _React$useReducer = React.useReducer(updateCountReducer, {
5453 count: startingValue === null ? '' : startingValue
5454 }),
5455 _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
5456 state = _React$useReducer2[0],
5457 dispatch = _React$useReducer2[1];
5458
5459 var isIncrementDisabled = determineIsDisabled(upperThreshold, state.count);
5460 var isDecrementDisabled = determineIsDisabled(lowerThreshold, state.count);
5461 React.useEffect(function () {
5462 if (!initialRender.current) {
5463 onValueUpdated(state.count);
5464 }
5465
5466 initialRender.current = false;
5467 }, [state.count]);
5468
5469 function setValue(event) {
5470 dispatch({
5471 type: 'set',
5472 amount: event.target.value
5473 });
5474 }
5475
5476 function decrementValue() {
5477 dispatch({
5478 type: 'decrement',
5479 amount: decrementAmount,
5480 lower: lowerThreshold,
5481 upper: upperThreshold
5482 });
5483 }
5484
5485 function incrementValue() {
5486 dispatch({
5487 type: 'increment',
5488 amount: incrementAmount,
5489 lower: lowerThreshold,
5490 upper: upperThreshold
5491 });
5492 }
5493
5494 function handleOnBlur(event) {
5495 var sanitizedValue = sanitizeValue(event.target.value, lowerThreshold, upperThreshold);
5496
5497 if (event.target.value !== sanitizedValue) {
5498 dispatch({
5499 type: 'set',
5500 amount: sanitizedValue
5501 });
5502 }
5503 }
5504
5505 function shortcutKeys(event) {
5506 if (upperThreshold && event.keyCode === 35) {
5507 dispatch({
5508 type: 'set',
5509 amount: upperThreshold
5510 });
5511 }
5512
5513 if (lowerThreshold && event.keyCode === 36) {
5514 dispatch({
5515 type: 'set',
5516 amount: lowerThreshold
5517 });
5518 }
5519 }
5520
5521 var RenderedButton = useOutlineButton ? OutlineButton : Button;
5522 return React.createElement(IncrementerWrapper, null, React.createElement(IncrementerButton, {
5523 as: RenderedButton,
5524 styleType: "primary",
5525 onClick: decrementValue,
5526 disabled: isDecrementDisabled
5527 }, React.createElement(ScreenReaderButtonText, null, "Decrement value by", decrementAmount), React.createElement(Icon, {
5528 name: "minus",
5529 size: 22
5530 })), React.createElement(IncrementerTextbox, _extends({}, theme.validationInputColor.default, other, {
5531 type: "number",
5532 role: "spinbutton",
5533 max: upperThreshold,
5534 min: lowerThreshold,
5535 step: incrementAmount,
5536 value: state.count,
5537 "aria-valuemin": lowerThreshold,
5538 "aria-valuemax": upperThreshold,
5539 "aria-valuenow": state.count,
5540 onKeyDown: shortcutKeys,
5541 onChange: setValue,
5542 onBlur: handleOnBlur
5543 })), React.createElement(IncrementerButton, {
5544 as: RenderedButton,
5545 styleType: "primary",
5546 onClick: incrementValue,
5547 disabled: isIncrementDisabled
5548 }, React.createElement(ScreenReaderButtonText, null, "Increment value by", incrementAmount), React.createElement(Icon, {
5549 name: "add",
5550 size: 22
5551 })));
5552}
5553
5554Incrementer.propTypes = process.env.NODE_ENV !== "production" ? {
5555 /** The starting value, 'null' is allowed for a blank value */
5556 startingValue: PropTypes.number,
5557
5558 /** The amount to increment the value by */
5559 incrementAmount: PropTypes.number,
5560
5561 /** The amount to decrement the value by */
5562 decrementAmount: PropTypes.number,
5563
5564 /** The highest value the incrementer can be incremented to */
5565 upperThreshold: PropTypes.number,
5566
5567 /** The lowest value the incrementer can be decremented to */
5568 lowerThreshold: PropTypes.number,
5569
5570 /** Use outline button styles */
5571 useOutlineButton: PropTypes.bool,
5572
5573 /** Function to execute with the new value */
5574 onValueUpdated: PropTypes.func
5575} : {};
5576Incrementer.defaultProps = {
5577 startingValue: 0,
5578 incrementAmount: 1,
5579 decrementAmount: 1,
5580 onValueUpdated: _noop,
5581 upperThreshold: null,
5582 lowerThreshold: null,
5583 useOutlineButton: false
5584};
5585
5586function getCallToActionChildren(children) {
5587 var _context;
5588
5589 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
5590 var allChildren = React.Children.toArray(children);
5591
5592 var actions = _mapInstanceProperty(_context = _filterInstanceProperty(allChildren).call(allChildren, function (child) {
5593 return child.type.name === 'Action';
5594 })).call(_context, function (action) {
5595 if (type === 'light') {
5596 var _styleType = action.props.isPrimary ? 'primary' : 'darkDefault';
5597
5598 return React.cloneElement(action, {
5599 styleType: _styleType
5600 });
5601 }
5602
5603 var styleType = action.props.isPrimary ? 'primary' : 'default';
5604 return React.cloneElement(action, {
5605 styleType: styleType
5606 });
5607 });
5608
5609 var nonActions = _filterInstanceProperty(allChildren).call(allChildren, function (child) {
5610 return child.type.name !== 'Action';
5611 });
5612
5613 return {
5614 actions: actions,
5615 nonActions: nonActions
5616 };
5617}
5618
5619function ownKeys$9(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
5620
5621function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$9(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$9(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
5622
5623function _templateObject2$m() {
5624 var data = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-end;\n"]);
5625
5626 _templateObject2$m = function _templateObject2() {
5627 return data;
5628 };
5629
5630 return data;
5631}
5632
5633function _templateObject$P() {
5634 var data = _taggedTemplateLiteral(["\n flex-basis: 100%;\n"]);
5635
5636 _templateObject$P = function _templateObject() {
5637 return data;
5638 };
5639
5640 return data;
5641}
5642var Container$1 = styled.div(_templateObject$P());
5643var CallToActionContainer = styled.div(_templateObject2$m());
5644
5645function CallToAction(_ref) {
5646 var children = _ref.children,
5647 rest = _objectWithoutProperties(_ref, ["children"]);
5648
5649 var _getCallToActionChild = getCallToActionChildren(children),
5650 actions = _getCallToActionChild.actions,
5651 nonActions = _getCallToActionChild.nonActions;
5652
5653 var props = _objectSpread$9({}, rest, {
5654 isDismissable: false
5655 });
5656
5657 return React.createElement(React.Fragment, null, React.createElement(Notification$1, props, React.createElement(Container$1, null, nonActions)), React.createElement(CallToActionContainer, null, actions));
5658}
5659
5660CallToAction.propTypes = process.env.NODE_ENV !== "production" ? {
5661 children: PropTypes.any
5662} : {};
5663CallToAction.defaultProps = {
5664 children: undefined
5665};
5666
5667function ownKeys$a(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { keys.push.apply(keys, _Object$getOwnPropertySymbols(object)); } if (enumerableOnly) keys = _filterInstanceProperty(keys).call(keys, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
5668
5669function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$a(source, true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys$a(source)).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
5670
5671function _templateObject2$n() {
5672 var data = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-end;\n"]);
5673
5674 _templateObject2$n = function _templateObject2() {
5675 return data;
5676 };
5677
5678 return data;
5679}
5680
5681function _templateObject$Q() {
5682 var data = _taggedTemplateLiteral(["\n flex-basis: 100%;\n"]);
5683
5684 _templateObject$Q = function _templateObject() {
5685 return data;
5686 };
5687
5688 return data;
5689}
5690var Container$2 = styled.div(_templateObject$Q());
5691var CallToActionContainer$1 = styled.div(_templateObject2$n());
5692
5693function LightCallToAction(_ref) {
5694 var children = _ref.children,
5695 rest = _objectWithoutProperties(_ref, ["children"]);
5696
5697 var _getCallToActionChild = getCallToActionChildren(children, 'light'),
5698 actions = _getCallToActionChild.actions,
5699 nonActions = _getCallToActionChild.nonActions;
5700
5701 var props = _objectSpread$a({}, rest, {
5702 isDismissable: false
5703 });
5704
5705 return React.createElement(LightNotification, props, React.createElement(Container$2, null, nonActions, React.createElement(CallToActionContainer$1, null, actions)));
5706}
5707
5708LightCallToAction.propTypes = process.env.NODE_ENV !== "production" ? {
5709 children: PropTypes.any
5710} : {};
5711LightCallToAction.defaultProps = {
5712 children: undefined
5713};
5714
5715function _templateObject$R() {
5716 var data = _taggedTemplateLiteral(["\n :not(:first-of-type) {\n margin-left: 15px;\n }\n"]);
5717
5718 _templateObject$R = function _templateObject() {
5719 return data;
5720 };
5721
5722 return data;
5723}
5724var ActionButton$1 = styled(Button)(_templateObject$R());
5725function Action(_ref) {
5726 var isPrimary = _ref.isPrimary,
5727 children = _ref.children,
5728 rest = _objectWithoutProperties(_ref, ["isPrimary", "children"]);
5729
5730 return React.createElement(ActionButton$1, rest, children);
5731}
5732Action.propTypes = process.env.NODE_ENV !== "production" ? {
5733 isPrimary: PropTypes.bool,
5734 children: PropTypes.node
5735} : {};
5736Action.defaultProps = {
5737 isPrimary: false,
5738 children: null
5739};
5740
5741var sizes = {
5742 ACTIVE: 45,
5743 INACTIVE: 20,
5744 DESKTOP: 41,
5745 TRACKING_LINE_HEIGHT: 3
5746};
5747
5748function _templateObject6$3() {
5749 var data = _taggedTemplateLiteral(["\n list-style-type: none;\n max-width: ", "%;\n align-items: center;\n\n &:first-child {\n &,\n & button {\n align-items: flex-start;\n text-align: left;\n }\n }\n\n &:last-child {\n &,\n & button {\n align-items: flex-end;\n text-align: right;\n }\n }\n\n @media (min-width: ", ") {\n width: ", "%;\n\n &:first-child,\n &:last-child {\n &,\n & button {\n align-items: center;\n text-align: center;\n }\n }\n }\n"]);
5750
5751 _templateObject6$3 = function _templateObject6() {
5752 return data;
5753 };
5754
5755 return data;
5756}
5757
5758function _templateObject5$4() {
5759 var data = _taggedTemplateLiteral(["\n margin-top: 0;\n\n &::before {\n border: 5px solid ", ";\n border-radius: ", "px;\n color: ", ";\n font-size: ", "px;\n font-weight: bold;\n height: ", "px;\n line-height: 1.5em;\n width: ", "px;\n\n @media (min-width: ", ") {\n border-width: 5px;\n font-size: ", "px;\n height: ", "px;\n line-height: 1.5em;\n width: ", "px;\n }\n }\n\n span {\n color: ", ";\n display: inline;\n font-weight: bold;\n\n @media (min-width: ", ") {\n font-weight: bold;\n }\n }\n"]);
5760
5761 _templateObject5$4 = function _templateObject5() {
5762 return data;
5763 };
5764
5765 return data;
5766}
5767
5768function _templateObject4$b() {
5769 var data = _taggedTemplateLiteral(["\n cursor: pointer;\n\n &:hover {\n &::before {\n box-shadow: rgba(0, 0, 0, 0.35) 0 0 3px 1px;\n }\n }\n\n &:active,\n &:hover,\n &:focus {\n span {\n text-decoration: underline;\n }\n }\n\n &:focus {\n &::before {\n box-shadow: ", " 0 0 4px 2px;\n }\n span {\n outline: 1px dotted ", ";\n }\n }\n\n &::before {\n border-color: ", ";\n @media (min-width: ", ") {\n border-width: 5px;\n font-weight: bold;\n line-height: 1.5em;\n }\n }\n\n span {\n @media (min-width: ", ") {\n font-weight: bold;\n }\n }\n"]);
5770
5771 _templateObject4$b = function _templateObject4() {
5772 return data;
5773 };
5774
5775 return data;
5776}
5777
5778function _templateObject3$g() {
5779 var data = _taggedTemplateLiteral(["\n cursor: pointer;\n &:hover {\n &::before {\n box-shadow: rgba(0, 0, 0, 0.35) 0 0 3px 1px;\n }\n }\n\n &:active,\n &:hover,\n &:focus {\n span {\n text-decoration: underline;\n }\n }\n"]);
5780
5781 _templateObject3$g = function _templateObject3() {
5782 return data;
5783 };
5784
5785 return data;
5786}
5787
5788function _templateObject2$o() {
5789 var data = _taggedTemplateLiteral(["\n align-items: center;\n background: none;\n border: none;\n counter-increment: progress-tracker-counter;\n display: flex;\n flex-flow: column nowrap;\n font-family: 'Source Sans Pro', sans-serif;\n margin-top: ", "px;\n padding: 0;\n text-align: center;\n\n &:active,\n &:hover,\n &:focus {\n outline: none;\n }\n\n @media (min-width: ", ") {\n font-size: 18px;\n margin-top: 0;\n width: 100%;\n }\n\n span {\n color: ", ";\n display: none;\n font-size: 18px;\n line-height: 1.1em;\n\n @media (min-width: ", ") {\n display: inline;\n font-weight: normal;\n }\n }\n\n &::before {\n background-color: white;\n border: ", ";\n border-radius: ", "px;\n box-shadow: 0 0 0 3px white;\n box-sizing: border-box;\n color: ", ";\n content: counter(progress-tracker-counter);\n display: block;\n font-size: ", "px;\n height: ", "px;\n line-height: 1em;\n margin-bottom: 5px;\n text-align: center;\n width: ", "px;\n position: relative;\n\n @media (min-width: ", ") {\n border-radius: ", "px;\n border-width: 3px;\n font-size: ", "px;\n font-weight: normal;\n height: ", "px;\n line-height: 1.7em;\n width: ", "px;\n }\n }\n"]);
5790
5791 _templateObject2$o = function _templateObject2() {
5792 return data;
5793 };
5794
5795 return data;
5796}
5797
5798function _templateObject$S() {
5799 var data = _taggedTemplateLiteral(["\n align-items: flex-start;\n background-image: linear-gradient(\n to right,\n ", " 0%,\n ", "\n ", "%,\n ", "\n ", "%,\n ", " 100%\n );\n background-size: 100% ", "px;\n background-position: 0\n ", "px;\n background-repeat: no-repeat;\n counter-reset: progress-tracker-counter;\n display: flex;\n flex-flow: row nowrap;\n justify-content: space-between;\n margin-left: 0;\n padding-left: 0;\n width: 100%;\n\n @media (min-width: ", ") {\n background-position: center\n ", "px;\n background-size: ", "%\n ", "px;\n }\n"]);
5800
5801 _templateObject$S = function _templateObject() {
5802 return data;
5803 };
5804
5805 return data;
5806}
5807var ACTIVE = sizes.ACTIVE,
5808 INACTIVE = sizes.INACTIVE,
5809 DESKTOP = sizes.DESKTOP,
5810 TRACKING_LINE_HEIGHT = sizes.TRACKING_LINE_HEIGHT;
5811
5812var getProgressLineBreakPercentage = function getProgressLineBreakPercentage(activeStepIndex, numberOfSteps) {
5813 return activeStepIndex / (numberOfSteps - 1) * 100;
5814};
5815
5816var getProgressItemWidthPercentage = function getProgressItemWidthPercentage(baseAmount) {
5817 return 1 / baseAmount * 100;
5818};
5819
5820var getCenterTopPosition = function getCenterTopPosition(containerHeight, itemHeight) {
5821 return containerHeight / 2 - itemHeight / 2;
5822};
5823
5824var stepStates = {
5825 active: 'active',
5826 pastStep: 'isPastStep',
5827 clickableFutureStep: 'clickableFutureStep'
5828};
5829var ProgressContainer = styled.ol(_templateObject$S(), function (props) {
5830 return props.theme.colors.gray9;
5831}, function (props) {
5832 return props.theme.colors.gray9;
5833}, function (props) {
5834 return getProgressLineBreakPercentage(props.activeStepIndex, props.numberOfSteps);
5835}, function (props) {
5836 return props.theme.colors.gray5;
5837}, function (props) {
5838 return getProgressLineBreakPercentage(props.activeStepIndex, props.numberOfSteps);
5839}, function (props) {
5840 return props.theme.colors.gray5;
5841}, function () {
5842 return TRACKING_LINE_HEIGHT;
5843}, function () {
5844 return getCenterTopPosition(ACTIVE, TRACKING_LINE_HEIGHT);
5845}, function (props) {
5846 return props.theme.screenSize.tablet;
5847}, function () {
5848 return getCenterTopPosition(DESKTOP, TRACKING_LINE_HEIGHT);
5849}, function (props) {
5850 return 100 - getProgressItemWidthPercentage(props.numberOfSteps);
5851}, function () {
5852 return TRACKING_LINE_HEIGHT;
5853});
5854ProgressContainer.propTypes = {
5855 activePercentage: PropTypes.number
5856};
5857var BasicProgressButton = styled.button(_templateObject2$o(), function () {
5858 return getCenterTopPosition(ACTIVE, INACTIVE);
5859}, function (props) {
5860 return props.theme.screenSize.tablet;
5861}, function (props) {
5862 return props.theme.colors.gray9;
5863}, function (props) {
5864 return props.theme.screenSize.tablet;
5865}, function (props) {
5866 return "1px solid ".concat(props.theme.colors.gray5);
5867}, function () {
5868 return INACTIVE;
5869}, function (props) {
5870 return props.theme.colors.gray9;
5871}, function () {
5872 return INACTIVE * 0.8;
5873}, function () {
5874 return INACTIVE;
5875}, function () {
5876 return INACTIVE;
5877}, function (props) {
5878 return props.theme.screenSize.tablet;
5879}, function () {
5880 return DESKTOP;
5881}, function () {
5882 return DESKTOP * 0.488;
5883}, function () {
5884 return DESKTOP;
5885}, function () {
5886 return DESKTOP;
5887});
5888var FutureProgressButton = styled(BasicProgressButton)(_templateObject3$g());
5889var PastProgressButton = styled(BasicProgressButton)(_templateObject4$b(), function (props) {
5890 return props.theme.colors.inputFocus;
5891}, function (props) {
5892 return props.theme.colors.inputFocus;
5893}, function (props) {
5894 return props.theme.colors.gray9;
5895}, function (props) {
5896 return props.theme.screenSize.tablet;
5897}, function (props) {
5898 return props.theme.screenSize.tablet;
5899});
5900var ActiveProgressButton = styled(BasicProgressButton)(_templateObject5$4(), function (props) {
5901 return props.theme.brandColors.vbMagenta;
5902}, ACTIVE, function (props) {
5903 return props.theme.brandColors.vbMagenta;
5904}, ACTIVE * 0.488, ACTIVE, ACTIVE, function (props) {
5905 return props.theme.screenSize.tablet;
5906}, function () {
5907 return DESKTOP * 0.488;
5908}, function () {
5909 return DESKTOP;
5910}, function () {
5911 return DESKTOP;
5912}, function (props) {
5913 return props.theme.brandColors.vbMagenta;
5914}, function (props) {
5915 return props.theme.screenSize.tablet;
5916});
5917var ProgressLi = styled.li(_templateObject6$3(), function (props) {
5918 return getProgressItemWidthPercentage(props.numberOfSteps - 1);
5919}, function (props) {
5920 return props.theme.screenSize.tablet;
5921}, function (props) {
5922 return getProgressItemWidthPercentage(props.numberOfSteps);
5923});
5924
5925function getProgressItemType(itemType) {
5926 switch (itemType) {
5927 case stepStates.active:
5928 return ActiveProgressButton;
5929
5930 case stepStates.pastStep:
5931 return PastProgressButton;
5932
5933 case stepStates.clickableFutureStep:
5934 return FutureProgressButton;
5935
5936 default:
5937 return BasicProgressButton;
5938 }
5939}
5940
5941function getStepState(isActiveStep, isPastStep, canClickFutureStep) {
5942 if (isActiveStep) {
5943 return stepStates.active;
5944 }
5945
5946 if (isPastStep) {
5947 return stepStates.pastStep;
5948 }
5949
5950 if (canClickFutureStep) {
5951 return stepStates.clickableFutureStep;
5952 }
5953
5954 return stepStates.active;
5955}
5956
5957function ProgressItem(_ref) {
5958 var active = _ref.active,
5959 isPastStep = _ref.isPastStep,
5960 numberOfSteps = _ref.numberOfSteps,
5961 onPastStepClicked = _ref.onPastStepClicked,
5962 canClickFutureStep = _ref.canClickFutureStep,
5963 label = _ref.label;
5964 var itemType;
5965
5966 if (isPastStep || active || canClickFutureStep) {
5967 itemType = getStepState(active, isPastStep, canClickFutureStep);
5968 }
5969
5970 var ProgressItemType = getProgressItemType(itemType);
5971 var listItemProps = {
5972 numberOfSteps: numberOfSteps,
5973 disabled: !isPastStep && !canClickFutureStep,
5974 onClick: onPastStepClicked
5975 };
5976 return React.createElement(ProgressLi, {
5977 numberOfSteps: numberOfSteps
5978 }, React.createElement(ProgressItemType, listItemProps, React.createElement("span", null, label)));
5979}
5980ProgressItem.propTypes = process.env.NODE_ENV !== "production" ? {
5981 active: PropTypes.bool.isRequired,
5982 isPastStep: PropTypes.bool.isRequired,
5983 numberOfSteps: PropTypes.number.isRequired,
5984 onPastStepClicked: PropTypes.func,
5985 label: PropTypes.string,
5986 canClickFutureStep: PropTypes.bool
5987} : {};
5988ProgressItem.defaultProps = {
5989 onPastStepClicked: function onPastStepClicked() {},
5990 label: '',
5991 canClickFutureStep: false
5992};
5993
5994var getMappedSteps = function getMappedSteps(steps, _onPastStepClicked, _onFutureStepClicked) {
5995 var isPastStep = true;
5996 return _mapInstanceProperty(steps).call(steps, function (step, index) {
5997 var _context;
5998
5999 isPastStep = !(step.active || !isPastStep);
6000 return React.createElement(ProgressItem
6001 /* eslint-disable react/no-array-index-key */
6002 , {
6003 key: _concatInstanceProperty(_context = "".concat(index, "-")).call(_context, step.label)
6004 /* eslint-enable */
6005 ,
6006 active: step.active,
6007 isPastStep: isPastStep,
6008 numberOfSteps: steps.length,
6009 onPastStepClicked: function onPastStepClicked() {
6010 return _onPastStepClicked(index);
6011 },
6012 canClickFutureStep: _onFutureStepClicked !== null && _onFutureStepClicked !== undefined,
6013 onFutureStepClicked: function onFutureStepClicked() {
6014 return _onFutureStepClicked(index);
6015 },
6016 label: step.label
6017 });
6018 });
6019};
6020
6021var getIndexOfActiveStep = function getIndexOfActiveStep(steps) {
6022 return _findIndexInstanceProperty(steps).call(steps, function (step) {
6023 return step.active;
6024 });
6025};
6026
6027function ProgressTracker(_ref) {
6028 var steps = _ref.steps,
6029 onPastStepClicked = _ref.onPastStepClicked,
6030 onFutureStepClicked = _ref.onFutureStepClicked;
6031 return React.createElement(ProgressContainer, {
6032 "data-testid": "progress-tracker",
6033 activeStepIndex: getIndexOfActiveStep(steps),
6034 numberOfSteps: steps.length
6035 }, getMappedSteps(steps, onPastStepClicked, onFutureStepClicked));
6036}
6037
6038ProgressTracker.propTypes = process.env.NODE_ENV !== "production" ? {
6039 steps: PropTypes.arrayOf(PropTypes.shape({
6040 active: PropTypes.bool,
6041 label: PropTypes.string
6042 })),
6043 onPastStepClicked: PropTypes.func,
6044 onFutureStepClicked: PropTypes.func
6045} : {};
6046ProgressTracker.defaultProps = {
6047 steps: [],
6048 onPastStepClicked: function onPastStepClicked() {},
6049 onFutureStepClicked: null
6050};
6051var ProgressTracker$1 = withTheme(ProgressTracker);
6052
6053function _templateObject4$c() {
6054 var data = _taggedTemplateLiteral(["\n border: 1px solid black;\n text-align: left;\n margin: 15px 0px;\n thead {\n font-weight: bold;\n }\n th,\n td {\n border: 1px solid black;\n padding: 8px;\n vertical-align: middle;\n }\n td {\n height: 63px;\n }\n"]);
6055
6056 _templateObject4$c = function _templateObject4() {
6057 return data;
6058 };
6059
6060 return data;
6061}
6062
6063function _templateObject3$h() {
6064 var data = _taggedTemplateLiteral(["\n background-image: url(https://bdaim-webexcdn-p.azureedge.net/es-assets/images/star-rating-mask.svg);\n background-color: #ffc436;\n height: 28px;\n"]);
6065
6066 _templateObject3$h = function _templateObject3() {
6067 return data;
6068 };
6069
6070 return data;
6071}
6072
6073function _templateObject2$p() {
6074 var data = _taggedTemplateLiteral(["\n background-image: url(https://bdaim-webexcdn-p.azureedge.net/es-assets/images/poor-performer-mask.svg);\n background-size: 100% 100%;\n height: 30px;\n width: 150px;\n"]);
6075
6076 _templateObject2$p = function _templateObject2() {
6077 return data;
6078 };
6079
6080 return data;
6081}
6082
6083function _templateObject$T() {
6084 var data = _taggedTemplateLiteral(["\n ul {\n display: block;\n list-style-type: disc;\n margin-bottom: 10px;\n margin-left: 0;\n margin-right: 0;\n padding-left: 40px;\n ul {\n list-style-type: circle;\n }\n }\n"]);
6085
6086 _templateObject$T = function _templateObject() {
6087 return data;
6088 };
6089
6090 return data;
6091}
6092var HelpContent = styled(Modal.Body)(_templateObject$T());
6093var CautionRating = styled.div(_templateObject2$p());
6094var StarRating = styled.div(_templateObject3$h());
6095var RatingTable = styled(Table)(_templateObject4$c());
6096function StarRatingExplanation(props) {
6097 return React.createElement(Modal, {
6098 show: props.show,
6099 size: "large",
6100 onHide: props.closeModal
6101 }, React.createElement(Modal.Header, null, formatMessage('Plan Ratings')), React.createElement(HelpContent, null, React.createElement("p", null, formatMessage('The Overall Plan Rating combines scores, as rated by Medicare, for the types of services each plan offers.')), React.createElement(RatingTable, null, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", null, formatMessage('Legend')), React.createElement("th", null, formatMessage('Description')))), React.createElement("tbody", null, React.createElement("tr", null, React.createElement("td", null, React.createElement(CautionRating, null)), React.createElement("td", null, formatMessage('Caution - The plan has received low summary ratings from Medicare three years in a row.'))), React.createElement("tr", null, React.createElement("td", null, React.createElement(StarRating, null)), React.createElement("td", null, formatMessage("The plan has been given a 5 out 5 stars rating. People with Medicare can switch into these plans at any time during the year, even if it's not during an enrollment period."))))), React.createElement("strong", null, formatMessage('What is being measured?')), React.createElement("ul", null, React.createElement("li", null, formatChildren(formatMessage('<0>For plans covering health services</0>, the overall score for quality of those services covers <0>36 different topics in 5 categories:</0>'), [React.createElement("strong", {
6102 key: "bold"
6103 })]), React.createElement("ul", null, React.createElement("li", null, formatChildren(formatMessage('<0>Staying healthy: screenings, tests, and vaccines:</0> Includes how often members got various screening tests, vaccines, and other check-ups that help them stay healthy.'), [React.createElement("strong", {
6104 key: "bold"
6105 })])), React.createElement("li", null, formatChildren(formatMessage('<0>Managing chronic (long-term) conditions:</0> Includes how often members with different conditions got certain tests and treatments that help them manage their condition.'), [React.createElement("strong", {
6106 key: "bold"
6107 })])), React.createElement("li", null, formatChildren(formatMessage('<0>Ratings of health plan responsiveness and care:</0> Includes ratings of member satisfaction with the plan.'), [React.createElement("strong", {
6108 key: "bold"
6109 })])), React.createElement("li", null, formatChildren(formatMessage('<0>Member complaints, problems getting services, and choosing to leave the plan:</0> Includes how often members filed complaints against the plan and how often members choose to leave the plan. Includes how often Medicare found problems with the plan.'), [React.createElement("strong", {
6110 key: "bold"
6111 })])), React.createElement("li", null, formatChildren(formatMessage('<0>Health plan customer service:</0> Includes how well the plan handles calls and makes decisions about member appeals for health coverage.'), [React.createElement("strong", {
6112 key: "bold"
6113 })])))), React.createElement("li", null, formatChildren(formatMessage('<0>For plans covering drug services,</0> the overall score for quality of those services covers <0>17 different topics in 4 categories:</0>'), [React.createElement("strong", {
6114 key: "bold"
6115 })]), React.createElement("ul", null, React.createElement("li", null, formatChildren(formatMessage('<0>Drug plan customer service:</0> Includes how well the plan handles calls and makes decisions about member appeals for drug coverage.'), [React.createElement("strong", {
6116 key: "bold"
6117 })])), React.createElement("li", null, formatChildren(formatMessage('<0>Member complaints, problems getting services, and choosing to leave the plan:</0> Includes how often members filed complaints about the plan and how often members choose to leave the plan. Includes how often Medicare found problems with the plan.'), [React.createElement("strong", {
6118 key: "bold"
6119 })])), React.createElement("li", null, formatChildren(formatMessage("<0>Member experience with plan's drug services:</0> Includes ratings of member satisfaction with the plan."), [React.createElement("strong", {
6120 key: "bold"
6121 })])), React.createElement("li", null, formatChildren(formatMessage('<0>Drug pricing and patient safety:</0> Includes how well the plan prices prescriptions and provides updated and accurate pricing information for the Medicare website. Includes information on how often members with certain medical conditions get prescription drugs that are considered safer and clinically recommended for their condition. Includes information on whether members are taking certain medications as directed.'), [React.createElement("strong", {
6122 key: "bold"
6123 })])))), React.createElement("li", null, formatChildren(formatMessage('<0>For plans covering both health and drug services,</0> the overall score for quality of those services covers <0>all of the 53 topics listed above.</0>'), [React.createElement("strong", {
6124 key: "bold"
6125 })]))), React.createElement("p", null, React.createElement("strong", null, formatMessage('Where does the information for the Overall Plan Rating come from?'))), React.createElement("ul", null, React.createElement("li", null, formatChildren(formatMessage('For quality of <0>health services</0>, the information comes from sources that include:'), [React.createElement("strong", {
6126 key: "bold"
6127 })]), React.createElement("ul", null, React.createElement("li", null, formatMessage('Member surveys done by Medicare')), React.createElement("li", null, formatMessage('Information from clinicians')), React.createElement("li", null, formatMessage('Information submitted by the plans')), React.createElement("li", null, formatMessage("Results from Medicare's regular monitoring activities")))), React.createElement("li", null, formatChildren(formatMessage('For quality of <0>drug services</0>, the information comes from sources that include:'), [React.createElement("strong", {
6128 key: "bold"
6129 })]), React.createElement("ul", null, React.createElement("li", null, formatMessage('Member surveys done by Medicare')), React.createElement("li", null, formatMessage('Reviews of billing and other information that plans submit to Medicare')), React.createElement("li", null, formatMessage("Results from Medicare's regular monitoring activities"))))), React.createElement("p", null, React.createElement("strong", null, formatMessage('Why is the Overall Plan Rating important?'))), React.createElement("p", null, formatMessage('The Overall Plan Rating gives you a single summary score that makes it easy for you to compare plans based on quality and performance. Learn more about differences among plans by looking at the detailed ratings.')), React.createElement("p", null, formatMessage('Medicare evaluates plans based on a 5-Star rating system. Star Ratings are calculated each year and may change from one year to the next.'))), React.createElement(Modal.Footer, null, React.createElement(ModalButtonContainer, null, React.createElement(Button, {
6130 onClick: props.closeModal
6131 }, formatMessage('Close')))));
6132}
6133
6134function _templateObject5$5() {
6135 var data = _taggedTemplateLiteral(["\n background-image: url(https://bdaim-webexcdn-p.azureedge.net/es-assets/images/poor-performer-mask.svg);\n background-size: 100% 100%;\n height: 30px;\n margin-top: -5px;\n"]);
6136
6137 _templateObject5$5 = function _templateObject5() {
6138 return data;
6139 };
6140
6141 return data;
6142}
6143
6144function _templateObject4$d() {
6145 var data = _taggedTemplateLiteral(["\n background-image: url(https://bdaim-webexcdn-p.azureedge.net/es-assets/images/star-rating-mask.svg);\n height: 25px;\n margin-top: -23px;\n"]);
6146
6147 _templateObject4$d = function _templateObject4() {
6148 return data;
6149 };
6150
6151 return data;
6152}
6153
6154function _templateObject3$i() {
6155 var data = _taggedTemplateLiteral(["\n background-color: #ffc436;\n display: block;\n height: 21px;\n margin-left: 2px;\n width: ", ";\n"]);
6156
6157 _templateObject3$i = function _templateObject3() {
6158 return data;
6159 };
6160
6161 return data;
6162}
6163
6164function _templateObject2$q() {
6165 var data = _taggedTemplateLiteral(["\n color: ", ";\n border-bottom: 1px dashed;\n text-decoration: none;\n &:hover,\n &:focus {\n color: ", ";\n border-bottom: 1px solid;\n }\n"]);
6166
6167 _templateObject2$q = function _templateObject2() {
6168 return data;
6169 };
6170
6171 return data;
6172}
6173
6174function _templateObject$U() {
6175 var data = _taggedTemplateLiteral(["\n background-color: ", ";\n display: flex;\n flex-direction: column;\n height: 21px;\n margin-top: 3px;\n width: 133px;\n"]);
6176
6177 _templateObject$U = function _templateObject() {
6178 return data;
6179 };
6180
6181 return data;
6182}
6183var StarContainer = styled.div(_templateObject$U(), function (props) {
6184 return !props.isPoorPerformer ? props.theme.colors.gray5 : 'transparent';
6185});
6186var StarRatingLink = styled(LinkButton)(_templateObject2$q(), function (props) {
6187 return props.theme.colors.gray8;
6188}, function (props) {
6189 return props.theme.colors.gray8;
6190});
6191var StarFill = styled.span(_templateObject3$i(), function (props) {
6192 return props.fillWidth;
6193});
6194var StarOverlay = styled.div(_templateObject4$d());
6195var PoorPerformerOverlay = styled.div(_templateObject5$5());
6196
6197function getStarRatingBackgroundWidth(rating) {
6198 var starWidth = 20.2;
6199 var spaceWidth = 7;
6200 var ratingFloor = Math.floor(rating);
6201 var spaceNumber = ratingFloor === rating && rating !== 0 ? ratingFloor - 1 : ratingFloor;
6202 var spacingAmount = spaceWidth * spaceNumber;
6203 var width = starWidth * rating;
6204 return "".concat(width + spacingAmount, "px");
6205}
6206
6207function getAriaText(isPoorPerformer, rating) {
6208 if (isPoorPerformer) {
6209 return formatMessage('CMS has indicated that this plan is a poor performer');
6210 }
6211
6212 if (rating !== null) {
6213 return formatMessage("CMS has rated this plan {rating} out of five stars", {
6214 rating: rating
6215 });
6216 }
6217
6218 return '';
6219}
6220
6221function StarRating$1(_ref) {
6222 var rating = _ref.rating,
6223 isPoorPerformer = _ref.isPoorPerformer,
6224 onExplanationOpen = _ref.onExplanationOpen;
6225
6226 var _useState = useState(false),
6227 _useState2 = _slicedToArray(_useState, 2),
6228 showHelp = _useState2[0],
6229 updateShowHelp = _useState2[1];
6230
6231 var ariaText = getAriaText(isPoorPerformer, rating);
6232 return React.createElement(React.Fragment, null, React.createElement(StarRatingLink, {
6233 onClick: function onClick() {
6234 if (onExplanationOpen) {
6235 onExplanationOpen();
6236 }
6237
6238 updateShowHelp(true);
6239 }
6240 }, rating === null && React.createElement("span", null, formatMessage('Star Rating not available')), rating !== null && React.createElement(StarContainer, {
6241 "aria-label": ariaText,
6242 isPoorPerformer: isPoorPerformer
6243 }, !isPoorPerformer ? React.createElement("div", null, React.createElement(StarFill, {
6244 fillWidth: getStarRatingBackgroundWidth(rating)
6245 }), React.createElement(StarOverlay, null)) : React.createElement("div", null, React.createElement(PoorPerformerOverlay, null)))), React.createElement(StarRatingExplanation, {
6246 show: showHelp,
6247 closeModal: function closeModal() {
6248 return updateShowHelp(false);
6249 }
6250 }));
6251}
6252
6253StarRating$1.propTypes = process.env.NODE_ENV !== "production" ? {
6254 rating: PropTypes.number.isRequired,
6255 isPoorPerformer: PropTypes.bool,
6256 onExplanationOpen: PropTypes.func
6257} : {};
6258StarRating$1.defaultProps = {
6259 isPoorPerformer: false,
6260 onExplanationOpen: function onExplanationOpen() {}
6261};
6262
6263function _templateObject2$r() {
6264 var data = _taggedTemplateLiteral(["\n stroke: ", ";\n stroke-dasharray: 187;\n stroke-dashoffset: 37.4;\n transform-origin: center;\n animation: ", " 1.4s ease-in-out infinite,\n ", " 3.5s ease-in-out infinite;\n"]);
6265
6266 _templateObject2$r = function _templateObject2() {
6267 return data;
6268 };
6269
6270 return data;
6271}
6272
6273function _templateObject$V() {
6274 var data = _taggedTemplateLiteral(["\n animation: ", " 1.4s linear infinite;\n\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n animation: ", " 1.4s linear infinite;\n }\n"]);
6275
6276 _templateObject$V = function _templateObject() {
6277 return data;
6278 };
6279
6280 return data;
6281}
6282var rotatorAnimation = keyframes(["0%{transform:rotate(0deg);}100%{transform:rotate(270deg);}"]);
6283var ieAnimation = keyframes(["0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}"]);
6284var dashAnimation = keyframes(["0%{stroke-dashoffset:187;}50%{stroke-dashoffset:37.4;transform:rotate(135deg);}100%{stroke-dashoffset:187;transform:rotate(450deg);}"]);
6285
6286var colorsAnimation = function colorsAnimation(props) {
6287 return keyframes(["0%{stroke:", ";}40%{stroke:", ";}80%{stroke:", ";}100%{stroke:", ";}"], props.theme.brandColors.vbBlue, props.theme.brandColors.vbGreen, props.theme.brandColors.vbMagenta, props.theme.brandColors.vbBlue);
6288};
6289
6290var SpinnerSvg = styled.svg(_templateObject$V(), rotatorAnimation, ieAnimation);
6291var SpinnerCircle = styled.circle(_templateObject2$r(), function (props) {
6292 return props.theme.colors.violet;
6293}, dashAnimation, colorsAnimation);
6294
6295var Spinner = function Spinner(_ref) {
6296 var _context, _context2;
6297
6298 var title = _ref.title,
6299 description = _ref.description,
6300 other = _objectWithoutProperties(_ref, ["title", "description"]);
6301
6302 var titleId = title && "".concat(useUniqueId(other.id), "-title");
6303 var descId = description && "".concat(useUniqueId(other.id), "-desc");
6304 return React.createElement(SpinnerSvg, _extends({
6305 viewBox: "0 0 66 66",
6306 xmlns: "http://www.w3.org/2000/svg",
6307 role: "img",
6308 "aria-labelledby": _trimInstanceProperty(_context = _concatInstanceProperty(_context2 = "".concat(titleId, " ")).call(_context2, descId)).call(_context)
6309 }, other), title && React.createElement("title", {
6310 id: titleId
6311 }, title), description && React.createElement("desc", {
6312 id: descId
6313 }, description), React.createElement(SpinnerCircle, {
6314 fill: "none",
6315 strokeWidth: "6",
6316 strokeLinecap: "round",
6317 cx: "33",
6318 cy: "33",
6319 r: "30"
6320 }));
6321}; // eslint-disable-next-line consistent-return
6322
6323
6324var descriptionTitleProp = process.env.NODE_ENV !== "production" ? function (props, propName, componentName) {
6325 if (!props.title && !props.description) {
6326 return new Error("You must provide a title, description, or both to ".concat(componentName, "."));
6327 }
6328} : {};
6329Spinner.propTypes = process.env.NODE_ENV !== "production" ? {
6330 /** The title of the spinner for screen readers. This or `description` is
6331 * required */
6332 title: descriptionTitleProp,
6333
6334 /** The description of the spinner for screen readers. This or `title` is
6335 * required */
6336 description: descriptionTitleProp
6337} : {};
6338Spinner.defaultProps = {
6339 title: '',
6340 description: ''
6341};
6342
6343function getWindowSize() {
6344 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
6345 defaultWidth = _ref.defaultWidth,
6346 defaultHeight = _ref.defaultHeight;
6347
6348 return {
6349 windowWidth: defaultWidth || document.body.clientWidth,
6350 windowHeight: defaultHeight || document.body.clientHeight
6351 };
6352}
6353
6354function withWindowSize(ComponentClass) {
6355 var windowSize =
6356 /*#__PURE__*/
6357 function (_React$Component) {
6358 _inherits(windowSize, _React$Component);
6359
6360 function windowSize() {
6361 var _getPrototypeOf2, _context;
6362
6363 var _this;
6364
6365 _classCallCheck(this, windowSize);
6366
6367 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6368 args[_key] = arguments[_key];
6369 }
6370
6371 _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(windowSize)).call.apply(_getPrototypeOf2, _concatInstanceProperty(_context = [this]).call(_context, args)));
6372
6373 _defineProperty(_assertThisInitialized(_this), "state", getWindowSize(_this.props));
6374
6375 _defineProperty(_assertThisInitialized(_this), "handleResize", function () {
6376 var activeTag = document.activeElement.tagName.toLocaleLowerCase();
6377
6378 if (activeTag === 'input' || activeTag === 'select') {
6379 return;
6380 }
6381
6382 _this.setState(getWindowSize());
6383 });
6384
6385 return _this;
6386 }
6387
6388 _createClass(windowSize, [{
6389 key: "componentDidMount",
6390 value: function componentDidMount() {
6391 window.addEventListener('resize', this.handleResize);
6392 }
6393 }, {
6394 key: "componentWillUnmount",
6395 value: function componentWillUnmount() {
6396 window.removeEventListener('resize', this.handleResize);
6397 }
6398 }, {
6399 key: "render",
6400 value: function render() {
6401 return React.createElement(ComponentClass, _extends({}, this.props, {
6402 windowWidth: this.state.windowWidth,
6403 windowHeight: this.state.windowHeight
6404 }));
6405 }
6406 }]);
6407
6408 return windowSize;
6409 }(React.Component);
6410
6411 _defineProperty(windowSize, "defaultProps", {
6412 defaultWidth: null,
6413 defaultHeight: null
6414 });
6415
6416 windowSize.propTypes = process.env.NODE_ENV !== "production" ? {
6417 defaultWidth: PropTypes.number,
6418 defaultHeight: PropTypes.number
6419 } : {};
6420 return windowSize;
6421}
6422
6423function _templateObject$W() {
6424 var data = _taggedTemplateLiteral(["\n html, body, div, span, applet, object, iframe,\n a, big, cite, code, del, dfn, em, img, ins, kbd,\n q, s, samp, strike, tt, var,\n b, u, i, center, fieldset, form, label, legend\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed,\n figure, figcaption, footer, header, hgroup,\n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n border: 0;\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-size: 100%;\n margin: 0;\n padding: 0;\n vertical-align: baseline;\n }\n\n ul, ol {\n margin: 0 1em 25px;\n padding-left: 1em;\n list-style-position: outside;\n }\n\n input, button {\n font: inherit;\n }\n\n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n\n small {\n font-size: 85%;\n }\n\n strong, b {\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-weight: bold;\n }\n\n h1, h2, h3, h4, h5, h6 {\n color: inherit;\n font: inherit;\n font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif;\n font-weight: 300;\n line-height: 1.1;\n margin-bottom: 0.45em;\n margin-top: 0;\n }\n\n h1 {\n font-size: 44.78976px;\n }\n h2 {\n font-size: 37.3248px;\n }\n h3 {\n font-size: 31.104px;\n }\n h4 {\n font-size: 25.92px;\n }\n h5 {\n font-size: 21.6px;\n }\n h6 {\n font-size: 18px;\n }\n"]);
6425
6426 _templateObject$W = function _templateObject() {
6427 return data;
6428 };
6429
6430 return data;
6431}
6432var StyleReset = createGlobalStyle(_templateObject$W());
6433
6434function isValidEmail(emailAddress) {
6435 var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
6436 return re.test(emailAddress);
6437}
6438
6439export { Action, ActionButton, AdditionalHelp, AnswerButton, AnswerGroup, Button, CallToAction, Checkbox, Control, DateInput, DatePicker, Drawer, Dropdown, DropdownButton, Fade, Fieldset, Heading, HorizontalNav, Icon, Incrementer, InlineMessage, Label, LightCallToAction, LightNotification, LinkButton, MaskedTextbox, Menu, Message, MessageNotification, Modal, ModalButtonContainer, Notification$1 as Notification, OutlineButton, Popover, PopoverLink, ProgressTracker$1 as ProgressTracker, RadioButton, RadioGroup, ResponsiveTable, SideNav, SlidingPane, Spinner, StarRating$1 as StarRating, StarRatingExplanation, StripedContainer, StyleReset, TabPanel, Table, Textarea, Textbox, ToggleButton, Tooltip, generateAlphaName, isValidEmail, screenReaderOnly, useTheme, useWindowWidth, withWindowSize };