UNPKG

1.62 MBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom')) :
3 typeof define === 'function' && define.amd ? define(['exports', 'react', 'react-dom'], factory) :
4 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactMD = {}, global.React, global.ReactDOM));
5}(this, (function (exports, React, ReactDOM) { 'use strict';
6
7 var React__default = 'default' in React ? React['default'] : React;
8 var ReactDOM__default = 'default' in ReactDOM ? ReactDOM['default'] : ReactDOM;
9
10 function createCommonjsModule(fn, basedir, module) {
11 return module = {
12 path: basedir,
13 exports: {},
14 require: function (path, base) {
15 return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
16 }
17 }, fn(module, module.exports), module.exports;
18 }
19
20 function commonjsRequire () {
21 throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
22 }
23
24 var classnames = createCommonjsModule(function (module) {
25 /*!
26 Copyright (c) 2017 Jed Watson.
27 Licensed under the MIT License (MIT), see
28 http://jedwatson.github.io/classnames
29 */
30 /* global define */
31
32 (function () {
33
34 var hasOwn = {}.hasOwnProperty;
35
36 function classNames () {
37 var classes = [];
38
39 for (var i = 0; i < arguments.length; i++) {
40 var arg = arguments[i];
41 if (!arg) continue;
42
43 var argType = typeof arg;
44
45 if (argType === 'string' || argType === 'number') {
46 classes.push(arg);
47 } else if (Array.isArray(arg) && arg.length) {
48 var inner = classNames.apply(null, arg);
49 if (inner) {
50 classes.push(inner);
51 }
52 } else if (argType === 'object') {
53 for (var key in arg) {
54 if (hasOwn.call(arg, key) && arg[key]) {
55 classes.push(key);
56 }
57 }
58 }
59 }
60
61 return classes.join(' ');
62 }
63
64 if ( module.exports) {
65 classNames.default = classNames;
66 module.exports = classNames;
67 } else {
68 window.classNames = classNames;
69 }
70 }());
71 });
72
73 /**
74 * A utility function to get the current container for the portal. For SSR, the
75 * container will always be `null` since portals don't work server side.
76 *
77 * @param into The element to portal into
78 * @param intoId An id for an element to portal into
79 * @return the portal container element or null
80 */
81 function getContainer(into, intoId) {
82 if (typeof document === "undefined") {
83 return null;
84 }
85 var container = null;
86 if (typeof into === "undefined" && typeof intoId === "undefined") {
87 container = document.body;
88 }
89 else if (typeof intoId === "string") {
90 container = document.getElementById(intoId);
91 }
92 else if (typeof into === "string") {
93 container = document.querySelector(into);
94 }
95 else if (typeof into === "function") {
96 container = into();
97 }
98 else if (into) {
99 container = into;
100 }
101 return container;
102 }
103
104 /**
105 * This component is a simple wrapper for the `createPortal` API from ReactDOM
106 * that will just ensure that `null` is always returned for server side
107 * rendering as well as a "nice" way to choose specific portal targets or just
108 * falling back to the `document.body`.
109 */
110 function Portal(_a) {
111 var into = _a.into, intoId = _a.intoId, children = _a.children;
112 var _b = React.useState(null), container = _b[0], setContainer = _b[1];
113 // setting the container via useEffect instead of immediately in the render
114 // just so that it doesn't throw an error immediately if the dom hasn't fully
115 // painted after a SSR
116 React.useEffect(function () {
117 var nextContainer = getContainer(into, intoId);
118 if (container !== nextContainer) {
119 setContainer(nextContainer);
120 }
121 }, [into, intoId, container]);
122 if (!container) {
123 return null;
124 }
125 return ReactDOM.createPortal(children, container);
126 }
127 {
128 try {
129 var PropTypes = require("prop-types");
130 Portal.propTypes = {
131 into: PropTypes.oneOfType([
132 PropTypes.string,
133 PropTypes.func,
134 PropTypes.object,
135 ]),
136 intoId: PropTypes.string,
137 children: PropTypes.node,
138 };
139 }
140 catch (e) { }
141 }
142
143 /**
144 * This is a very simple component that is used in other places within react-md
145 * to conditionally render the children within a portal or not based on general
146 * portal config props.
147 */
148 function ConditionalPortal(_a) {
149 var portal = _a.portal, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, children = _a.children;
150 if (!portal && !portalInto && !portalIntoId) {
151 return children;
152 }
153 return (React__default.createElement(Portal, { into: portalInto, intoId: portalIntoId }, children));
154 }
155 {
156 try {
157 var PropTypes$1 = require("prop-types");
158 ConditionalPortal.propTypes = {
159 portal: PropTypes$1.bool,
160 portalInto: PropTypes$1.oneOfType([
161 PropTypes$1.string,
162 PropTypes$1.func,
163 PropTypes$1.object,
164 ]),
165 portalIntoId: PropTypes$1.string,
166 children: PropTypes$1.node,
167 };
168 }
169 catch (e) { }
170 }
171
172 var SHORTHAND_REGEX = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
173 var VERBOSE_REGEX = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
174 /**
175 * Converts a hex string into an rgb value. This is useful for deteching color
176 * contrast ratios and other stuff.
177 *
178 * @param hex The hex string to convert
179 * @return an object containing the r, g, b values for the color.
180 */
181 function hexToRGB(hex) {
182 if (
183 !SHORTHAND_REGEX.test(hex) &&
184 !VERBOSE_REGEX.test(hex)) {
185 throw new TypeError("Invalid color string.");
186 }
187 hex = hex.replace(SHORTHAND_REGEX, function (_m, r, g, b) { return "" + r + r + g + g + b + b; });
188 var result = hex.match(VERBOSE_REGEX) || [];
189 var r = parseInt(result[1] || "", 16) || 0;
190 var g = parseInt(result[2] || "", 16) || 0;
191 var b = parseInt(result[3] || "", 16) || 0;
192 return [r, g, b];
193 }
194
195 var RED_MULTIPLIER = 0.2126;
196 var GREEN_MULTIPLIER = 0.7152;
197 var BLUE_MULTIPLIER = 0.0722;
198 /**
199 * I really couldn't figure out how to name these "magic" numbers since the
200 * formula doesn't really describe it much:
201 *
202 * @see https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
203 * @private
204 */
205 function get8BitColor(color) {
206 color /= 255;
207 if (color <= 0.03928) {
208 return color / 12.92;
209 }
210 return Math.pow(((color + 0.055) / 1.055), 2.4);
211 }
212 /**
213 * A number closest to 0 should be closest to black while a number closest to 1
214 * should be closest to white.
215 *
216 * @see https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
217 * @private
218 */
219 function getLuminance(color) {
220 var _a = hexToRGB(color), r = _a[0], g = _a[1], b = _a[2];
221 var red = get8BitColor(r) * RED_MULTIPLIER;
222 var green = get8BitColor(g) * GREEN_MULTIPLIER;
223 var blue = get8BitColor(b) * BLUE_MULTIPLIER;
224 return red + green + blue;
225 }
226
227 /**
228 * Gets the contrast ratio between a background color and a foreground color.
229 *
230 * @see https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
231 *
232 * @param background The background color
233 * @param foreground The foreground color. This is normally the `color` css
234 * value.
235 * @return the contrast ratio between the background and foreground colors.
236 */
237 function getContrastRatio(background, foreground) {
238 var backgroundLuminance = getLuminance(background) + 0.05;
239 var foregroundLuminance = getLuminance(foreground) + 0.05;
240 return (Math.max(backgroundLuminance, foregroundLuminance) /
241 Math.min(backgroundLuminance, foregroundLuminance));
242 }
243
244 /**
245 * The contrast ratio that can be used for large text where large text is
246 * considered 18pt or 14pt bold.
247 */
248 var LARGE_TEXT_CONTRAST_RATIO = 3;
249 /**
250 * The contrast ratio that can be used for normal text.
251 */
252 var NORMAL_TEXT_CONTRAST_RATIO = 4.5;
253 /**
254 * The AAA contrast ratio for passing WGAC 2.0 color contrast ratios.
255 */
256 var AAA_CONTRAST_RATIO = 7;
257 /**
258 * Checks if there is an acceptable contrast ratio between the background and
259 * foreground colors based on the provided compliance level.
260 *
261 * @param background The background color to check against
262 * @param foreground The foreground color to check against
263 * @param compliance The compliance level to use or a custom number as a ratio.
264 * @return true if there is enough contrast between the foreground and
265 * background colors for the provided compliance level.
266 */
267 function isContrastCompliant(background, foreground, compliance) {
268 if (compliance === void 0) { compliance = "normal"; }
269 var ratio;
270 switch (compliance) {
271 case "large":
272 ratio = LARGE_TEXT_CONTRAST_RATIO;
273 break;
274 case "normal":
275 ratio = NORMAL_TEXT_CONTRAST_RATIO;
276 break;
277 case "AAA":
278 ratio = AAA_CONTRAST_RATIO;
279 break;
280 default:
281 ratio = compliance;
282 }
283 return getContrastRatio(background, foreground) >= ratio;
284 }
285
286 /* eslint-disable import/no-mutable-exports, getter-return */
287 var noop = function () { };
288 var isSupported = false;
289 /**
290 * Checks if the browser supports passive events. This shouldn't really be used
291 * outside of this file, but you can always check again if needed.
292 */
293 function update() {
294 if (typeof window === "undefined") {
295 return false;
296 }
297 var isPassiveEventsSupported = false;
298 var opts = Object.defineProperty({}, "passive", {
299 get: function () {
300 isPassiveEventsSupported = true;
301 },
302 });
303 window.addEventListener("testSupportsPassive", noop, opts);
304 window.removeEventListener("testSupportsPassive", noop, opts);
305 isSupported = isPassiveEventsSupported;
306 return isPassiveEventsSupported;
307 }
308 // invoke immediately
309 update();
310
311 var passiveEvents = /*#__PURE__*/Object.freeze({
312 __proto__: null,
313 update: update,
314 get isSupported () { return isSupported; }
315 });
316
317 var delegatedEvents = [];
318 /* eslint-disable @typescript-eslint/explicit-function-return-type */
319 /**
320 * Creates the delegated event handler that will run all the callbacks once an
321 * event happens. The callbacks' invocation can also be throttled for event
322 * types that trigger rapidly for additional performance.
323 *
324 * The `<K extends keyof WindowEventMap` is a nice thing I found while looking
325 * through the `lib.d.ts` implementation of `addEventListener` that will allow
326 * you to get the "correct" event type when using the `add` and `remove`
327 * functions once you have created this event handler. Otherwise there'd be ts
328 * errors trying to do `MouseEvent` or `KeyboardEvent` in your listeners.
329 */
330 function createEventHandler(throttle, callbacks) {
331 var running = false;
332 var runCallbacks = function (event) { return function () {
333 for (var i = 0; i < callbacks.length; i += 1) {
334 callbacks[i](event);
335 }
336 running = false;
337 }; };
338 return function eventHandler(event) {
339 if (!throttle) {
340 runCallbacks(event)();
341 return;
342 }
343 if (running) {
344 return;
345 }
346 running = true;
347 window.requestAnimationFrame(runCallbacks(event));
348 };
349 }
350 /* eslint-enable @typescript-eslint/explicit-function-return-type */
351 /**
352 * Creates a throttled event handler for the provided event type and event
353 * target.
354 */
355 function createDelegatedEventHandler(eventType, eventTarget, throttle, options) {
356 if (eventTarget === void 0) { eventTarget = window; }
357 if (throttle === void 0) { throttle = false; }
358 var callbacks = [];
359 var handler = createEventHandler(throttle, callbacks);
360 return {
361 /**
362 * Attempts to add the provided callback to the list of callbacks for the
363 * throttled event. If this is the first callback to be added, the throttled
364 * event will also be started.
365 */
366 add: function (callback) {
367 if (!callbacks.length) {
368 eventTarget.addEventListener(eventType, handler, options);
369 }
370 if (callbacks.indexOf(callback) === -1) {
371 callbacks.push(callback);
372 }
373 },
374 /**
375 * Attempts to remove the provided callback from the lsit of callbacks for
376 * the throttled event. If this is the last callback that was removed, the
377 * throttled event will also be stopped.
378 */
379 remove: function (callback) {
380 var i = callbacks.indexOf(callback);
381 if (i >= 0) {
382 callbacks.splice(i, 1);
383 if (!callbacks.length) {
384 eventTarget.removeEventListener(eventType, handler, options);
385 }
386 }
387 },
388 };
389 }
390 /**
391 * Creates a delegated event listener using custom events. Most of this code
392 * comes from the MDN about resize listeners.
393 *
394 * This will return an object for adding or removing event handlers for the
395 * provided `eventType` since only one base throttled event listener will be
396 * created. Each callback that is added will be called with the event each time
397 * the event is triggered. This does mean that you will manually need to remove
398 * your callback like normal or else it can be called when no longer in use.
399 * This also means that it doesn't "hurt" to call this function without
400 * immediately calling the `add` function since the event won't start until
401 * there is at least 1 callback.
402 *
403 * @see https://developer.mozilla.org/en-US/docs/Web/Events/resize#Examples
404 * @param eventType One of the event types that should be used to create a
405 * delegated event for. This should be things like resize, click, scroll, etc.
406 * @param eventTarget The target that should have the delegated event handler
407 * attached to. This is normally the window, but can be any element as needed.
408 * @param throttle Boolean if the event should be throttled or not. Normally
409 * only event types like resize or scroll should be throttled for performance
410 * boosts, but anything can be.
411 * @return The delegated event handler that allows you to add or remove
412 * `EventListener`s to that event.
413 */
414 function delegateEvent(eventType, eventTarget, throttle, options) {
415 if (eventTarget === void 0) { eventTarget = window; }
416 if (throttle === void 0) { throttle = eventType === "resize" || eventType === "scroll"; }
417 var index = delegatedEvents.findIndex(function (event) {
418 return event.type === eventType &&
419 event.target === eventTarget &&
420 event.options === options &&
421 event.throttle === throttle;
422 });
423 if (index === -1) {
424 delegatedEvents.push({
425 type: eventType,
426 target: eventTarget,
427 options: options,
428 throttle: throttle,
429 handler: createDelegatedEventHandler(eventType, eventTarget, throttle, options),
430 });
431 index = delegatedEvents.length - 1;
432 }
433 return delegatedEvents[index].handler;
434 }
435
436 var __assign = (undefined && undefined.__assign) || function () {
437 __assign = Object.assign || function(t) {
438 for (var s, i = 1, n = arguments.length; i < n; i++) {
439 s = arguments[i];
440 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
441 t[p] = s[p];
442 }
443 return t;
444 };
445 return __assign.apply(this, arguments);
446 };
447 /**
448 * A helper function for manually setting touch events on elements when they
449 * cannot be directly added with a React event listener. This will attempt to
450 * create a passive event if the browser supports passive events so there is
451 * better scroll performance.
452 */
453 function setTouchEvent(
454 /**
455 * Boolean if the event should be added or removed.
456 */
457 add,
458 /**
459 * The element to add the touch event to.
460 */
461 el,
462 /**
463 * One of the touch types to modify.
464 */
465 eventType,
466 /**
467 * The touch event callback function to use.
468 */
469 callback,
470 /**
471 * Boolean if the event should be captured if the browser does not support
472 * passive events.
473 */
474 capture,
475 /**
476 * Any additional options to provide to the passive event.
477 */
478 options) {
479 if (capture === void 0) { capture = false; }
480 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
481 // @ts-ignore
482 el[(add ? "add" : "remove") + "EventListener"]("touch" + eventType, callback, isSupported ? __assign({ passive: true, capture: capture }, options) : capture);
483 }
484 /**
485 * A simple wrapper for the `setTouchEvent` to just always add events.
486 */
487 function addTouchEvent(
488 /**
489 * The element to add the touch event to.
490 */
491 el,
492 /**
493 * One of the touch types to modify.
494 */
495 eventType,
496 /**
497 * The touch event callback function to use.
498 */
499 callback,
500 /**
501 * Boolean if the event should be captured if the browser does not support
502 * passive events.
503 */
504 capture,
505 /**
506 * Any additional options to provide to the passive event.
507 */
508 options) {
509 if (capture === void 0) { capture = false; }
510 setTouchEvent(true, el, eventType, callback, capture, options);
511 }
512 /**
513 * A simple wrapper for the `setTouchEvent` to just always remove events.
514 *
515 * @param el The element to add the touch event to.
516 * @param eventType One of the touch types to modify.
517 */
518 function removeTouchEvent(el, eventType,
519 /**
520 * The touch event callback function to use.
521 */
522 callback,
523 /**
524 * Boolean if the event should be captured if the browser does not support
525 * passive events.
526 */
527 capture,
528 /**
529 * Any additional options to provide to the passive event.
530 */
531 options) {
532 if (capture === void 0) { capture = false; }
533 setTouchEvent(false, el, eventType, callback, capture, options);
534 }
535
536 /**
537 * This hook allows you to provide anything that should be "cached" and puts it
538 * into a ref that'll be updated each render. This is pretty overkill for most
539 * places, but it's really nice when you want to create event handlers that
540 * shouldn't update if the developer used arrow functions to define callbacks.
541 * (A great example is for ref callbacks that *shouldn't* be triggered each
542 * render. But that might just be a programming error instead).
543 *
544 * @param cacheable The cacheable thing that gets updated after each render.
545 * @return a mutable ref object containing the current cache.
546 */
547 function useRefCache(cacheable) {
548 var ref = React.useRef(cacheable);
549 React.useEffect(function () {
550 ref.current = cacheable;
551 });
552 return ref;
553 }
554
555 /**
556 * This hook will create a performant scroll listener by enabling passive events
557 * if it's supported by the browser and delegating the event as needed.
558 */
559 function useScrollListener(_a) {
560 var _b = _a.enabled, enabled = _b === void 0 ? true : _b, onScroll = _a.onScroll, element = _a.element, _c = _a.options, options = _c === void 0 ? isSupported ? { passive: true } : false : _c;
561 var callback = useRefCache(onScroll);
562 React.useEffect(function () {
563 if (!enabled) {
564 return;
565 }
566 var eventHandler = delegateEvent("scroll", element || window, true, options);
567 var handler = function (event) { return callback.current(event); };
568 eventHandler.add(handler);
569 return function () {
570 eventHandler.remove(handler);
571 };
572 // disabled since useRefCache
573 // eslint-disable-next-line react-hooks/exhaustive-deps
574 }, [enabled, element, options]);
575 }
576
577 /**
578 * This is a simple component wrapper for the `useScrollListener` hook.
579 */
580 function ScrollListener(props) {
581 useScrollListener(props);
582 return null;
583 }
584
585 /**
586 * This hook will apply the current mode class name to the `document.body` so
587 * that the specific mode style mixins work as expected.
588 *
589 * @private
590 */
591 function useModeClassName(mode) {
592 React.useEffect(function () {
593 var className = "rmd-utils--" + mode;
594 document.body.classList.add(className);
595 return function () {
596 document.body.classList.remove(className);
597 };
598 }, [mode]);
599 }
600
601 var DEFAULT_TOUCH_TIMEOUT = 1200;
602 /**
603 * This is a small hook that is used to determine if the app is currently being
604 * used by a touch device or not. All this really does is switch between
605 * mousemove and touchstart events to determine which mode you are in. This
606 * also tracks the `contextmenu` appearance since long touches can trigger the
607 * context menu on mobile devices. When the context menu appears after a touch,
608 * the mode will still be considered "touch" instead of swapping to mouse.
609 *
610 * @param touchTimeout This is the amount of time that can occur between a
611 * touchstart and mousemove event but still be considered part of a "touch" user
612 * mode. This should probably be kept at the default value, but if the touch
613 * mode isn't updating as you would expect, you can try increasing or decreasing
614 * this value until it does.
615 * @return true if the app is in touch mode.
616 * @private
617 */
618 function useTouchDetection(touchTimeout) {
619 if (touchTimeout === void 0) { touchTimeout = DEFAULT_TOUCH_TIMEOUT; }
620 var _a = React.useState(0), lastTouchTime = _a[0], setTouchTime = _a[1];
621 var touchRef = useRefCache(lastTouchTime);
622 var contextMenuRef = React.useRef(false);
623 var updateTouchTime = React.useCallback(function () {
624 setTouchTime(Date.now());
625 contextMenuRef.current = false;
626 }, []);
627 var resetTouchTime = React.useCallback(function () {
628 var lastTouchTime = touchRef.current;
629 if (contextMenuRef.current || Date.now() - lastTouchTime < touchTimeout) {
630 contextMenuRef.current = false;
631 return;
632 }
633 setTouchTime(0);
634 // disabled since useRefCache for touchRef
635 // eslint-disable-next-line react-hooks/exhaustive-deps
636 }, [touchTimeout]);
637 React.useEffect(function () {
638 window.addEventListener("touchstart", updateTouchTime, true);
639 return function () {
640 window.removeEventListener("touchstart", updateTouchTime, true);
641 };
642 }, [updateTouchTime]);
643 React.useEffect(function () {
644 if (lastTouchTime === 0) {
645 contextMenuRef.current = false;
646 return;
647 }
648 var updateContextMenu = function () {
649 contextMenuRef.current = true;
650 };
651 window.addEventListener("mousemove", resetTouchTime, true);
652 window.addEventListener("contextmenu", updateContextMenu, true);
653 return function () {
654 window.removeEventListener("mousemove", resetTouchTime, true);
655 window.removeEventListener("contextmenu", updateContextMenu, true);
656 };
657 }, [lastTouchTime, resetTouchTime]);
658 return lastTouchTime !== 0;
659 }
660
661 /**
662 * This hooks provides an easy way to toggle a boolean flag for React
663 * components. The main use case for this will be toggling the visibility of
664 * something. All the provided actions are guaranteed to never change.
665 *
666 * @param defaultToggled Boolean if the visibility should be enabled first
667 * render.
668 * @return an array containing the toggled state, an enable function, a disable
669 * function, a toggle function, and then a manual set toggle function.
670 */
671 function useToggle(defaultToggled) {
672 var _a = React.useState(defaultToggled), toggled = _a[0], setToggled = _a[1];
673 var previous = useRefCache(toggled);
674 var enable = React.useCallback(function () {
675 if (!previous.current) {
676 setToggled(true);
677 }
678 // disabled since useRefCache
679 // eslint-disable-next-line react-hooks/exhaustive-deps
680 }, []);
681 var disable = React.useCallback(function () {
682 if (previous.current) {
683 setToggled(false);
684 }
685 // disabled since useRefCache
686 // eslint-disable-next-line react-hooks/exhaustive-deps
687 }, []);
688 var toggle = React.useCallback(function () {
689 setToggled(function (prevVisible) { return !prevVisible; });
690 }, []);
691 return [toggled, enable, disable, toggle, setToggled];
692 }
693
694 /**
695 * A small hook for checking if the app is currently being interacted with by a
696 * keyboard.
697 *
698 * @return true if the app is in keyboard mode
699 * @private
700 */
701 function useKeyboardDetection() {
702 var _a = useToggle(false), enabled = _a[0], enable = _a[1], disable = _a[2];
703 React.useEffect(function () {
704 if (enabled) {
705 return;
706 }
707 window.addEventListener("keydown", enable, true);
708 return function () {
709 window.removeEventListener("keydown", enable, true);
710 };
711 }, [enabled, enable]);
712 React.useEffect(function () {
713 if (!enabled) {
714 return;
715 }
716 window.addEventListener("mousedown", disable, true);
717 window.addEventListener("touchstart", disable, true);
718 return function () {
719 window.removeEventListener("mousedown", disable, true);
720 window.removeEventListener("touchstart", disable, true);
721 };
722 }, [enabled, disable]);
723 return enabled;
724 }
725
726 /**
727 * This hook combines the touch and keyboard detection hooks and returns a
728 * string of the current interaction mode of the app/user.
729 *
730 * @private
731 */
732 function useModeDetection() {
733 var touch = useTouchDetection();
734 var keyboard = useKeyboardDetection();
735 if (touch) {
736 return "touch";
737 }
738 if (keyboard) {
739 return "keyboard";
740 }
741 return "mouse";
742 }
743
744 var InteractionMode = React.createContext("mouse");
745 var ParentContext = React.createContext(false);
746 /**
747 * Gets the current interaction mode of the user.
748 */
749 function useUserInteractionMode() {
750 return React.useContext(InteractionMode);
751 }
752 /**
753 * Checks if the provided user interaction mode matches the current interaction
754 * mode within the app.
755 *
756 * @param mode The mode to check against.
757 * @return true if the mode matches.
758 */
759 function useIsUserInteractionMode(mode) {
760 return useUserInteractionMode() === mode;
761 }
762 /**
763 * A component that should be mounted once in your app near the top of the tree
764 * to determine the current interaction mode for your app.
765 */
766 function InteractionModeListener(_a) {
767 var children = _a.children;
768 if (React.useContext(ParentContext)) {
769 throw new Error("Nested `InteractionModeListener` components");
770 }
771 var mode = useModeDetection();
772 useModeClassName(mode);
773 return (React__default.createElement(InteractionMode.Provider, { value: mode },
774 React__default.createElement(ParentContext.Provider, { value: true }, children)));
775 }
776 {
777 try {
778 var PropTypes$2 = require("prop-types");
779 InteractionModeListener.propTypes = {
780 children: PropTypes$2.node.isRequired,
781 };
782 }
783 catch (e) { }
784 }
785
786 function modify(base, modifier) {
787 if (!modifier) {
788 return base;
789 }
790 var hasOwn = Object.prototype.hasOwnProperty;
791 return Object.keys(modifier).reduce(function (s, mod) {
792 if (hasOwn.call(modifier, mod) && modifier[mod]) {
793 s = s + " " + base + "--" + mod;
794 }
795 return s;
796 }, base);
797 }
798 /**
799 * Applies the BEM styled class name to an element.
800 *
801 * @see https://en.bem.info/methodology/css/
802 * @param base The base class to use
803 * @return a function to call that generates the full class name
804 */
805 function bem(base) {
806 {
807 if (!base) {
808 throw new Error("bem requires a base block class but none were provided.");
809 }
810 }
811 /**
812 * Creates the full class name from the base block name. This can be called
813 * without any arguments which will just return the base block name (kind of
814 * worthless), or you can provide a child element name and modifiers.
815 *
816 * @param elementOrModifier This is either the child element name or an object
817 * of modifiers to apply. This **must** be a string if the second argument is
818 * provided.
819 * @param modifier Any optional modifiers to apply to the block and optional
820 * element.
821 * @return the full class name
822 */
823 return function block(elementOrModifier, modifier) {
824 {
825 if (typeof elementOrModifier !== "string" && modifier) {
826 throw new TypeError("bem does not support having two modifier arguments.");
827 }
828 }
829 if (!elementOrModifier) {
830 return base;
831 }
832 if (typeof elementOrModifier !== "string") {
833 return modify(base, elementOrModifier);
834 }
835 return modify(base + "__" + elementOrModifier, modifier);
836 };
837 }
838
839 var DEFAULT_DESKTOP_MIN_WIDTH = 1025 / 16 + "em";
840 var DEFAULT_TABLET_MIN_WIDTH = 768 / 16 + "em";
841 var DEFAULT_TABLET_MAX_WIDTH = 1024 / 16 + "em";
842 var DEFAULT_PHONE_MAX_WIDTH = 767 / 16 + "em";
843 var DEFAULT_DESKTOP_LARGE_MIN_WIDTH = 1280 / 16 + "em";
844
845 /**
846 * A helper hook that is used to create a memoized media query tester for
847 * `window.matchMedia`.
848 *
849 * Note: This is a **client side only** hook as it requires the `window` to
850 * attach a resize event listener to.
851 *
852 * @param query The media query to use
853 * @param defaultValue The default value for if this media query matches. When
854 * this is `undefined`, it will default to `false` unless the `window` is
855 * defined and the `checkImmediately` param was not set to `false`. Otherwise,
856 * it will check the media query matches on mount and use that value.
857 * @param disabled Boolean if the media query checking should be disabled.
858 * @param checkImmediately Boolean if the media query should be checked
859 * immediately on mount. When omittied, it will default to checking when the
860 * window is defined.
861 * @return true if the media query is a match.
862 */
863 function useMediaQuery(query, defaultValue, disabled, checkImmediately) {
864 if (disabled === void 0) { disabled = false; }
865 if (checkImmediately === void 0) { checkImmediately = typeof window !== "undefined"; }
866 var _a = React.useState(function () {
867 if (typeof defaultValue !== "undefined") {
868 return defaultValue;
869 }
870 if (!disabled && checkImmediately && typeof window !== "undefined") {
871 return window.matchMedia(query).matches;
872 }
873 return false;
874 }), matches = _a[0], setMatches = _a[1];
875 React.useEffect(function () {
876 if (typeof window === "undefined" || disabled) {
877 return;
878 }
879 var mq = window.matchMedia(query);
880 var updater = function (_a) {
881 var matches = _a.matches;
882 return setMatches(matches);
883 };
884 mq.addListener(updater);
885 if (mq.matches !== matches) {
886 setMatches(mq.matches);
887 }
888 return function () { return mq.removeListener(updater); };
889 }, [disabled, matches, query]);
890 return matches;
891 }
892
893 /**
894 * This is a small helper that will create a media query block based on the
895 * provided width value.
896 */
897 var toWidthPart = function (v, prefix) {
898 var type = typeof v;
899 if (type === "undefined") {
900 return "";
901 }
902 var value = type === "number" ? v + "px" : v;
903 return "(" + prefix + "-width: " + value + ")";
904 };
905 /**
906 * This is a simple hoo that will create a memoized media query string with the
907 * provided min anx max values.
908 *
909 * @param min An optional min value to use
910 * @param max An optional max value to use
911 * @return a boolean if the current media query is a match.
912 */
913 function useWidthMediaQuery(_a) {
914 var min = _a.min, max = _a.max;
915 var query = React.useMemo(function () {
916 var parts = [toWidthPart(min, "min"), toWidthPart(max, "max")]
917 .filter(Boolean)
918 .join(" and ");
919 return "screen and " + parts;
920 }, [min, max]);
921 return useMediaQuery(query);
922 }
923
924 /**
925 * An extremely simple "pollyfill" for the `window.screen.orientation` just for
926 * the `type` value that is required for the `useOrientation` hook.
927 */
928 var getOrientationType = function () {
929 var _a;
930 var screenOrientation = (_a = window.screen.orientation) === null || _a === void 0 ? void 0 : _a.type;
931 if (typeof screenOrientation === "string") {
932 return screenOrientation;
933 }
934 var _b = window.screen, availHeight = _b.availHeight, availWidth = _b.availWidth;
935 return availHeight > availWidth ? "portrait-primary" : "landscape-primary";
936 };
937 /**
938 * This media query is used to determine the current orientation of the app
939 * based on the `window.screen.orientation.type`. This will always be
940 * `"landscape-primary"` server side unless a default value is provided.
941 *
942 * @param defaultValue an optional default value to use. When this is omitted,
943 * it will default to `"landscape-primary"` unless the `window` is defined. If
944 * the `window` is defined, it will immediately check the orientation type on
945 * mount.
946 * @return the orientation type value.
947 */
948 function useOrientation(defaultValue) {
949 var _a = React.useState(function () {
950 if (defaultValue) {
951 return defaultValue;
952 }
953 if (typeof window !== "undefined") {
954 return getOrientationType();
955 }
956 return "landscape-primary";
957 }), value = _a[0], setValue = _a[1];
958 React.useEffect(function () {
959 if (typeof window === "undefined") {
960 return;
961 }
962 var handler = function () {
963 setValue(getOrientationType());
964 };
965 window.addEventListener("orientationchange", handler);
966 return function () { return window.removeEventListener("orientationchange", handler); };
967 }, []);
968 return value;
969 }
970
971 var DEFAULT_APP_SIZE = {
972 isPhone: false,
973 isTablet: false,
974 isDesktop: true,
975 isLargeDesktop: false,
976 isLandscape: true,
977 };
978 /**
979 * This hook is used to determine the current application size based on the
980 * provided query sizes. When you want to render your app server side, you will
981 * need to provide a custom `defaultSize` that implements your logic to
982 * determine the type of device requesting a page. Once the app has been
983 * rendered in the DOM, this hook will attach event listeners to automatically
984 * update the app size when the page is resized.
985 *
986 * @private
987 */
988 function useAppSizeMedia(_a) {
989 var _b = _a === void 0 ? {} : _a, _c = _b.phoneMaxWidth, phoneMaxWidth = _c === void 0 ? DEFAULT_PHONE_MAX_WIDTH : _c, _d = _b.tabletMinWidth, tabletMinWidth = _d === void 0 ? DEFAULT_TABLET_MIN_WIDTH : _d, _e = _b.tabletMaxWidth, tabletMaxWidth = _e === void 0 ? DEFAULT_TABLET_MAX_WIDTH : _e, _f = _b.desktopMinWidth, desktopMinWidth = _f === void 0 ? DEFAULT_DESKTOP_MIN_WIDTH : _f, _g = _b.desktopLargeMinWidth, desktopLargeMinWidth = _g === void 0 ? DEFAULT_DESKTOP_LARGE_MIN_WIDTH : _g, _h = _b.defaultSize, defaultSize = _h === void 0 ? DEFAULT_APP_SIZE : _h;
990 /* eslint-disable react-hooks/rules-of-hooks */
991 // disabled since this is conditionally applied for SSR
992 if (typeof window === "undefined") {
993 return defaultSize;
994 }
995 var matchesDesktop = useWidthMediaQuery({ min: desktopMinWidth });
996 var matchesLargeDesktop = useWidthMediaQuery({ min: desktopLargeMinWidth });
997 var matchesTablet = useWidthMediaQuery({
998 min: tabletMinWidth,
999 max: tabletMaxWidth,
1000 });
1001 var matchesPhone = useWidthMediaQuery({ max: phoneMaxWidth });
1002 var isDesktop = matchesDesktop;
1003 var isTablet = !matchesDesktop && matchesTablet;
1004 var isPhone = !isTablet && !isDesktop && matchesPhone;
1005 var isLandscape = useOrientation().includes("landscape");
1006 var isLargeDesktop = matchesLargeDesktop;
1007 var _j = React.useState(defaultSize), appSize = _j[0], setAppSize = _j[1];
1008 React.useEffect(function () {
1009 if (appSize.isPhone === isPhone &&
1010 appSize.isTablet === isTablet &&
1011 appSize.isDesktop === isDesktop &&
1012 appSize.isLargeDesktop === isLargeDesktop &&
1013 appSize.isLandscape === isLandscape) {
1014 return;
1015 }
1016 // for some reason, it's sometimes possible to fail every single matchMedia
1017 // value when you are resizing the browser a lot. this is an "invalid" event
1018 // so skip it. It normally happens between 760px-768px
1019 if (!isPhone && !isTablet && !isDesktop && !isLargeDesktop) {
1020 return;
1021 }
1022 setAppSize({ isPhone: isPhone, isTablet: isTablet, isDesktop: isDesktop, isLargeDesktop: isLargeDesktop, isLandscape: isLandscape });
1023 }, [isPhone, isTablet, isDesktop, isLargeDesktop, isLandscape, appSize]);
1024 return appSize;
1025 }
1026
1027 var __assign$1 = (undefined && undefined.__assign) || function () {
1028 __assign$1 = Object.assign || function(t) {
1029 for (var s, i = 1, n = arguments.length; i < n; i++) {
1030 s = arguments[i];
1031 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
1032 t[p] = s[p];
1033 }
1034 return t;
1035 };
1036 return __assign$1.apply(this, arguments);
1037 };
1038 var __rest = (undefined && undefined.__rest) || function (s, e) {
1039 var t = {};
1040 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1041 t[p] = s[p];
1042 if (s != null && typeof Object.getOwnPropertySymbols === "function")
1043 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1044 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1045 t[p[i]] = s[p[i]];
1046 }
1047 return t;
1048 };
1049 /**
1050 * @private
1051 */
1052 var AppSizeContext = React.createContext(__assign$1(__assign$1({}, DEFAULT_APP_SIZE), { __initialized: false }));
1053 /**
1054 * Gets the current app size.
1055 *
1056 * @return the current AppSize
1057 */
1058 function useAppSize() {
1059 var _a = React.useContext(AppSizeContext), __initialized = _a.__initialized, context = __rest(_a, ["__initialized"]);
1060 if (!__initialized) {
1061 throw new Error("Attempted to use the current `AppSizeContext` without mounting the `AppSizeListener` component beforehand.");
1062 }
1063 return context;
1064 }
1065
1066 var __assign$2 = (undefined && undefined.__assign) || function () {
1067 __assign$2 = Object.assign || function(t) {
1068 for (var s, i = 1, n = arguments.length; i < n; i++) {
1069 s = arguments[i];
1070 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
1071 t[p] = s[p];
1072 }
1073 return t;
1074 };
1075 return __assign$2.apply(this, arguments);
1076 };
1077 var __rest$1 = (undefined && undefined.__rest) || function (s, e) {
1078 var t = {};
1079 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1080 t[p] = s[p];
1081 if (s != null && typeof Object.getOwnPropertySymbols === "function")
1082 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1083 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1084 t[p[i]] = s[p[i]];
1085 }
1086 return t;
1087 };
1088 var block = bem("rmd-grid");
1089 var GridCell = React.forwardRef(function GridCell(_a, ref) {
1090 var _b, _c, _d, _e, _f, _g, _h;
1091 var style = _a.style, className = _a.className, clone = _a.clone, children = _a.children, propColSpan = _a.colSpan, propColStart = _a.colStart, propColEnd = _a.colEnd, propRowSpan = _a.rowSpan, propRowStart = _a.rowStart, propRowEnd = _a.rowEnd, phone = _a.phone, tablet = _a.tablet, desktop = _a.desktop, largeDesktop = _a.largeDesktop, props = __rest$1(_a, ["style", "className", "clone", "children", "colSpan", "colStart", "colEnd", "rowSpan", "rowStart", "rowEnd", "phone", "tablet", "desktop", "largeDesktop"]);
1092 var _j = useAppSize(), isPhone = _j.isPhone, isTablet = _j.isTablet, isDesktop = _j.isDesktop, isLargeDesktop = _j.isLargeDesktop;
1093 var colSpan = propColSpan;
1094 var colStart = propColStart;
1095 var colEnd = propColEnd;
1096 var rowSpan = propRowSpan;
1097 var rowStart = propRowStart;
1098 var rowEnd = propRowEnd;
1099 var media = (isPhone && phone) ||
1100 (isTablet && tablet) ||
1101 (isDesktop && desktop) ||
1102 (isLargeDesktop && largeDesktop);
1103 if (media) {
1104 (_b = media.rowSpan, rowSpan = _b === void 0 ? propRowSpan : _b, _c = media.rowStart, rowStart = _c === void 0 ? propRowStart : _c, _d = media.rowEnd, rowEnd = _d === void 0 ? propRowEnd : _d, _e = media.colSpan, colSpan = _e === void 0 ? propColSpan : _e, _f = media.colStart, colStart = _f === void 0 ? propColStart : _f, _g = media.colEnd, colEnd = _g === void 0 ? propColEnd : _g);
1105 }
1106 var cellStyle = __assign$2({ gridColumnStart: colStart, gridColumnEnd: colEnd, gridRowStart: rowStart, gridRowEnd: rowSpan ? "span " + rowSpan : rowEnd }, style);
1107 var cellClassName = classnames(block("cell", (_h = {},
1108 _h["" + colSpan] = colSpan,
1109 _h)), className);
1110 if (clone && React.isValidElement(children)) {
1111 var child = React.Children.only(children);
1112 return React.cloneElement(child, {
1113 style: __assign$2(__assign$2({}, child.props.style), cellStyle),
1114 className: classnames(cellClassName, child.props.className),
1115 });
1116 }
1117 return (React__default.createElement("div", __assign$2({}, props, { ref: ref, style: cellStyle, className: cellClassName }), children));
1118 });
1119 {
1120 try {
1121 var PropTypes$3 = require("prop-types");
1122 var gridCSSProperties = PropTypes$3.shape({
1123 rowSpan: PropTypes$3.number,
1124 rowStart: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1125 rowEnd: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1126 colSpan: PropTypes$3.number,
1127 colStart: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1128 colEnd: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1129 });
1130 GridCell.propTypes = {
1131 style: PropTypes$3.object,
1132 className: PropTypes$3.string,
1133 clone: PropTypes$3.bool,
1134 rowSpan: PropTypes$3.number,
1135 rowStart: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1136 rowEnd: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1137 colSpan: PropTypes$3.number,
1138 colStart: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1139 colEnd: PropTypes$3.oneOfType([PropTypes$3.number, PropTypes$3.string]),
1140 phone: gridCSSProperties,
1141 tablet: gridCSSProperties,
1142 desktop: gridCSSProperties,
1143 largeDesktop: gridCSSProperties,
1144 children: PropTypes$3.node,
1145 };
1146 }
1147 catch (e) { }
1148 }
1149
1150 var __assign$3 = (undefined && undefined.__assign) || function () {
1151 __assign$3 = Object.assign || function(t) {
1152 for (var s, i = 1, n = arguments.length; i < n; i++) {
1153 s = arguments[i];
1154 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
1155 t[p] = s[p];
1156 }
1157 return t;
1158 };
1159 return __assign$3.apply(this, arguments);
1160 };
1161 var __rest$2 = (undefined && undefined.__rest) || function (s, e) {
1162 var t = {};
1163 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1164 t[p] = s[p];
1165 if (s != null && typeof Object.getOwnPropertySymbols === "function")
1166 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1167 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1168 t[p[i]] = s[p[i]];
1169 }
1170 return t;
1171 };
1172 /**
1173 * This CSS Variable allows you to override the number of columns that should be
1174 * displayed in the grid. This is automatically updated with media queries with
1175 * the default grid implementation, but is used here to add additional
1176 * inline-style overrides.
1177 *
1178 * @private
1179 */
1180 var GRID_COLUMNS_VAR = "--rmd-grid-cols";
1181 /**
1182 * This CSS Variable allows you to override the gutter (grid-gap) between each
1183 * cell in the grid.
1184 *
1185 * @private
1186 */
1187 var GRID_GUTTER_VAR = "--rmd-grid-gutter";
1188 var block$1 = bem("rmd-grid");
1189 /**
1190 * The grid component is generally used for a base layout in your app to provide
1191 * nice padding and spacing between each item.
1192 *
1193 * Note: This component relies on the `AppSizeListener` as a parent component to
1194 * work and will throw an error if it does not exist as a parent.
1195 */
1196 var Grid = React.forwardRef(function Grid(_a, ref) {
1197 var _b;
1198 var style = _a.style, className = _a.className, children = _a.children, _c = _a.clone, clone = _c === void 0 ? false : _c, _d = _a.wrapOnly, wrapOnly = _d === void 0 ? false : _d, columns = _a.columns, phoneColumns = _a.phoneColumns, tabletColumns = _a.tabletColumns, desktopColumns = _a.desktopColumns, largeDesktopColumns = _a.largeDesktopColumns, padding = _a.padding, gutter = _a.gutter, minCellWidth = _a.minCellWidth, props = __rest$2(_a, ["style", "className", "children", "clone", "wrapOnly", "columns", "phoneColumns", "tabletColumns", "desktopColumns", "largeDesktopColumns", "padding", "gutter", "minCellWidth"]);
1199 var _e = useAppSize(), isPhone = _e.isPhone, isTablet = _e.isTablet, isDesktop = _e.isDesktop, isLargeDesktop = _e.isLargeDesktop;
1200 var mergedStyle = __assign$3(__assign$3({ padding: (padding !== 0 && padding) || undefined, gridTemplateColumns: minCellWidth
1201 ? "repeat(auto-fill, minmax(" + minCellWidth + ", 1fr))"
1202 : undefined }, style), (_b = {}, _b[GRID_COLUMNS_VAR] = (isPhone && phoneColumns) ||
1203 (isTablet && tabletColumns) ||
1204 (isLargeDesktop && largeDesktopColumns) ||
1205 (isDesktop && desktopColumns) ||
1206 columns, _b[GRID_GUTTER_VAR] = gutter, _b));
1207 var content = children;
1208 if (clone || wrapOnly) {
1209 content = React.Children.map(children, function (child) { return child && React__default.createElement(GridCell, { clone: clone }, child); });
1210 }
1211 return (React__default.createElement("div", __assign$3({}, props, { ref: ref, style: mergedStyle, className: classnames(block$1({ "no-padding": padding === 0 }), className) }), content));
1212 });
1213 {
1214 try {
1215 var PropTypes$4 = require("prop-types");
1216 Grid.propTypes = {
1217 style: PropTypes$4.object,
1218 className: PropTypes$4.string,
1219 clone: PropTypes$4.bool,
1220 wrapOnly: PropTypes$4.bool,
1221 columns: PropTypes$4.number,
1222 phoneColumns: PropTypes$4.number,
1223 tabletColumns: PropTypes$4.number,
1224 desktopColumns: PropTypes$4.number,
1225 largeDesktopColumns: PropTypes$4.number,
1226 padding: PropTypes$4.oneOfType([PropTypes$4.number, PropTypes$4.string]),
1227 gutter: PropTypes$4.string,
1228 children: PropTypes$4.node,
1229 minCellWidth: PropTypes$4.string,
1230 };
1231 }
1232 catch (e) { }
1233 }
1234
1235 /**
1236 * A small utility function that allows me to apply a passed in ref along with
1237 * my own custom ref logic.
1238 *
1239 * @param instance The DOM Node instance
1240 * @param ref The prop ref
1241 */
1242 function applyRef(instance, ref) {
1243 if (!ref) {
1244 return;
1245 }
1246 if (typeof ref === "function") {
1247 ref(instance);
1248 }
1249 else if (typeof ref === "object") {
1250 ref.current = instance;
1251 }
1252 }
1253
1254 /**
1255 * A collection of shims that provide minimal functionality of the ES6 collections.
1256 *
1257 * These implementations are not meant to be used outside of the ResizeObserver
1258 * modules as they cover only a limited range of use cases.
1259 */
1260 /* eslint-disable require-jsdoc, valid-jsdoc */
1261 var MapShim = (function () {
1262 if (typeof Map !== 'undefined') {
1263 return Map;
1264 }
1265 /**
1266 * Returns index in provided array that matches the specified key.
1267 *
1268 * @param {Array<Array>} arr
1269 * @param {*} key
1270 * @returns {number}
1271 */
1272 function getIndex(arr, key) {
1273 var result = -1;
1274 arr.some(function (entry, index) {
1275 if (entry[0] === key) {
1276 result = index;
1277 return true;
1278 }
1279 return false;
1280 });
1281 return result;
1282 }
1283 return /** @class */ (function () {
1284 function class_1() {
1285 this.__entries__ = [];
1286 }
1287 Object.defineProperty(class_1.prototype, "size", {
1288 /**
1289 * @returns {boolean}
1290 */
1291 get: function () {
1292 return this.__entries__.length;
1293 },
1294 enumerable: true,
1295 configurable: true
1296 });
1297 /**
1298 * @param {*} key
1299 * @returns {*}
1300 */
1301 class_1.prototype.get = function (key) {
1302 var index = getIndex(this.__entries__, key);
1303 var entry = this.__entries__[index];
1304 return entry && entry[1];
1305 };
1306 /**
1307 * @param {*} key
1308 * @param {*} value
1309 * @returns {void}
1310 */
1311 class_1.prototype.set = function (key, value) {
1312 var index = getIndex(this.__entries__, key);
1313 if (~index) {
1314 this.__entries__[index][1] = value;
1315 }
1316 else {
1317 this.__entries__.push([key, value]);
1318 }
1319 };
1320 /**
1321 * @param {*} key
1322 * @returns {void}
1323 */
1324 class_1.prototype.delete = function (key) {
1325 var entries = this.__entries__;
1326 var index = getIndex(entries, key);
1327 if (~index) {
1328 entries.splice(index, 1);
1329 }
1330 };
1331 /**
1332 * @param {*} key
1333 * @returns {void}
1334 */
1335 class_1.prototype.has = function (key) {
1336 return !!~getIndex(this.__entries__, key);
1337 };
1338 /**
1339 * @returns {void}
1340 */
1341 class_1.prototype.clear = function () {
1342 this.__entries__.splice(0);
1343 };
1344 /**
1345 * @param {Function} callback
1346 * @param {*} [ctx=null]
1347 * @returns {void}
1348 */
1349 class_1.prototype.forEach = function (callback, ctx) {
1350 if (ctx === void 0) { ctx = null; }
1351 for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
1352 var entry = _a[_i];
1353 callback.call(ctx, entry[1], entry[0]);
1354 }
1355 };
1356 return class_1;
1357 }());
1358 })();
1359
1360 /**
1361 * Detects whether window and document objects are available in current environment.
1362 */
1363 var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
1364
1365 // Returns global object of a current environment.
1366 var global$1 = (function () {
1367 if (typeof global !== 'undefined' && global.Math === Math) {
1368 return global;
1369 }
1370 if (typeof self !== 'undefined' && self.Math === Math) {
1371 return self;
1372 }
1373 if (typeof window !== 'undefined' && window.Math === Math) {
1374 return window;
1375 }
1376 // eslint-disable-next-line no-new-func
1377 return Function('return this')();
1378 })();
1379
1380 /**
1381 * A shim for the requestAnimationFrame which falls back to the setTimeout if
1382 * first one is not supported.
1383 *
1384 * @returns {number} Requests' identifier.
1385 */
1386 var requestAnimationFrame$1 = (function () {
1387 if (typeof requestAnimationFrame === 'function') {
1388 // It's required to use a bounded function because IE sometimes throws
1389 // an "Invalid calling object" error if rAF is invoked without the global
1390 // object on the left hand side.
1391 return requestAnimationFrame.bind(global$1);
1392 }
1393 return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
1394 })();
1395
1396 // Defines minimum timeout before adding a trailing call.
1397 var trailingTimeout = 2;
1398 /**
1399 * Creates a wrapper function which ensures that provided callback will be
1400 * invoked only once during the specified delay period.
1401 *
1402 * @param {Function} callback - Function to be invoked after the delay period.
1403 * @param {number} delay - Delay after which to invoke callback.
1404 * @returns {Function}
1405 */
1406 function throttle (callback, delay) {
1407 var leadingCall = false, trailingCall = false, lastCallTime = 0;
1408 /**
1409 * Invokes the original callback function and schedules new invocation if
1410 * the "proxy" was called during current request.
1411 *
1412 * @returns {void}
1413 */
1414 function resolvePending() {
1415 if (leadingCall) {
1416 leadingCall = false;
1417 callback();
1418 }
1419 if (trailingCall) {
1420 proxy();
1421 }
1422 }
1423 /**
1424 * Callback invoked after the specified delay. It will further postpone
1425 * invocation of the original function delegating it to the
1426 * requestAnimationFrame.
1427 *
1428 * @returns {void}
1429 */
1430 function timeoutCallback() {
1431 requestAnimationFrame$1(resolvePending);
1432 }
1433 /**
1434 * Schedules invocation of the original function.
1435 *
1436 * @returns {void}
1437 */
1438 function proxy() {
1439 var timeStamp = Date.now();
1440 if (leadingCall) {
1441 // Reject immediately following calls.
1442 if (timeStamp - lastCallTime < trailingTimeout) {
1443 return;
1444 }
1445 // Schedule new call to be in invoked when the pending one is resolved.
1446 // This is important for "transitions" which never actually start
1447 // immediately so there is a chance that we might miss one if change
1448 // happens amids the pending invocation.
1449 trailingCall = true;
1450 }
1451 else {
1452 leadingCall = true;
1453 trailingCall = false;
1454 setTimeout(timeoutCallback, delay);
1455 }
1456 lastCallTime = timeStamp;
1457 }
1458 return proxy;
1459 }
1460
1461 // Minimum delay before invoking the update of observers.
1462 var REFRESH_DELAY = 20;
1463 // A list of substrings of CSS properties used to find transition events that
1464 // might affect dimensions of observed elements.
1465 var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
1466 // Check if MutationObserver is available.
1467 var mutationObserverSupported = typeof MutationObserver !== 'undefined';
1468 /**
1469 * Singleton controller class which handles updates of ResizeObserver instances.
1470 */
1471 var ResizeObserverController = /** @class */ (function () {
1472 /**
1473 * Creates a new instance of ResizeObserverController.
1474 *
1475 * @private
1476 */
1477 function ResizeObserverController() {
1478 /**
1479 * Indicates whether DOM listeners have been added.
1480 *
1481 * @private {boolean}
1482 */
1483 this.connected_ = false;
1484 /**
1485 * Tells that controller has subscribed for Mutation Events.
1486 *
1487 * @private {boolean}
1488 */
1489 this.mutationEventsAdded_ = false;
1490 /**
1491 * Keeps reference to the instance of MutationObserver.
1492 *
1493 * @private {MutationObserver}
1494 */
1495 this.mutationsObserver_ = null;
1496 /**
1497 * A list of connected observers.
1498 *
1499 * @private {Array<ResizeObserverSPI>}
1500 */
1501 this.observers_ = [];
1502 this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
1503 this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
1504 }
1505 /**
1506 * Adds observer to observers list.
1507 *
1508 * @param {ResizeObserverSPI} observer - Observer to be added.
1509 * @returns {void}
1510 */
1511 ResizeObserverController.prototype.addObserver = function (observer) {
1512 if (!~this.observers_.indexOf(observer)) {
1513 this.observers_.push(observer);
1514 }
1515 // Add listeners if they haven't been added yet.
1516 if (!this.connected_) {
1517 this.connect_();
1518 }
1519 };
1520 /**
1521 * Removes observer from observers list.
1522 *
1523 * @param {ResizeObserverSPI} observer - Observer to be removed.
1524 * @returns {void}
1525 */
1526 ResizeObserverController.prototype.removeObserver = function (observer) {
1527 var observers = this.observers_;
1528 var index = observers.indexOf(observer);
1529 // Remove observer if it's present in registry.
1530 if (~index) {
1531 observers.splice(index, 1);
1532 }
1533 // Remove listeners if controller has no connected observers.
1534 if (!observers.length && this.connected_) {
1535 this.disconnect_();
1536 }
1537 };
1538 /**
1539 * Invokes the update of observers. It will continue running updates insofar
1540 * it detects changes.
1541 *
1542 * @returns {void}
1543 */
1544 ResizeObserverController.prototype.refresh = function () {
1545 var changesDetected = this.updateObservers_();
1546 // Continue running updates if changes have been detected as there might
1547 // be future ones caused by CSS transitions.
1548 if (changesDetected) {
1549 this.refresh();
1550 }
1551 };
1552 /**
1553 * Updates every observer from observers list and notifies them of queued
1554 * entries.
1555 *
1556 * @private
1557 * @returns {boolean} Returns "true" if any observer has detected changes in
1558 * dimensions of it's elements.
1559 */
1560 ResizeObserverController.prototype.updateObservers_ = function () {
1561 // Collect observers that have active observations.
1562 var activeObservers = this.observers_.filter(function (observer) {
1563 return observer.gatherActive(), observer.hasActive();
1564 });
1565 // Deliver notifications in a separate cycle in order to avoid any
1566 // collisions between observers, e.g. when multiple instances of
1567 // ResizeObserver are tracking the same element and the callback of one
1568 // of them changes content dimensions of the observed target. Sometimes
1569 // this may result in notifications being blocked for the rest of observers.
1570 activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
1571 return activeObservers.length > 0;
1572 };
1573 /**
1574 * Initializes DOM listeners.
1575 *
1576 * @private
1577 * @returns {void}
1578 */
1579 ResizeObserverController.prototype.connect_ = function () {
1580 // Do nothing if running in a non-browser environment or if listeners
1581 // have been already added.
1582 if (!isBrowser || this.connected_) {
1583 return;
1584 }
1585 // Subscription to the "Transitionend" event is used as a workaround for
1586 // delayed transitions. This way it's possible to capture at least the
1587 // final state of an element.
1588 document.addEventListener('transitionend', this.onTransitionEnd_);
1589 window.addEventListener('resize', this.refresh);
1590 if (mutationObserverSupported) {
1591 this.mutationsObserver_ = new MutationObserver(this.refresh);
1592 this.mutationsObserver_.observe(document, {
1593 attributes: true,
1594 childList: true,
1595 characterData: true,
1596 subtree: true
1597 });
1598 }
1599 else {
1600 document.addEventListener('DOMSubtreeModified', this.refresh);
1601 this.mutationEventsAdded_ = true;
1602 }
1603 this.connected_ = true;
1604 };
1605 /**
1606 * Removes DOM listeners.
1607 *
1608 * @private
1609 * @returns {void}
1610 */
1611 ResizeObserverController.prototype.disconnect_ = function () {
1612 // Do nothing if running in a non-browser environment or if listeners
1613 // have been already removed.
1614 if (!isBrowser || !this.connected_) {
1615 return;
1616 }
1617 document.removeEventListener('transitionend', this.onTransitionEnd_);
1618 window.removeEventListener('resize', this.refresh);
1619 if (this.mutationsObserver_) {
1620 this.mutationsObserver_.disconnect();
1621 }
1622 if (this.mutationEventsAdded_) {
1623 document.removeEventListener('DOMSubtreeModified', this.refresh);
1624 }
1625 this.mutationsObserver_ = null;
1626 this.mutationEventsAdded_ = false;
1627 this.connected_ = false;
1628 };
1629 /**
1630 * "Transitionend" event handler.
1631 *
1632 * @private
1633 * @param {TransitionEvent} event
1634 * @returns {void}
1635 */
1636 ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
1637 var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
1638 // Detect whether transition may affect dimensions of an element.
1639 var isReflowProperty = transitionKeys.some(function (key) {
1640 return !!~propertyName.indexOf(key);
1641 });
1642 if (isReflowProperty) {
1643 this.refresh();
1644 }
1645 };
1646 /**
1647 * Returns instance of the ResizeObserverController.
1648 *
1649 * @returns {ResizeObserverController}
1650 */
1651 ResizeObserverController.getInstance = function () {
1652 if (!this.instance_) {
1653 this.instance_ = new ResizeObserverController();
1654 }
1655 return this.instance_;
1656 };
1657 /**
1658 * Holds reference to the controller's instance.
1659 *
1660 * @private {ResizeObserverController}
1661 */
1662 ResizeObserverController.instance_ = null;
1663 return ResizeObserverController;
1664 }());
1665
1666 /**
1667 * Defines non-writable/enumerable properties of the provided target object.
1668 *
1669 * @param {Object} target - Object for which to define properties.
1670 * @param {Object} props - Properties to be defined.
1671 * @returns {Object} Target object.
1672 */
1673 var defineConfigurable = (function (target, props) {
1674 for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
1675 var key = _a[_i];
1676 Object.defineProperty(target, key, {
1677 value: props[key],
1678 enumerable: false,
1679 writable: false,
1680 configurable: true
1681 });
1682 }
1683 return target;
1684 });
1685
1686 /**
1687 * Returns the global object associated with provided element.
1688 *
1689 * @param {Object} target
1690 * @returns {Object}
1691 */
1692 var getWindowOf = (function (target) {
1693 // Assume that the element is an instance of Node, which means that it
1694 // has the "ownerDocument" property from which we can retrieve a
1695 // corresponding global object.
1696 var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
1697 // Return the local global object if it's not possible extract one from
1698 // provided element.
1699 return ownerGlobal || global$1;
1700 });
1701
1702 // Placeholder of an empty content rectangle.
1703 var emptyRect = createRectInit(0, 0, 0, 0);
1704 /**
1705 * Converts provided string to a number.
1706 *
1707 * @param {number|string} value
1708 * @returns {number}
1709 */
1710 function toFloat(value) {
1711 return parseFloat(value) || 0;
1712 }
1713 /**
1714 * Extracts borders size from provided styles.
1715 *
1716 * @param {CSSStyleDeclaration} styles
1717 * @param {...string} positions - Borders positions (top, right, ...)
1718 * @returns {number}
1719 */
1720 function getBordersSize(styles) {
1721 var positions = [];
1722 for (var _i = 1; _i < arguments.length; _i++) {
1723 positions[_i - 1] = arguments[_i];
1724 }
1725 return positions.reduce(function (size, position) {
1726 var value = styles['border-' + position + '-width'];
1727 return size + toFloat(value);
1728 }, 0);
1729 }
1730 /**
1731 * Extracts paddings sizes from provided styles.
1732 *
1733 * @param {CSSStyleDeclaration} styles
1734 * @returns {Object} Paddings box.
1735 */
1736 function getPaddings(styles) {
1737 var positions = ['top', 'right', 'bottom', 'left'];
1738 var paddings = {};
1739 for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
1740 var position = positions_1[_i];
1741 var value = styles['padding-' + position];
1742 paddings[position] = toFloat(value);
1743 }
1744 return paddings;
1745 }
1746 /**
1747 * Calculates content rectangle of provided SVG element.
1748 *
1749 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
1750 * to be calculated.
1751 * @returns {DOMRectInit}
1752 */
1753 function getSVGContentRect(target) {
1754 var bbox = target.getBBox();
1755 return createRectInit(0, 0, bbox.width, bbox.height);
1756 }
1757 /**
1758 * Calculates content rectangle of provided HTMLElement.
1759 *
1760 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
1761 * @returns {DOMRectInit}
1762 */
1763 function getHTMLElementContentRect(target) {
1764 // Client width & height properties can't be
1765 // used exclusively as they provide rounded values.
1766 var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
1767 // By this condition we can catch all non-replaced inline, hidden and
1768 // detached elements. Though elements with width & height properties less
1769 // than 0.5 will be discarded as well.
1770 //
1771 // Without it we would need to implement separate methods for each of
1772 // those cases and it's not possible to perform a precise and performance
1773 // effective test for hidden elements. E.g. even jQuery's ':visible' filter
1774 // gives wrong results for elements with width & height less than 0.5.
1775 if (!clientWidth && !clientHeight) {
1776 return emptyRect;
1777 }
1778 var styles = getWindowOf(target).getComputedStyle(target);
1779 var paddings = getPaddings(styles);
1780 var horizPad = paddings.left + paddings.right;
1781 var vertPad = paddings.top + paddings.bottom;
1782 // Computed styles of width & height are being used because they are the
1783 // only dimensions available to JS that contain non-rounded values. It could
1784 // be possible to utilize the getBoundingClientRect if only it's data wasn't
1785 // affected by CSS transformations let alone paddings, borders and scroll bars.
1786 var width = toFloat(styles.width), height = toFloat(styles.height);
1787 // Width & height include paddings and borders when the 'border-box' box
1788 // model is applied (except for IE).
1789 if (styles.boxSizing === 'border-box') {
1790 // Following conditions are required to handle Internet Explorer which
1791 // doesn't include paddings and borders to computed CSS dimensions.
1792 //
1793 // We can say that if CSS dimensions + paddings are equal to the "client"
1794 // properties then it's either IE, and thus we don't need to subtract
1795 // anything, or an element merely doesn't have paddings/borders styles.
1796 if (Math.round(width + horizPad) !== clientWidth) {
1797 width -= getBordersSize(styles, 'left', 'right') + horizPad;
1798 }
1799 if (Math.round(height + vertPad) !== clientHeight) {
1800 height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
1801 }
1802 }
1803 // Following steps can't be applied to the document's root element as its
1804 // client[Width/Height] properties represent viewport area of the window.
1805 // Besides, it's as well not necessary as the <html> itself neither has
1806 // rendered scroll bars nor it can be clipped.
1807 if (!isDocumentElement(target)) {
1808 // In some browsers (only in Firefox, actually) CSS width & height
1809 // include scroll bars size which can be removed at this step as scroll
1810 // bars are the only difference between rounded dimensions + paddings
1811 // and "client" properties, though that is not always true in Chrome.
1812 var vertScrollbar = Math.round(width + horizPad) - clientWidth;
1813 var horizScrollbar = Math.round(height + vertPad) - clientHeight;
1814 // Chrome has a rather weird rounding of "client" properties.
1815 // E.g. for an element with content width of 314.2px it sometimes gives
1816 // the client width of 315px and for the width of 314.7px it may give
1817 // 314px. And it doesn't happen all the time. So just ignore this delta
1818 // as a non-relevant.
1819 if (Math.abs(vertScrollbar) !== 1) {
1820 width -= vertScrollbar;
1821 }
1822 if (Math.abs(horizScrollbar) !== 1) {
1823 height -= horizScrollbar;
1824 }
1825 }
1826 return createRectInit(paddings.left, paddings.top, width, height);
1827 }
1828 /**
1829 * Checks whether provided element is an instance of the SVGGraphicsElement.
1830 *
1831 * @param {Element} target - Element to be checked.
1832 * @returns {boolean}
1833 */
1834 var isSVGGraphicsElement = (function () {
1835 // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
1836 // interface.
1837 if (typeof SVGGraphicsElement !== 'undefined') {
1838 return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
1839 }
1840 // If it's so, then check that element is at least an instance of the
1841 // SVGElement and that it has the "getBBox" method.
1842 // eslint-disable-next-line no-extra-parens
1843 return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
1844 typeof target.getBBox === 'function'); };
1845 })();
1846 /**
1847 * Checks whether provided element is a document element (<html>).
1848 *
1849 * @param {Element} target - Element to be checked.
1850 * @returns {boolean}
1851 */
1852 function isDocumentElement(target) {
1853 return target === getWindowOf(target).document.documentElement;
1854 }
1855 /**
1856 * Calculates an appropriate content rectangle for provided html or svg element.
1857 *
1858 * @param {Element} target - Element content rectangle of which needs to be calculated.
1859 * @returns {DOMRectInit}
1860 */
1861 function getContentRect(target) {
1862 if (!isBrowser) {
1863 return emptyRect;
1864 }
1865 if (isSVGGraphicsElement(target)) {
1866 return getSVGContentRect(target);
1867 }
1868 return getHTMLElementContentRect(target);
1869 }
1870 /**
1871 * Creates rectangle with an interface of the DOMRectReadOnly.
1872 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
1873 *
1874 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
1875 * @returns {DOMRectReadOnly}
1876 */
1877 function createReadOnlyRect(_a) {
1878 var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
1879 // If DOMRectReadOnly is available use it as a prototype for the rectangle.
1880 var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
1881 var rect = Object.create(Constr.prototype);
1882 // Rectangle's properties are not writable and non-enumerable.
1883 defineConfigurable(rect, {
1884 x: x, y: y, width: width, height: height,
1885 top: y,
1886 right: x + width,
1887 bottom: height + y,
1888 left: x
1889 });
1890 return rect;
1891 }
1892 /**
1893 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
1894 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
1895 *
1896 * @param {number} x - X coordinate.
1897 * @param {number} y - Y coordinate.
1898 * @param {number} width - Rectangle's width.
1899 * @param {number} height - Rectangle's height.
1900 * @returns {DOMRectInit}
1901 */
1902 function createRectInit(x, y, width, height) {
1903 return { x: x, y: y, width: width, height: height };
1904 }
1905
1906 /**
1907 * Class that is responsible for computations of the content rectangle of
1908 * provided DOM element and for keeping track of it's changes.
1909 */
1910 var ResizeObservation = /** @class */ (function () {
1911 /**
1912 * Creates an instance of ResizeObservation.
1913 *
1914 * @param {Element} target - Element to be observed.
1915 */
1916 function ResizeObservation(target) {
1917 /**
1918 * Broadcasted width of content rectangle.
1919 *
1920 * @type {number}
1921 */
1922 this.broadcastWidth = 0;
1923 /**
1924 * Broadcasted height of content rectangle.
1925 *
1926 * @type {number}
1927 */
1928 this.broadcastHeight = 0;
1929 /**
1930 * Reference to the last observed content rectangle.
1931 *
1932 * @private {DOMRectInit}
1933 */
1934 this.contentRect_ = createRectInit(0, 0, 0, 0);
1935 this.target = target;
1936 }
1937 /**
1938 * Updates content rectangle and tells whether it's width or height properties
1939 * have changed since the last broadcast.
1940 *
1941 * @returns {boolean}
1942 */
1943 ResizeObservation.prototype.isActive = function () {
1944 var rect = getContentRect(this.target);
1945 this.contentRect_ = rect;
1946 return (rect.width !== this.broadcastWidth ||
1947 rect.height !== this.broadcastHeight);
1948 };
1949 /**
1950 * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
1951 * from the corresponding properties of the last observed content rectangle.
1952 *
1953 * @returns {DOMRectInit} Last observed content rectangle.
1954 */
1955 ResizeObservation.prototype.broadcastRect = function () {
1956 var rect = this.contentRect_;
1957 this.broadcastWidth = rect.width;
1958 this.broadcastHeight = rect.height;
1959 return rect;
1960 };
1961 return ResizeObservation;
1962 }());
1963
1964 var ResizeObserverEntry = /** @class */ (function () {
1965 /**
1966 * Creates an instance of ResizeObserverEntry.
1967 *
1968 * @param {Element} target - Element that is being observed.
1969 * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
1970 */
1971 function ResizeObserverEntry(target, rectInit) {
1972 var contentRect = createReadOnlyRect(rectInit);
1973 // According to the specification following properties are not writable
1974 // and are also not enumerable in the native implementation.
1975 //
1976 // Property accessors are not being used as they'd require to define a
1977 // private WeakMap storage which may cause memory leaks in browsers that
1978 // don't support this type of collections.
1979 defineConfigurable(this, { target: target, contentRect: contentRect });
1980 }
1981 return ResizeObserverEntry;
1982 }());
1983
1984 var ResizeObserverSPI = /** @class */ (function () {
1985 /**
1986 * Creates a new instance of ResizeObserver.
1987 *
1988 * @param {ResizeObserverCallback} callback - Callback function that is invoked
1989 * when one of the observed elements changes it's content dimensions.
1990 * @param {ResizeObserverController} controller - Controller instance which
1991 * is responsible for the updates of observer.
1992 * @param {ResizeObserver} callbackCtx - Reference to the public
1993 * ResizeObserver instance which will be passed to callback function.
1994 */
1995 function ResizeObserverSPI(callback, controller, callbackCtx) {
1996 /**
1997 * Collection of resize observations that have detected changes in dimensions
1998 * of elements.
1999 *
2000 * @private {Array<ResizeObservation>}
2001 */
2002 this.activeObservations_ = [];
2003 /**
2004 * Registry of the ResizeObservation instances.
2005 *
2006 * @private {Map<Element, ResizeObservation>}
2007 */
2008 this.observations_ = new MapShim();
2009 if (typeof callback !== 'function') {
2010 throw new TypeError('The callback provided as parameter 1 is not a function.');
2011 }
2012 this.callback_ = callback;
2013 this.controller_ = controller;
2014 this.callbackCtx_ = callbackCtx;
2015 }
2016 /**
2017 * Starts observing provided element.
2018 *
2019 * @param {Element} target - Element to be observed.
2020 * @returns {void}
2021 */
2022 ResizeObserverSPI.prototype.observe = function (target) {
2023 if (!arguments.length) {
2024 throw new TypeError('1 argument required, but only 0 present.');
2025 }
2026 // Do nothing if current environment doesn't have the Element interface.
2027 if (typeof Element === 'undefined' || !(Element instanceof Object)) {
2028 return;
2029 }
2030 if (!(target instanceof getWindowOf(target).Element)) {
2031 throw new TypeError('parameter 1 is not of type "Element".');
2032 }
2033 var observations = this.observations_;
2034 // Do nothing if element is already being observed.
2035 if (observations.has(target)) {
2036 return;
2037 }
2038 observations.set(target, new ResizeObservation(target));
2039 this.controller_.addObserver(this);
2040 // Force the update of observations.
2041 this.controller_.refresh();
2042 };
2043 /**
2044 * Stops observing provided element.
2045 *
2046 * @param {Element} target - Element to stop observing.
2047 * @returns {void}
2048 */
2049 ResizeObserverSPI.prototype.unobserve = function (target) {
2050 if (!arguments.length) {
2051 throw new TypeError('1 argument required, but only 0 present.');
2052 }
2053 // Do nothing if current environment doesn't have the Element interface.
2054 if (typeof Element === 'undefined' || !(Element instanceof Object)) {
2055 return;
2056 }
2057 if (!(target instanceof getWindowOf(target).Element)) {
2058 throw new TypeError('parameter 1 is not of type "Element".');
2059 }
2060 var observations = this.observations_;
2061 // Do nothing if element is not being observed.
2062 if (!observations.has(target)) {
2063 return;
2064 }
2065 observations.delete(target);
2066 if (!observations.size) {
2067 this.controller_.removeObserver(this);
2068 }
2069 };
2070 /**
2071 * Stops observing all elements.
2072 *
2073 * @returns {void}
2074 */
2075 ResizeObserverSPI.prototype.disconnect = function () {
2076 this.clearActive();
2077 this.observations_.clear();
2078 this.controller_.removeObserver(this);
2079 };
2080 /**
2081 * Collects observation instances the associated element of which has changed
2082 * it's content rectangle.
2083 *
2084 * @returns {void}
2085 */
2086 ResizeObserverSPI.prototype.gatherActive = function () {
2087 var _this = this;
2088 this.clearActive();
2089 this.observations_.forEach(function (observation) {
2090 if (observation.isActive()) {
2091 _this.activeObservations_.push(observation);
2092 }
2093 });
2094 };
2095 /**
2096 * Invokes initial callback function with a list of ResizeObserverEntry
2097 * instances collected from active resize observations.
2098 *
2099 * @returns {void}
2100 */
2101 ResizeObserverSPI.prototype.broadcastActive = function () {
2102 // Do nothing if observer doesn't have active observations.
2103 if (!this.hasActive()) {
2104 return;
2105 }
2106 var ctx = this.callbackCtx_;
2107 // Create ResizeObserverEntry instance for every active observation.
2108 var entries = this.activeObservations_.map(function (observation) {
2109 return new ResizeObserverEntry(observation.target, observation.broadcastRect());
2110 });
2111 this.callback_.call(ctx, entries, ctx);
2112 this.clearActive();
2113 };
2114 /**
2115 * Clears the collection of active observations.
2116 *
2117 * @returns {void}
2118 */
2119 ResizeObserverSPI.prototype.clearActive = function () {
2120 this.activeObservations_.splice(0);
2121 };
2122 /**
2123 * Tells whether observer has active observations.
2124 *
2125 * @returns {boolean}
2126 */
2127 ResizeObserverSPI.prototype.hasActive = function () {
2128 return this.activeObservations_.length > 0;
2129 };
2130 return ResizeObserverSPI;
2131 }());
2132
2133 // Registry of internal observers. If WeakMap is not available use current shim
2134 // for the Map collection as it has all required methods and because WeakMap
2135 // can't be fully polyfilled anyway.
2136 var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
2137 /**
2138 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
2139 * exposing only those methods and properties that are defined in the spec.
2140 */
2141 var ResizeObserver = /** @class */ (function () {
2142 /**
2143 * Creates a new instance of ResizeObserver.
2144 *
2145 * @param {ResizeObserverCallback} callback - Callback that is invoked when
2146 * dimensions of the observed elements change.
2147 */
2148 function ResizeObserver(callback) {
2149 if (!(this instanceof ResizeObserver)) {
2150 throw new TypeError('Cannot call a class as a function.');
2151 }
2152 if (!arguments.length) {
2153 throw new TypeError('1 argument required, but only 0 present.');
2154 }
2155 var controller = ResizeObserverController.getInstance();
2156 var observer = new ResizeObserverSPI(callback, controller, this);
2157 observers.set(this, observer);
2158 }
2159 return ResizeObserver;
2160 }());
2161 // Expose public methods of ResizeObserver.
2162 [
2163 'observe',
2164 'unobserve',
2165 'disconnect'
2166 ].forEach(function (method) {
2167 ResizeObserver.prototype[method] = function () {
2168 var _a;
2169 return (_a = observers.get(this))[method].apply(_a, arguments);
2170 };
2171 });
2172
2173 var index = (function () {
2174 // Export existing implementation if available.
2175 if (typeof global$1.ResizeObserver !== 'undefined') {
2176 return global$1.ResizeObserver;
2177 }
2178 return ResizeObserver;
2179 })();
2180
2181 var __assign$4 = (undefined && undefined.__assign) || function () {
2182 __assign$4 = Object.assign || function(t) {
2183 for (var s, i = 1, n = arguments.length; i < n; i++) {
2184 s = arguments[i];
2185 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
2186 t[p] = s[p];
2187 }
2188 return t;
2189 };
2190 return __assign$4.apply(this, arguments);
2191 };
2192 /**
2193 * @private
2194 */
2195 var isRefTarget = function (target) {
2196 return !!target &&
2197 typeof target.current !==
2198 "undefined";
2199 };
2200 /**
2201 * @private
2202 */
2203 var isFunctionTarget = function (target) {
2204 return typeof target === "function";
2205 };
2206 /**
2207 * A utility function to get the current resize observer element.
2208 *
2209 * @private
2210 */
2211 function getResizeObserverTarget(target) {
2212 if (isRefTarget(target)) {
2213 return target.current;
2214 }
2215 if (isFunctionTarget(target)) {
2216 return target();
2217 }
2218 if (typeof target === "string") {
2219 return document.querySelector(target);
2220 }
2221 return target;
2222 }
2223 /**
2224 *
2225 * @private
2226 */
2227 function isHeightChange(prevSize, nextSize) {
2228 return (!prevSize ||
2229 prevSize.height !== nextSize.height ||
2230 prevSize.scrollHeight !== nextSize.scrollHeight);
2231 }
2232 /**
2233 *
2234 * @private
2235 */
2236 function isWidthChange(prevSize, nextSize) {
2237 return (!prevSize ||
2238 prevSize.width !== nextSize.width ||
2239 prevSize.scrollWidth !== nextSize.scrollWidth);
2240 }
2241 /**
2242 * A hook that is used to trigger esize events when a target element is resized
2243 * via CSS or other changes.
2244 *
2245 * @param options The resize observer options.
2246 */
2247 function useResizeObserver(_a) {
2248 var _b = _a.disableHeight, disableHeight = _b === void 0 ? false : _b, _c = _a.disableWidth, disableWidth = _c === void 0 ? false : _c, onResize = _a.onResize, target = _a.target;
2249 React.useEffect(function () {
2250 if (disableHeight && disableWidth) {
2251 return;
2252 }
2253 var resizeTarget = getResizeObserverTarget(target);
2254 if (!resizeTarget) {
2255 return;
2256 }
2257 var prevSize;
2258 var observer = new index(function (entries) {
2259 for (var i = 0; i < entries.length; i += 1) {
2260 var entry = entries[i];
2261 var target_1 = entry.target;
2262 var _a = entry.contentRect, height = _a.height, width = _a.width;
2263 var scrollHeight = target_1.scrollHeight, scrollWidth = target_1.scrollWidth;
2264 var nextSize = {
2265 height: height,
2266 width: width,
2267 scrollHeight: scrollHeight,
2268 scrollWidth: scrollWidth,
2269 };
2270 var isNewHeight = isHeightChange(prevSize, nextSize);
2271 var isNewWidth = isWidthChange(prevSize, nextSize);
2272 prevSize = nextSize;
2273 if ((isNewHeight && !disableHeight) || (isNewWidth && !disableWidth)) {
2274 onResize(__assign$4(__assign$4({}, nextSize), { element: target_1 }));
2275 }
2276 }
2277 });
2278 observer.observe(resizeTarget);
2279 return function () {
2280 observer.disconnect();
2281 };
2282 }, [target, onResize, disableHeight, disableWidth]);
2283 }
2284
2285 var __assign$5 = (undefined && undefined.__assign) || function () {
2286 __assign$5 = Object.assign || function(t) {
2287 for (var s, i = 1, n = arguments.length; i < n; i++) {
2288 s = arguments[i];
2289 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
2290 t[p] = s[p];
2291 }
2292 return t;
2293 };
2294 return __assign$5.apply(this, arguments);
2295 };
2296 var __rest$3 = (undefined && undefined.__rest) || function (s, e) {
2297 var t = {};
2298 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
2299 t[p] = s[p];
2300 if (s != null && typeof Object.getOwnPropertySymbols === "function")
2301 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
2302 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
2303 t[p[i]] = s[p[i]];
2304 }
2305 return t;
2306 };
2307 var block$2 = bem("rmd-grid-list");
2308 var GridListCell = React.forwardRef(function GridListCell(_a, ref) {
2309 var className = _a.className, children = _a.children, _b = _a.square, square = _b === void 0 ? false : _b, _c = _a.clone, clone = _c === void 0 ? false : _c, props = __rest$3(_a, ["className", "children", "square", "clone"]);
2310 var cellClassName = classnames(block$2("cell", { square: square }), className);
2311 if (clone && React.isValidElement(children)) {
2312 var child = React.Children.only(children);
2313 return React.cloneElement(child, {
2314 className: classnames(cellClassName, child.props.className),
2315 });
2316 }
2317 return (React__default.createElement("div", __assign$5({}, props, { ref: ref, className: cellClassName }), children));
2318 });
2319 {
2320 try {
2321 var PropTypes$5 = require("prop-types");
2322 GridListCell.propTypes = {
2323 clone: PropTypes$5.bool,
2324 square: PropTypes$5.bool,
2325 className: PropTypes$5.string,
2326 children: PropTypes$5.node,
2327 };
2328 }
2329 catch (e) { }
2330 }
2331
2332 var cached = {
2333 height: undefined,
2334 width: undefined,
2335 };
2336 /**
2337 * This will return the scrollbar size for a specific OS by creating a
2338 * temporary element to compare the height/width between it's inner element and
2339 * it's own height/width when scrollbars are enabled. This is useful when your
2340 * height/width calculations need to exclude scrollbars since they are included
2341 * by default but content can't be shown underneath them for for static
2342 * elements.
2343 *
2344 * Note: This will return `0` on Mac OS with the default "Only show scrollbars
2345 * when scrolling" which is to be expected. These scrollbars overlay the content
2346 * and actually don't take up height/width real estate.
2347 *
2348 * @see https://stackoverflow.com/a/13382873
2349 * @param type Either the string "height" or "width" to determine which size to
2350 * get
2351 * @param forced Boolean if the scrollbar height/width should be force updated. When
2352 * this is false, the "cached" value will be returned immediately instead
2353 * @return the current scrollbar width or -1 if running this on the server
2354 */
2355 function scrollbarSize(type, forced) {
2356 if (type === void 0) { type = "width"; }
2357 if (forced === void 0) { forced = false; }
2358 /* istanbul ignore if */
2359 if (typeof window === "undefined") {
2360 return -1;
2361 }
2362 var value = cached[type];
2363 if (!forced && typeof value === "number") {
2364 return value;
2365 }
2366 var outer = document.createElement("div");
2367 outer.style.visibility = "hidden";
2368 outer.style.overflow = "scroll";
2369 document.body.appendChild(outer);
2370 var inner = document.createElement("div");
2371 outer.appendChild(inner);
2372 var offsetType = type === "width" ? "offsetWidth" : "offsetHeight";
2373 // the scrollbar width can be determined by comparing the width of the parent
2374 // element that has scrollbars to the child element that does not.
2375 value = outer[offsetType] - inner[offsetType];
2376 cached[type] = value;
2377 document.body.removeChild(outer);
2378 return value;
2379 }
2380
2381 var __assign$6 = (undefined && undefined.__assign) || function () {
2382 __assign$6 = Object.assign || function(t) {
2383 for (var s, i = 1, n = arguments.length; i < n; i++) {
2384 s = arguments[i];
2385 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
2386 t[p] = s[p];
2387 }
2388 return t;
2389 };
2390 return __assign$6.apply(this, arguments);
2391 };
2392 var __rest$4 = (undefined && undefined.__rest) || function (s, e) {
2393 var t = {};
2394 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
2395 t[p] = s[p];
2396 if (s != null && typeof Object.getOwnPropertySymbols === "function")
2397 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
2398 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
2399 t[p[i]] = s[p[i]];
2400 }
2401 return t;
2402 };
2403 /**
2404 * This is the css variable that is used store the current size of each cell.
2405 */
2406 var CELL_SIZE_VAR = "--rmd-cell-size";
2407 /**
2408 * This is the css variable that is used store the current margin of each cell.
2409 */
2410 var CELL_MARGIN_VAR = "--rmd-cell-margin";
2411 var block$3 = bem("rmd-grid-list");
2412 var isRenderFunction = function (children) { return typeof children === "function"; };
2413 /**
2414 * The `GridList` component is a different way to render a list of data where
2415 * the number of columns is dynamic and based on the max-width for each cell.
2416 * Instead of setting a percentage width to each cell based on the number of
2417 * columns, this will dynamically add columns to fill up the remaining space and
2418 * have each cell grow up to a set max-width. A really good use-case for this is
2419 * displaying a list of images or thumbnails and allowing the user to see a full
2420 * screen preview once selected/clicked.
2421 */
2422 var GridList = React.forwardRef(function GridList(_a, forwardedRef) {
2423 var _b;
2424 var style = _a.style, className = _a.className, children = _a.children, _c = _a.clone, clone = _c === void 0 ? false : _c, _d = _a.wrapOnly, wrapOnly = _d === void 0 ? false : _d, cellMargin = _a.cellMargin, defaultSize = _a.defaultSize, _e = _a.maxCellSize, maxCellSize = _e === void 0 ? 150 : _e, _f = _a.containerPadding, containerPadding = _f === void 0 ? 16 : _f, _g = _a.disableHeightObserver, disableHeightObserver = _g === void 0 ? false : _g, _h = _a.disableWidthObserver, disableWidthObserver = _h === void 0 ? false : _h, props = __rest$4(_a, ["style", "className", "children", "clone", "wrapOnly", "cellMargin", "defaultSize", "maxCellSize", "containerPadding", "disableHeightObserver", "disableWidthObserver"]);
2425 var _j = React.useState(defaultSize || { columns: -1, cellWidth: maxCellSize }), gridSize = _j[0], setGridSize = _j[1];
2426 var ref = React.useRef(null);
2427 var recalculate = React.useCallback(function () {
2428 if (!ref.current) {
2429 return;
2430 }
2431 // need to use rect instead of offsetWidth since we need decimal precision
2432 // for the width since offsetWidth is basically Math.ceil(width). the
2433 // calculations for max columns will be off on high-pixel-density monitors
2434 // or some zoom levels.
2435 var width = ref.current.getBoundingClientRect().width;
2436 width -= containerPadding;
2437 // just need to see if there is a scrollbar visible and subtract that width.
2438 // don't need decimal precision here since both values will be rounded
2439 if (ref.current.offsetHeight < ref.current.scrollHeight) {
2440 width -= scrollbarSize("width");
2441 }
2442 var columns = Math.ceil(width / maxCellSize);
2443 setGridSize({ cellWidth: width / columns, columns: columns });
2444 }, [maxCellSize, containerPadding]);
2445 var refHandler = React.useCallback(function (instance) {
2446 applyRef(instance, forwardedRef);
2447 ref.current = instance;
2448 if (instance) {
2449 recalculate();
2450 }
2451 }, [forwardedRef, recalculate]);
2452 useResizeObserver({
2453 disableHeight: disableHeightObserver,
2454 disableWidth: disableWidthObserver,
2455 onResize: recalculate,
2456 target: ref,
2457 });
2458 var mergedStyle = __assign$6(__assign$6({}, style), (_b = {}, _b[CELL_SIZE_VAR] = gridSize.cellWidth + "px", _b[CELL_MARGIN_VAR] = cellMargin || undefined, _b));
2459 var content = null;
2460 if (isRenderFunction(children)) {
2461 content = children(gridSize);
2462 }
2463 else if (clone || wrapOnly) {
2464 content = React.Children.map(children, function (child) { return child && React__default.createElement(GridListCell, { clone: clone }, child); });
2465 }
2466 else {
2467 content = children;
2468 }
2469 return (React__default.createElement("div", __assign$6({}, props, { ref: refHandler, style: mergedStyle, className: classnames(block$3(), className) }), content));
2470 });
2471 {
2472 try {
2473 var PropTypes$6 = require("prop-types");
2474 GridList.propTypes = {
2475 style: PropTypes$6.object,
2476 clone: PropTypes$6.bool,
2477 wrapOnly: PropTypes$6.bool,
2478 className: PropTypes$6.string,
2479 children: PropTypes$6.oneOfType([PropTypes$6.func, PropTypes$6.node]),
2480 cellMargin: PropTypes$6.string,
2481 maxCellSize: PropTypes$6.number,
2482 defaultSize: PropTypes$6.oneOfType([
2483 PropTypes$6.shape({
2484 columns: PropTypes$6.number.isRequired,
2485 cellWidth: PropTypes$6.number.isRequired,
2486 }),
2487 PropTypes$6.func,
2488 ]),
2489 containerPadding: PropTypes$6.number,
2490 disableHeightObserver: PropTypes$6.bool,
2491 disableWidthObserver: PropTypes$6.bool,
2492 };
2493 }
2494 catch (e) { }
2495 }
2496
2497 /**
2498 * Attempts to find the first match index for a list of values that starts with
2499 * the provided query string and is within the start and end indexes. If no
2500 * matches are found, -1 will be returned instead.
2501 *
2502 * Since this is normally coming from a keydown event, the query *must* be a
2503 * string of all capital letters to work as each value will be converted to
2504 * uppercase before checking.
2505 *
2506 * @param value The current query string to find within the values
2507 * @param values The list of values to search within
2508 * @param startIndex The start index for the search
2509 * @param endIndex The end index for the search
2510 * @private
2511 */
2512 function findMatchInRange(value, values, startIndex, endIndex) {
2513 value = value.toUpperCase();
2514 for (var i = startIndex; i < endIndex; i += 1) {
2515 var content = values[i];
2516 if (content.toUpperCase().indexOf(value) === 0) {
2517 return i;
2518 }
2519 }
2520 return -1;
2521 }
2522 /**
2523 * A function that is used to find the next match index within a list of values
2524 * by comparing the start values ignoring case.
2525 *
2526 * If a match can not be found from the search string, `-1` will be returned.
2527 * The search value is self-matchable by default, but it can be omitted by
2528 * disabling the `isSelfMatchable` argument. This will make a self-match return
2529 * `-1`.
2530 *
2531 * @param value The current search value
2532 * @param values A list of values to search within
2533 * @param startIndex The index within the values list to start the search from
2534 * @param isSelfMatchable Boolean if the current index can be included in the
2535 * search
2536 * @private
2537 */
2538 function findMatchIndex(value, values, startIndex, isSelfMatchable) {
2539 if (isSelfMatchable === void 0) { isSelfMatchable = true; }
2540 var index = findMatchInRange(value, values, startIndex + 1, values.length);
2541 if (index === -1) {
2542 var endIndex = startIndex + (isSelfMatchable ? 1 : 0);
2543 index = findMatchInRange(value, values, 0, endIndex);
2544 }
2545 return index;
2546 }
2547
2548 var __assign$7 = (undefined && undefined.__assign) || function () {
2549 __assign$7 = Object.assign || function(t) {
2550 for (var s, i = 1, n = arguments.length; i < n; i++) {
2551 s = arguments[i];
2552 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
2553 t[p] = s[p];
2554 }
2555 return t;
2556 };
2557 return __assign$7.apply(this, arguments);
2558 };
2559 /**
2560 * This is normally used for reusable shareable configs that have multiple
2561 * shared options with default values that should be used. This basically works
2562 * just like `defaultProps` in react.
2563 *
2564 * @internal
2565 * @param optional The original object that has the optional/omitted values
2566 * @param required The required default values that should be used to fill the
2567 * optional object with
2568 * @return a new object with both the values of the optional and required
2569 * objects but use the optional values if they were defined.
2570 */
2571 function defaults(optional, required) {
2572 var keys = Object.keys(required);
2573 return keys.reduce(function (result, key) {
2574 if (typeof result[key] === "undefined") {
2575 result[key] = required[key];
2576 }
2577 return result;
2578 }, __assign$7({}, optional));
2579 }
2580
2581 /**
2582 * This is a small util that is used to transform a search string with common
2583 * patterns.
2584 *
2585 * @param value The string to transform
2586 * @param lowercase Boolean if the value should be lowercased for
2587 * case-insensitive searches
2588 * @param trim Boolean if the leading and trailing whitespace should be trimmed
2589 * @param ignoreWhitespace Boolean if all whitespace should be ignored. This
2590 * will take precedence over the `trim` parameter if set to true.
2591 * @return The transformed search string
2592 * @private
2593 */
2594 function getSearchString(value, lowercase, trim, ignoreWhitespace) {
2595 if (lowercase === void 0) { lowercase = false; }
2596 if (trim === void 0) { trim = false; }
2597 if (ignoreWhitespace === void 0) { ignoreWhitespace = false; }
2598 if (lowercase) {
2599 value = value.toLowerCase();
2600 }
2601 if (ignoreWhitespace) {
2602 value = value.replace(/\s/g, "");
2603 }
2604 else if (trim) {
2605 value = value.trim();
2606 }
2607 return value;
2608 }
2609 /**
2610 * The default implementation of the getItemValue search option that will
2611 * attempt to "stringify" any unknown item as a string.
2612 *
2613 * @param item The current item to transform
2614 * @param valueKey The key to use that should hold the value if the item is an
2615 * object
2616 * @return the item as a string
2617 * @private
2618 */
2619 function getItemValue(item, valueKey) {
2620 if (valueKey === void 0) { valueKey = "value"; }
2621 switch (typeof item) {
2622 case "string":
2623 return item;
2624 case "number":
2625 return Number.isNaN(item) ? "" : "" + item;
2626 case "function":
2627 return getItemValue(item(), valueKey);
2628 case "object":
2629 return item
2630 ? getItemValue(item[valueKey], valueKey)
2631 : "";
2632 default:
2633 return "";
2634 }
2635 }
2636 var DEFAULT_GET_ITEM_VALUE = getItemValue;
2637 var DEFAULT_VALUE_KEY = "value";
2638 var DEFAULT_TRIM = true;
2639 var DEFAULT_IGNORE_WHITESPACE = false;
2640 var DEFAULT_SEARCH_RESET_TIME = 500;
2641 var DEFAULT_SEARCH_OPTIONS = {
2642 getItemValue: DEFAULT_GET_ITEM_VALUE,
2643 valueKey: DEFAULT_VALUE_KEY,
2644 trim: DEFAULT_TRIM,
2645 ignoreWhitespace: DEFAULT_IGNORE_WHITESPACE,
2646 };
2647
2648 /**
2649 * Filters a list by ensuring that all items contain the query string in order
2650 * anywhere in it's own value.
2651 *
2652 * @param query The current query string
2653 * @param searchable The list of searchable items that should be filtered
2654 * @param options All the search options to use
2655 * @return A filtered list of all the searchable items based on the query
2656 * string.
2657 */
2658 function caseInsensitiveFilter(query, searchable, options) {
2659 if (options === void 0) { options = {}; }
2660 var _a = defaults(options, DEFAULT_SEARCH_OPTIONS), getItemValue = _a.getItemValue, valueKey = _a.valueKey, trim = _a.trim, ignoreWhitespace = _a.ignoreWhitespace, _b = _a.startsWith, startsWith = _b === void 0 ? false : _b;
2661 query = getSearchString(query, true, trim, ignoreWhitespace);
2662 if (!query || !searchable.length) {
2663 return searchable;
2664 }
2665 return searchable.filter(function (item) {
2666 var value = getSearchString(getItemValue(item, valueKey), true, trim, ignoreWhitespace);
2667 if (startsWith) {
2668 return value.indexOf(query) === 0;
2669 }
2670 return value.indexOf(query) !== -1;
2671 });
2672 }
2673
2674 /**
2675 * Creates an "amazing" regular expression that matches the letters in order and
2676 * escapes any letters that could be part of a regex. This should normally be
2677 * used in fuzzy filters or determining fuzzy matches.
2678 *
2679 * @param query The query string to convert into a "fuzzy" regular expression
2680 * @return The "fuzzy" regular expression that can be used to determine matches.
2681 */
2682 function getFuzzyRegExp(query) {
2683 return new RegExp(("" + query)
2684 .split("")
2685 .join("\\w*")
2686 .replace(/(\(|\||\)|\\(?!w\*)|\[|\|-|\.|\^|\+|\$|\?|^(?!w)\*)/g, "\\$1")
2687 // Couldn't get the matching of two '*' working, so replace them here..
2688 .replace(/\*\*/g, "*\\*"), "i");
2689 }
2690
2691 /**
2692 * Filters a list by using a fuzzy search "algorithm" (huge double quotes on
2693 * algorithm). The fuzzy search will just ensure that all the letters in the
2694 * query string appear in-order for all the remaining items. However, the
2695 * letters *do not need to be consecutive*.
2696 *
2697 * @param query The current query string
2698 * @param searchable The list of searchable items that should be filtered
2699 * @param options All the search options to use
2700 * @return A filtered list of all the searchable items based on the query
2701 * string.
2702 */
2703 function fuzzyFilter(query, searchable, options) {
2704 if (options === void 0) { options = {}; }
2705 var _a = defaults(options, DEFAULT_SEARCH_OPTIONS), getItemValue = _a.getItemValue, valueKey = _a.valueKey, trim = _a.trim, ignoreWhitespace = _a.ignoreWhitespace;
2706 query = getSearchString(query, false, trim, ignoreWhitespace);
2707 if (!searchable.length || !query) {
2708 return searchable;
2709 }
2710 var queryRegExp = getFuzzyRegExp(query);
2711 return searchable.filter(function (item) {
2712 var value = getSearchString(getItemValue(item, valueKey), false, trim, ignoreWhitespace);
2713 return value.length && value.match(queryRegExp);
2714 });
2715 }
2716
2717 /**
2718 * This is a simple `array.find` implementation that will work for any
2719 * searchable item type and return the first item that starts with the current
2720 * query string ignoring case.
2721 *
2722 * @param query The current query string to use to match with
2723 * @param searchable The list of searchable items
2724 * @param options The additional search options available.
2725 * @return the found item in the searchable list or null
2726 */
2727 function findIgnoreCase(query, searchable, options) {
2728 if (options === void 0) { options = {}; }
2729 var _a = defaults(options, DEFAULT_SEARCH_OPTIONS), getItemValue = _a.getItemValue, valueKey = _a.valueKey, trim = _a.trim, ignoreWhitespace = _a.ignoreWhitespace;
2730 query = getSearchString(query, true, trim, ignoreWhitespace);
2731 if (!query.length || !searchable.length) {
2732 return null;
2733 }
2734 var found = searchable.find(function (item) {
2735 var value = getSearchString(getItemValue(item, valueKey), true, trim, ignoreWhitespace);
2736 return value.indexOf(query) === 0;
2737 });
2738 return typeof found === "number" ? found : found || null;
2739 }
2740
2741 /**
2742 * Creates a temporary value that gets reset every `x`ms back to the provided
2743 * default value. This is useful when doing keyboard searching or other
2744 * interactions.
2745 *
2746 * NOTE: This does not force a re-render when the value changes and instead uses
2747 * a ref value instead.
2748 *
2749 * @typeparam T the type for the value
2750 * @param defaultValue The default value to use. Each time the reset timeout is
2751 * triggered, this value will be set again.
2752 * @param resetTime The amount of time before the value is reset back to the
2753 * default value
2754 */
2755 function useTempValue(defaultValue, resetTime) {
2756 if (resetTime === void 0) { resetTime = 500; }
2757 var value = React.useRef(defaultValue);
2758 var timeout = React.useRef();
2759 var resetValue = React.useCallback(function () {
2760 window.clearTimeout(timeout.current);
2761 value.current = defaultValue;
2762 }, [defaultValue]);
2763 var setValue = React.useCallback(function (nextValue) {
2764 value.current = nextValue;
2765 window.clearTimeout(timeout.current);
2766 timeout.current = window.setTimeout(resetValue, resetTime);
2767 }, [resetTime, resetValue]);
2768 return [value, setValue, resetValue];
2769 }
2770
2771 /**
2772 * Adds the accessibility functionality to search a list of items as the user
2773 * types to trigger `aria-activedescendant` focus or manual DOM focus events.
2774 */
2775 function useKeyboardSearch(_a) {
2776 var items = _a.items, onChange = _a.onChange, onKeyDown = _a.onKeyDown, _b = _a.resetTime, resetTime = _b === void 0 ? DEFAULT_SEARCH_RESET_TIME : _b, searchIndex = _a.searchIndex, _c = _a.valueKey, valueKey = _c === void 0 ? DEFAULT_VALUE_KEY : _c, _d = _a.getItemValue, getItemValue = _d === void 0 ? DEFAULT_GET_ITEM_VALUE : _d, _e = _a.findMatchIndex, findMatchIndex$1 = _e === void 0 ? findMatchIndex : _e;
2777 var _f = useTempValue("", resetTime), value = _f[0], setValue = _f[1];
2778 var values = React.useMemo(function () { return items.map(function (item) { return getItemValue(item, valueKey); }); }, [items, getItemValue, valueKey]);
2779 var handleKeyDown = React.useCallback(function (event) {
2780 if (onKeyDown) {
2781 onKeyDown(event);
2782 }
2783 var key = event.key, altKey = event.altKey, ctrlKey = event.ctrlKey, metaKey = event.metaKey;
2784 if (altKey ||
2785 ctrlKey ||
2786 metaKey ||
2787 key.length > 1 ||
2788 (!value.current && key === " ")) {
2789 // might need to change this later if other languages have non-meta keys
2790 // that are more than 1 letter
2791 return;
2792 }
2793 var nextValue = key;
2794 if (value.current !== key) {
2795 nextValue = "" + value.current + key;
2796 }
2797 setValue(nextValue);
2798 var index = findMatchIndex$1(nextValue, values, searchIndex, true);
2799 // don't want to trigger change events if the search didn't match anything
2800 // since you normally don't really care about failed matches
2801 if (index === searchIndex || index === -1) {
2802 return;
2803 }
2804 var data = {
2805 index: index,
2806 item: items[index],
2807 items: items,
2808 query: nextValue,
2809 target: event.currentTarget,
2810 };
2811 onChange(data);
2812 }, [
2813 searchIndex,
2814 findMatchIndex$1,
2815 items,
2816 onChange,
2817 onKeyDown,
2818 setValue,
2819 value,
2820 values,
2821 ]);
2822 return handleKeyDown;
2823 }
2824
2825 var __assign$8 = (undefined && undefined.__assign) || function () {
2826 __assign$8 = Object.assign || function(t) {
2827 for (var s, i = 1, n = arguments.length; i < n; i++) {
2828 s = arguments[i];
2829 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
2830 t[p] = s[p];
2831 }
2832 return t;
2833 };
2834 return __assign$8.apply(this, arguments);
2835 };
2836 /**
2837 * This component should be mounted near the top of your app as it will keep
2838 * track of the current app size based on the provided breakpoint widths.
2839 */
2840 function AppSizeListener(_a) {
2841 var children = _a.children, onChange = _a.onChange, _b = _a.phoneMaxWidth, phoneMaxWidth = _b === void 0 ? DEFAULT_PHONE_MAX_WIDTH : _b, _c = _a.tabletMinWidth, tabletMinWidth = _c === void 0 ? DEFAULT_TABLET_MIN_WIDTH : _c, _d = _a.tabletMaxWidth, tabletMaxWidth = _d === void 0 ? DEFAULT_TABLET_MAX_WIDTH : _d, _e = _a.desktopMinWidth, desktopMinWidth = _e === void 0 ? DEFAULT_DESKTOP_MIN_WIDTH : _e, _f = _a.desktopLargeMinWidth, desktopLargeMinWidth = _f === void 0 ? DEFAULT_DESKTOP_LARGE_MIN_WIDTH : _f, _g = _a.defaultSize, defaultSize = _g === void 0 ? DEFAULT_APP_SIZE : _g;
2842 var appSize = useAppSizeMedia({
2843 phoneMaxWidth: phoneMaxWidth,
2844 tabletMaxWidth: tabletMaxWidth,
2845 tabletMinWidth: tabletMinWidth,
2846 desktopMinWidth: desktopMinWidth,
2847 desktopLargeMinWidth: desktopLargeMinWidth,
2848 defaultSize: defaultSize,
2849 });
2850 var lastValue = React.useRef(appSize);
2851 React.useEffect(function () {
2852 // trigger the onChange prop on mount only if there is a difference between
2853 // the defaultSize and the mounted size.
2854 if (onChange &&
2855 (defaultSize.isPhone !== appSize.isPhone ||
2856 defaultSize.isTablet !== appSize.isTablet ||
2857 defaultSize.isDesktop !== appSize.isDesktop ||
2858 defaultSize.isLargeDesktop !== appSize.isLargeDesktop ||
2859 defaultSize.isLandscape !== appSize.isLandscape)) {
2860 onChange(appSize, defaultSize);
2861 }
2862 // eslint-disable-next-line react-hooks/exhaustive-deps
2863 }, []);
2864 React.useEffect(function () {
2865 if (lastValue.current !== appSize) {
2866 if (onChange) {
2867 onChange(appSize, lastValue.current);
2868 }
2869 lastValue.current = appSize;
2870 }
2871 });
2872 var value = React.useMemo(function () { return (__assign$8(__assign$8({}, appSize), { __initialized: true })); }, [appSize]);
2873 return (React__default.createElement(AppSizeContext.Provider, { value: value }, children));
2874 }
2875 {
2876 try {
2877 var PropTypes$7 = require("prop-types");
2878 var querySize = PropTypes$7.oneOfType([PropTypes$7.string, PropTypes$7.number]);
2879 AppSizeListener.propTypes = {
2880 children: PropTypes$7.node.isRequired,
2881 onChange: PropTypes$7.func,
2882 phoneMaxWidth: querySize,
2883 tabletMinWidth: querySize,
2884 tabletMaxWidth: querySize,
2885 desktopMinWidth: querySize,
2886 desktopLargeMinWidth: querySize,
2887 defaultSize: PropTypes$7.shape({
2888 isPhone: PropTypes$7.bool.isRequired,
2889 isTablet: PropTypes$7.bool.isRequired,
2890 isDesktop: PropTypes$7.bool.isRequired,
2891 isLargeDesktop: PropTypes$7.bool.isRequired,
2892 isLandscape: PropTypes$7.bool.isRequired,
2893 }),
2894 };
2895 }
2896 catch (e) { }
2897 }
2898
2899 /**
2900 * The resize observer is used to track the size changes for a single element in
2901 * a page. This is a bit different than a normal `ResizeListener` since it does
2902 * not rely on entire page size changes.
2903 */
2904 function ResizeObserver$1(_a) {
2905 var _b = _a.disableHeight, disableHeight = _b === void 0 ? false : _b, _c = _a.disableWidth, disableWidth = _c === void 0 ? false : _c, className = _a.className, _d = _a.component, Component = _d === void 0 ? "span" : _d, target = _a.target, onResize = _a.onResize;
2906 var _e = React.useState(null), element = _e[0], setElement = _e[1];
2907 useResizeObserver({
2908 disableHeight: disableHeight,
2909 disableWidth: disableWidth,
2910 target: target || element,
2911 onResize: onResize,
2912 });
2913 var ref = React.useCallback(function (instance) {
2914 if (!instance) {
2915 setElement(null);
2916 return;
2917 }
2918 setElement(instance.parentElement);
2919 }, []);
2920 if (target === null || target) {
2921 return null;
2922 }
2923 return React__default.createElement(Component, { className: className, "aria-hidden": "true", ref: ref });
2924 }
2925 {
2926 try {
2927 var PropTypes$8 = require("prop-types");
2928 ResizeObserver$1.propTypes = {
2929 disableHeight: PropTypes$8.bool,
2930 disableWidth: PropTypes$8.bool,
2931 className: PropTypes$8.string,
2932 component: PropTypes$8.oneOfType([
2933 // workaround for Typescript since PropTypes.string throws WeakValidationMap error
2934 // but this component only supports string components
2935 PropTypes$8.string,
2936 ]),
2937 target: PropTypes$8.oneOfType([
2938 PropTypes$8.string,
2939 PropTypes$8.func,
2940 PropTypes$8.object,
2941 ]),
2942 };
2943 }
2944 catch (e) { }
2945 }
2946
2947 /**
2948 * This is a simple hook that will attach a throttled resize event listener when
2949 * mounted, and detach when it unmounts.
2950 *
2951 * This hook only works for entire app resize events. If you are looking for
2952 * specific element resize events, check out the `ResizeObserver` component or
2953 * `useReiszeObserver` hook instead.
2954 */
2955 function useResizeListener(_a) {
2956 var onResize = _a.onResize, options = _a.options, immediate = _a.immediate, _b = _a.enabled, enabled = _b === void 0 ? true : _b;
2957 var callback = useRefCache(onResize);
2958 React.useEffect(function () {
2959 if (!enabled) {
2960 return;
2961 }
2962 var eventHandler = delegateEvent("resize", window, true, options);
2963 var handler = function (event) { return callback.current(event); };
2964 eventHandler.add(handler);
2965 if (immediate && typeof window !== "undefined") {
2966 window.dispatchEvent(new UIEvent("resize"));
2967 }
2968 return function () {
2969 eventHandler.remove(handler);
2970 };
2971 // disabled since useRefCache for callback and don't want immediate to
2972 // re-trigger it.
2973 // eslint-disable-next-line react-hooks/exhaustive-deps
2974 }, [options, enabled]);
2975 }
2976
2977 /**
2978 * This is a simple component that will attach a throttled resize event listener
2979 * when mounted, and detach when it unmounts.
2980 *
2981 * This component only works for entire app resize events. If you are looking
2982 * for specific element resize events, check out the `ResizeObserver` component
2983 * instead.
2984 */
2985 function ResizeListener(_a) {
2986 var onResize = _a.onResize, options = _a.options, _b = _a.immediate, immediate = _b === void 0 ? typeof window !== "undefined" : _b;
2987 useResizeListener({ onResize: onResize, options: options, immediate: immediate, enabled: true });
2988 return null;
2989 }
2990 {
2991 try {
2992 var PropTypes$9 = require("prop-types");
2993 ResizeListener.propTypes = {
2994 onResize: PropTypes$9.func.isRequired,
2995 options: PropTypes$9.object,
2996 immediate: PropTypes$9.bool,
2997 };
2998 }
2999 catch (e) { }
3000 }
3001
3002 /**
3003 * A simple component that will render the children only when the app is
3004 * considered in mobile mode via the `AppSizeContext`. A mobile view will be
3005 * true for both phones and tablets.
3006 */
3007 var MobileOnly = function (props) {
3008 var _a = props, children = _a.children, fallback = _a.fallback;
3009 var _b = useAppSize(), isPhone = _b.isPhone, isTablet = _b.isTablet;
3010 if (isPhone || isTablet) {
3011 return children;
3012 }
3013 return fallback;
3014 };
3015 /**
3016 * A simple component that will render the children only when the app is
3017 * considered in phone mode via the `AppSizeContext`.
3018 */
3019 var PhoneOnly = function (props) {
3020 var _a = props, children = _a.children, fallback = _a.fallback;
3021 var isPhone = useAppSize().isPhone;
3022 if (isPhone) {
3023 return children;
3024 }
3025 return fallback;
3026 };
3027 /**
3028 * A simple component that will render the children only when the app is
3029 * considered in tablet mode via the `AppSizeContext`.
3030 */
3031 var TabletOnly = function (props) {
3032 var _a = props, children = _a.children, fallback = _a.fallback;
3033 var isTablet = useAppSize().isTablet;
3034 if (isTablet) {
3035 return children;
3036 }
3037 return fallback;
3038 };
3039 /**
3040 * A simple component that will render the children only when the app is
3041 * considered in desktop mode via the `AppSizeContext`.
3042 */
3043 var DesktopOnly = function (props) {
3044 var _a = props, children = _a.children, fallback = _a.fallback;
3045 var isDesktop = useAppSize().isDesktop;
3046 if (isDesktop) {
3047 return children;
3048 }
3049 return fallback;
3050 };
3051 var defaultProps = {
3052 fallback: null,
3053 };
3054 MobileOnly.defaultProps = defaultProps;
3055 PhoneOnly.defaultProps = defaultProps;
3056 TabletOnly.defaultProps = defaultProps;
3057 DesktopOnly.defaultProps = defaultProps;
3058
3059 /**
3060 * Attempts to find a sizing container based on the provided HTMLElement. By default, the sizing
3061 * element will just be the provided element unless:
3062 * - the item has a known role within react-md that can target known classes
3063 * - the item has a `data-sizing-selector` attribute that is a valid query selector for the nested
3064 * item.
3065 *
3066 * NOTE: The `data-sizing-selector` will be run from the current element instead of the `document`.
3067 *
3068 * @param el The element to find a sizing container for.
3069 * @return the sizing container relative to the provided element, or `null` if none
3070 * could be found.
3071 * @throws This error will be thrown if using the `data-query-selector` and the query
3072 * selector does not return an element on the page.
3073 */
3074 function findSizingContainer(el) {
3075 if (!el) {
3076 return null;
3077 }
3078 if (/(tree|list)item/.test(el.getAttribute("role") || "")) {
3079 var content = el.querySelector(".rmd-tree-item__content, .rmd-item-text");
3080 if (content) {
3081 return content;
3082 }
3083 }
3084 else if (el.getAttribute("type") === "file") {
3085 var label = document.querySelector("[for=\"" + el.id + "\"]");
3086 if (label) {
3087 return label;
3088 }
3089 }
3090 var data = el.getAttribute("data-sizing-selector");
3091 if (data) {
3092 var content = el.querySelector(data);
3093 if (content) {
3094 return content;
3095 }
3096 {
3097 throw new Error("Unable to find a child element using the `data-sizing-selector`");
3098 }
3099 }
3100 return el;
3101 }
3102
3103 /**
3104 * This is a simple wrapper to get the view width or view hieght.
3105 *
3106 * @param direction Either the "height" or "width" string to get that dimension
3107 * @return the view width or view height.
3108 */
3109 function getViewportSize(direction) {
3110 var de = document.documentElement || { clientHeight: 0, clientWidth: 0 };
3111 if (direction === "width") {
3112 return window.innerWidth || de.clientWidth;
3113 }
3114 return window.innerHeight || de.clientHeight;
3115 }
3116
3117 function applyCoords(coord) {
3118 return typeof coord === "number" ? coord + "px" : "";
3119 }
3120 /**
3121 * This util is used to get the "true" `element.getBoundingClientRect()` that
3122 * ensures that transitions using tarnsforms don't mess up the sizing so that
3123 * position calculations are easier to do.
3124 *
3125 * @param element The element to get a rect for.
3126 * @param coords An optional object of coordinates to apply to the positioning
3127 * styles. This should be used when the coords might resize the element since it
3128 * needs to try to fit within the viewport.
3129 * @return either a DOMRect or ClientRect for the element
3130 * @private
3131 */
3132 function getElementRect(element, coords) {
3133 if (coords === void 0) { coords = {}; }
3134 var cloned = element.cloneNode(true);
3135 // remove the id so there won't be two elements with the same id on the page
3136 cloned.removeAttribute("id");
3137 // remove the role just in case the role would alert screen readers once added
3138 // to the dom
3139 cloned.removeAttribute("role");
3140 // ensure the cloned node won't shift the page or be visible
3141 cloned.style.position = "fixed";
3142 cloned.style.visibility = "hidden";
3143 // reset positionion to get a "pure" calculation. otherwise this will mess up the
3144 // height and width if the element is able to line wrap.
3145 cloned.style.left = applyCoords(coords.left);
3146 cloned.style.top = applyCoords(coords.top);
3147 cloned.style.right = applyCoords(coords.right);
3148 cloned.style.bottom = applyCoords(coords.bottom);
3149 // reset transforms so that custom animations don't mess with the sizing
3150 cloned.style.webkitTransform = "none";
3151 cloned.style.transform = "none";
3152 var parent = element.parentElement || document.body;
3153 parent.appendChild(cloned);
3154 var rect = cloned.getBoundingClientRect();
3155 parent.removeChild(cloned);
3156 return rect;
3157 }
3158
3159 /**
3160 * Creates the `left` style value for an element that should be fixed to the
3161 * (outer) left of the container element. So the right bounds of the fixed
3162 * element will be equal to the left bounds of the container element (before the
3163 * xMargin is applied).
3164 * @private
3165 */
3166 function getLeftCoord(_a) {
3167 var xMargin = _a.xMargin, elWidth = _a.elWidth, initialX = _a.initialX, containerRect = _a.containerRect;
3168 return (initialX !== null && initialX !== void 0 ? initialX : containerRect.left) - elWidth - xMargin;
3169 }
3170 /**
3171 * Creates the `left` style value for an element that should be fixed to the
3172 * inner-left of the container element. So the left bounds of both the container
3173 * and fixed elements will overlap (before the xMargin is applied)
3174 * @private
3175 */
3176 function getInnerLeftCoord(_a) {
3177 var xMargin = _a.xMargin, initialX = _a.initialX, containerRect = _a.containerRect;
3178 return (initialX !== null && initialX !== void 0 ? initialX : containerRect.left) + xMargin;
3179 }
3180 /**
3181 * Creates the `left` style value for an element that should be fixed to the
3182 * center of the container element. So the center point of the fixed element
3183 * should be the center point of the container element.
3184 *
3185 * Note: Unlike all the other horizontal positioning logic, the center position
3186 * does not use the xMargin.
3187 * @private
3188 */
3189 function getCenterXCoord(_a) {
3190 var elWidth = _a.elWidth, initialX = _a.initialX, containerRect = _a.containerRect;
3191 var containerCenter = containerRect.width / 2;
3192 var elementCenter = elWidth / 2;
3193 return (initialX !== null && initialX !== void 0 ? initialX : containerRect.left + containerCenter) - elementCenter;
3194 }
3195 /**
3196 * Creates the `left` style value for an element that should be fixed to the
3197 * inner-right of the container element. So the right bounds for both the
3198 * container and fixed elements will overlap (before the xMargin is applied).
3199 * @private
3200 */
3201 function getInnerRightCoord(_a) {
3202 var xMargin = _a.xMargin, elWidth = _a.elWidth, initialX = _a.initialX, containerRect = _a.containerRect;
3203 return ((initialX !== null && initialX !== void 0 ? initialX : containerRect.left + containerRect.width) - elWidth - xMargin);
3204 }
3205 /**
3206 * Creates the `left` style value for an element that should be fixed to the
3207 * (outer) right of the container element. So the left bounds of the fixed
3208 * element will overlap with the right bounds of the container element (before
3209 * the xMargin is applied).
3210 * @private
3211 */
3212 function getRightCoord(_a) {
3213 var xMargin = _a.xMargin, initialX = _a.initialX, containerRect = _a.containerRect;
3214 return (initialX !== null && initialX !== void 0 ? initialX : containerRect.left + containerRect.width) + xMargin;
3215 }
3216 /**
3217 * Creates the `top` style value for an element that should be fixed above the
3218 * container element. So the bottom bounds of the fixed element will overlap
3219 * with the top bounds of the container element (before the yMargin is applied).
3220 * @private
3221 */
3222 function getAboveCoord(_a) {
3223 var yMargin = _a.yMargin, initialY = _a.initialY, elHeight = _a.elHeight, containerRect = _a.containerRect;
3224 return (initialY !== null && initialY !== void 0 ? initialY : containerRect.top) - elHeight - yMargin;
3225 }
3226 /**
3227 * Creates the `top` style value for an element that should be fixed to the top
3228 * of the container element. So the top bounds for both the container and fixed
3229 * elements will overlap (before the yMargin is applied).
3230 * @private
3231 */
3232 function getTopCoord(_a) {
3233 var yMargin = _a.yMargin, initialY = _a.initialY, containerRect = _a.containerRect;
3234 return (initialY !== null && initialY !== void 0 ? initialY : containerRect.top) + yMargin;
3235 }
3236 /**
3237 * Creates the `top` style value for an element that should be fixed vertically
3238 * centered relative to the container element. So the vertical center point for
3239 * the fixed element should overlap the vertical center point of the container
3240 * element.
3241 *
3242 * Note: Unlike all the other vertical positioning logic, the center position
3243 * does not use the yMargin.
3244 */
3245 function getCenterYCoord(_a) {
3246 var elHeight = _a.elHeight, initialY = _a.initialY, containerRect = _a.containerRect;
3247 var containerCenter = containerRect.height / 2;
3248 var elementCenter = elHeight / 2;
3249 return (initialY !== null && initialY !== void 0 ? initialY : containerRect.top + containerCenter) - elementCenter;
3250 }
3251 /**
3252 * Creates the `top` style value for an element that should be fixed to the
3253 * bottom of the container element. So the top bounds of the fixed element
3254 * should overlap the bottom bounds of the container element (before the yMargin
3255 * is applied).
3256 * @private
3257 */
3258 function getBottomCoord(_a) {
3259 var yMargin = _a.yMargin, initialY = _a.initialY, elHeight = _a.elHeight, containerRect = _a.containerRect;
3260 return ((initialY !== null && initialY !== void 0 ? initialY : containerRect.top + containerRect.height) - elHeight - yMargin);
3261 }
3262 /**
3263 * Creates the `top` style value for an element that should be fixed to the
3264 * bottom of the container element. So the bottom bounds of both the container
3265 * and fixed elements should overlap (before the yMargin is applied).
3266 * @private
3267 */
3268 function getBelowCoord(_a) {
3269 var yMargin = _a.yMargin, initialY = _a.initialY, containerRect = _a.containerRect;
3270 return (initialY !== null && initialY !== void 0 ? initialY : containerRect.top + containerRect.height) + yMargin;
3271 }
3272
3273 /**
3274 * Attempts to position the fixed element so that it will appear to the left of
3275 * the container element but also within the viewport boundaries. When swapping
3276 * is enabled, it will attempt to swap to the right position if it can't fit
3277 * within the viewport to the left. If it can't fit in the viewport even after
3278 * being swapped to the right or swapping is disabled, it will be positioned to
3279 * the viewport left boundary.
3280 *
3281 * @private
3282 */
3283 function createAnchoredLeft(config) {
3284 var vwMargin = config.vwMargin, screenRight = config.screenRight, elWidth = config.elWidth, disableSwapping = config.disableSwapping;
3285 var left = getLeftCoord(config);
3286 var actualX = "left";
3287 if (left >= vwMargin) {
3288 return { actualX: actualX, left: left };
3289 }
3290 var swappedLeft = getRightCoord(config);
3291 if (disableSwapping || swappedLeft + elWidth > screenRight) {
3292 left = vwMargin;
3293 }
3294 else {
3295 left = swappedLeft;
3296 actualX = "right";
3297 }
3298 return { actualX: actualX, left: left };
3299 }
3300 /**
3301 * Attempts to position the fixed element so that it will appear to the
3302 * inner-left of the container element but also within the viewport boundaries.
3303 * When swapping is enabled, it will attempt to swap to the right position if it
3304 * can't fit within the viewport to the left. If it can't fit in the viewport
3305 * even after being swapped to the right or swapping is disabled, it will be
3306 * positioned to the viewport left boundary.
3307 *
3308 * @private
3309 */
3310 function createAnchoredInnerLeft(config) {
3311 var vwMargin = config.vwMargin, screenRight = config.screenRight, elWidth = config.elWidth, disableSwapping = config.disableSwapping;
3312 var left = getInnerLeftCoord(config);
3313 var actualX = "inner-left";
3314 if (left + elWidth <= screenRight) {
3315 return { actualX: actualX, left: left };
3316 }
3317 var swappedLeft = getInnerRightCoord(config);
3318 if (disableSwapping || swappedLeft < vwMargin) {
3319 left = vwMargin;
3320 }
3321 else {
3322 left = swappedLeft;
3323 actualX = "inner-right";
3324 }
3325 return { actualX: actualX, left: left };
3326 }
3327 /**
3328 * Attempts to position the fixed element so that it will appear at the center
3329 * of the container element but also within the viewport boundaries. If the
3330 * centered element can't fit within the viewport, it will use the vwMargin
3331 * value if it overflowed to the left, it'll position to the screen right
3332 * boundary.
3333 *
3334 * @private
3335 */
3336 function createAnchoredCenter(config) {
3337 var vwMargin = config.vwMargin, screenRight = config.screenRight, elWidth = config.elWidth;
3338 var left = getCenterXCoord(config);
3339 if (left < vwMargin) {
3340 left = vwMargin;
3341 }
3342 else if (left + elWidth > screenRight || left < vwMargin) {
3343 left = screenRight - elWidth;
3344 }
3345 return { actualX: "center", left: left };
3346 }
3347 /**
3348 * Attempts to position the fixed element so that it will appear to the
3349 * inner-right of the container element but also within the viewport boundaries.
3350 * When swapping is enabled, it will attempt to swap to the inner-left position
3351 * if it can't fit within the viewport to the right. If it can't fit in the
3352 * viewport even after being swapped to the left or swapping is disabled, it
3353 * will be positioned to the viewport right boundary.
3354 *
3355 * @private
3356 */
3357 function createAnchoredInnerRight(config) {
3358 var screenRight = config.screenRight, vwMargin = config.vwMargin, elWidth = config.elWidth, disableSwapping = config.disableSwapping;
3359 var left = getInnerRightCoord(config);
3360 var actualX = "inner-right";
3361 if (left >= vwMargin) {
3362 return { actualX: actualX, left: left };
3363 }
3364 var swappedLeft = getInnerLeftCoord(config);
3365 if (disableSwapping || swappedLeft + elWidth > screenRight) {
3366 left = screenRight - elWidth;
3367 }
3368 else {
3369 left = swappedLeft;
3370 actualX = "inner-left";
3371 }
3372 return { actualX: actualX, left: left };
3373 }
3374 /**
3375 * Attempts to position the fixed element so that it will appear to the right of
3376 * the container element but also within the viewport boundaries. When swapping
3377 * is enabled, it will attempt to swap to the left position if it can't fit
3378 * within the viewport to the right. If it can't fit in the viewport even after
3379 * being swapped to the left or swapping is disabled, it will be positioned to
3380 * the viewport right boundary.
3381 *
3382 * @private
3383 */
3384 function createAnchoredRight(config) {
3385 var screenRight = config.screenRight, vwMargin = config.vwMargin, elWidth = config.elWidth, disableSwapping = config.disableSwapping;
3386 var left = getRightCoord(config);
3387 var actualX = "right";
3388 if (left + elWidth <= screenRight) {
3389 return { actualX: actualX, left: left };
3390 }
3391 var swappedLeft = getLeftCoord(config);
3392 if (disableSwapping || swappedLeft < vwMargin) {
3393 left = screenRight - elWidth;
3394 }
3395 else {
3396 left = swappedLeft;
3397 actualX = "left";
3398 }
3399 return { actualX: actualX, left: left };
3400 }
3401 /**
3402 * @private
3403 */
3404 function createEqualWidth(_a) {
3405 var x = _a.x, vw = _a.vw, elWidth = _a.elWidth, xMargin = _a.xMargin, vwMargin = _a.vwMargin, initialX = _a.initialX, containerRect = _a.containerRect, isMinWidth = _a.isMinWidth;
3406 var left = initialX !== null && initialX !== void 0 ? initialX : containerRect.left + xMargin;
3407 var width = containerRect.width - xMargin * 2;
3408 var minWidth;
3409 var right;
3410 if (isMinWidth) {
3411 minWidth = width;
3412 width = undefined;
3413 if (left + elWidth > vw - vwMargin) {
3414 right = vwMargin;
3415 }
3416 }
3417 // going to assume that the container element is visible in the DOM and just
3418 // make the fixed element have the same left and right corners
3419 return {
3420 left: left,
3421 right: right,
3422 width: width,
3423 minWidth: minWidth,
3424 actualX: x,
3425 };
3426 }
3427 /**
3428 * Creates the horizontal position for a fixed element with the provided
3429 * options.
3430 * @private
3431 */
3432 function createHorizontalPosition(_a) {
3433 var x = _a.x, vw = _a.vw, vwMargin = _a.vwMargin, xMargin = _a.xMargin, width = _a.width, elWidth = _a.elWidth, initialX = _a.initialX, containerRect = _a.containerRect, disableSwapping = _a.disableSwapping;
3434 if (width === "min" || width === "equal") {
3435 return createEqualWidth({
3436 x: x,
3437 vw: vw,
3438 vwMargin: vwMargin,
3439 xMargin: xMargin,
3440 elWidth: elWidth,
3441 initialX: initialX,
3442 containerRect: containerRect,
3443 isMinWidth: width === "min",
3444 });
3445 }
3446 if (elWidth > vw - vwMargin * 2) {
3447 // if the element's width is greater than the viewport's width minus the
3448 // margin on both sides, just make the element span the entire viewport with
3449 // the margin
3450 return {
3451 left: vwMargin,
3452 right: vwMargin,
3453 actualX: x,
3454 };
3455 }
3456 var config = {
3457 vwMargin: vwMargin,
3458 xMargin: xMargin,
3459 elWidth: elWidth,
3460 initialX: initialX,
3461 screenRight: vw - vwMargin,
3462 containerRect: containerRect,
3463 disableSwapping: disableSwapping,
3464 };
3465 switch (x) {
3466 case "left":
3467 return createAnchoredLeft(config);
3468 case "inner-left":
3469 return createAnchoredInnerLeft(config);
3470 case "center":
3471 return createAnchoredCenter(config);
3472 case "inner-right":
3473 return createAnchoredInnerRight(config);
3474 case "right":
3475 return createAnchoredRight(config);
3476 default:
3477 throw new Error("This should never happen");
3478 }
3479 }
3480
3481 /**
3482 * Attempts to position the fixed element so that it will appear completely
3483 * above the container element but also within the viewport boundaries. When
3484 * swapping is enabled, it will attempt to swap to the below position if it
3485 * can't fit within the viewport above the container element. If it can't fit in
3486 * the viewport even after being swapped below or swapping is disabled, it will
3487 * be positioned to the top viewport boundary.
3488 *
3489 * @private
3490 */
3491 function createAnchoredAbove(config) {
3492 var yMargin = config.yMargin, vhMargin = config.vhMargin, screenBottom = config.screenBottom, elHeight = config.elHeight, containerRect = config.containerRect, preventOverlap = config.preventOverlap, disableSwapping = config.disableSwapping, disableVHBounds = config.disableVHBounds;
3493 var top = getAboveCoord(config);
3494 var actualY = "above";
3495 if (disableVHBounds) {
3496 // can't actually allow a top value as a negative number since browsers
3497 // won't scroll upwards pas the normal page top
3498 return { actualY: actualY, top: Math.max(0, top) };
3499 }
3500 if (top > vhMargin) {
3501 // don't need to do anything else since the top is still in the viewport and
3502 // since it's positioned above, we already know it can't overlap the
3503 // container element
3504 return { actualY: actualY, top: top };
3505 }
3506 var swappedTop = getBelowCoord(config);
3507 if (disableSwapping || swappedTop + elHeight > screenBottom) {
3508 top = vhMargin;
3509 }
3510 else {
3511 actualY = "below";
3512 top = swappedTop;
3513 }
3514 var bottom;
3515 if (preventOverlap &&
3516 // can't overlap if it's positioned below
3517 actualY === "above" &&
3518 top + elHeight > containerRect.top) {
3519 bottom = window.innerHeight - containerRect.top + yMargin;
3520 }
3521 return { actualY: actualY, top: top, bottom: bottom };
3522 }
3523 /**
3524 * Attempts to position the fixed element so that it will appear fixed to the
3525 * top of the container element but also within the viewport boundaries. When
3526 * swapping is enabled, it will attempt to swap to the bottom position if it
3527 * can't fit within the viewport. If it can't fit in the viewport even after
3528 * being swapped to the bottom position or swapping is disabled, it will be
3529 * positioned to the top viewport boundary.
3530 *
3531 * @private
3532 */
3533 function createAnchoredTop(config) {
3534 var vhMargin = config.vhMargin, screenBottom = config.screenBottom, elHeight = config.elHeight, disableSwapping = config.disableSwapping, disableVHBounds = config.disableVHBounds;
3535 var top = getTopCoord(config);
3536 var actualY = "top";
3537 if (disableVHBounds || top + elHeight <= screenBottom) {
3538 return { actualY: actualY, top: top };
3539 }
3540 var swappedTop = getBottomCoord(config);
3541 if (disableSwapping || swappedTop < vhMargin) {
3542 top = vhMargin;
3543 }
3544 else {
3545 actualY = "bottom";
3546 top = swappedTop;
3547 }
3548 return { actualY: actualY, top: top };
3549 }
3550 /**
3551 * Attempts to position the fixed element so that it will appear at the center
3552 * of the container element but also within the viewport boundaries. If the
3553 * entered element can't fit within the viewport, it'll update the top value
3554 * to either be the vhMargin or position to the screen bottom boundary
3555 *
3556 * @private
3557 */
3558 function createAnchoredCenter$1(config) {
3559 var vhMargin = config.vhMargin, screenBottom = config.screenBottom, elHeight = config.elHeight, disableVHBounds = config.disableVHBounds;
3560 var top = getCenterYCoord(config);
3561 var actualY = "center";
3562 if (disableVHBounds) {
3563 return { actualY: actualY, top: Math.max(0, top) };
3564 }
3565 top = Math.max(vhMargin, top);
3566 if (top + elHeight > screenBottom) {
3567 top = screenBottom - elHeight;
3568 }
3569 return { actualY: actualY, top: top };
3570 }
3571 /**
3572 * Attempts to position the fixed element so that it will appear fixed to the
3573 * bottom of the container element but also within the viewport boundaries. When
3574 * swapping is enabled, it will attempt to swap to the top position if it can't
3575 * fit within the viewport. If it can't fit in the viewport even after being
3576 * swapped to the top position or swapping is disabled, it will be positioned to
3577 * the bottom viewport boundary.
3578 *
3579 * @private
3580 */
3581 function createAnchoredBottom(config) {
3582 var vhMargin = config.vhMargin, screenBottom = config.screenBottom, elHeight = config.elHeight, disableSwapping = config.disableSwapping, disableVHBounds = config.disableVHBounds;
3583 var top = getBottomCoord(config);
3584 var actualY = "bottom";
3585 if (disableVHBounds || top > vhMargin) {
3586 return { actualY: actualY, top: top };
3587 }
3588 var swappedTop = getTopCoord(config);
3589 if (disableSwapping || swappedTop + elHeight > screenBottom) {
3590 top = screenBottom - elHeight;
3591 }
3592 else {
3593 actualY = "top";
3594 top = swappedTop;
3595 }
3596 return { actualY: actualY, top: top };
3597 }
3598 /**
3599 * Attempts to position the fixed element so that it will appear completely
3600 * below the container element but also within the viewport boundaries. When
3601 * swapping is enabled, it will attempt to swap to the above position if it
3602 * can't fit within the viewport below the container element. If it can't fit in
3603 * the viewport even after being swapped above or swapping is disabled, it will
3604 * be positioned to the bottom viewport boundary.
3605 *
3606 * @private
3607 */
3608 function createAnchoredBelow(config) {
3609 var yMargin = config.yMargin, vhMargin = config.vhMargin, elHeight = config.elHeight, screenBottom = config.screenBottom, containerRect = config.containerRect, preventOverlap = config.preventOverlap, disableSwapping = config.disableSwapping, disableVHBounds = config.disableVHBounds;
3610 var top = getBelowCoord(config);
3611 var actualY = "below";
3612 if (disableVHBounds || top + elHeight <= screenBottom) {
3613 return { actualY: actualY, top: top };
3614 }
3615 if (preventOverlap) {
3616 var availableTop = containerRect.top - yMargin;
3617 if (disableSwapping || availableTop < screenBottom - top) {
3618 return {
3619 actualY: actualY,
3620 top: top,
3621 bottom: vhMargin,
3622 };
3623 }
3624 return {
3625 actualY: "above",
3626 top: Math.max(vhMargin, availableTop - elHeight),
3627 // this makes it so that the bottom of the fixed element is the top of the container
3628 // element. this ensures that it won't ever overlap the container element
3629 bottom: getViewportSize("height") - availableTop,
3630 };
3631 }
3632 var swappedTop = getAboveCoord(config);
3633 if (disableSwapping || swappedTop < vhMargin) {
3634 top = screenBottom - elHeight;
3635 }
3636 else {
3637 actualY = "above";
3638 top = swappedTop;
3639 }
3640 return { actualY: actualY, top: top };
3641 }
3642 /**
3643 * Creates the vertical position for a fixed element with the provided options.
3644 *
3645 * @private
3646 */
3647 function createVerticalPosition(_a) {
3648 var y = _a.y, vh = _a.vh, vhMargin = _a.vhMargin, yMargin = _a.yMargin, elHeight = _a.elHeight, initialY = _a.initialY, containerRect = _a.containerRect, disableSwapping = _a.disableSwapping, preventOverlap = _a.preventOverlap, disableVHBounds = _a.disableVHBounds;
3649 if (!disableVHBounds && !preventOverlap && elHeight > vh - vhMargin * 2) {
3650 // the element is too big to be displayed in the viewport, so just span the
3651 // full viewport excluding margins
3652 return {
3653 top: vhMargin,
3654 bottom: vhMargin,
3655 actualY: "center",
3656 };
3657 }
3658 var config = {
3659 vhMargin: vhMargin,
3660 yMargin: yMargin,
3661 elHeight: elHeight,
3662 initialY: initialY,
3663 containerRect: containerRect,
3664 screenBottom: vh - vhMargin,
3665 preventOverlap: preventOverlap,
3666 disableSwapping: disableSwapping,
3667 disableVHBounds: disableVHBounds,
3668 };
3669 switch (y) {
3670 case "above":
3671 return createAnchoredAbove(config);
3672 case "top":
3673 return createAnchoredTop(config);
3674 case "center":
3675 return createAnchoredCenter$1(config);
3676 case "bottom":
3677 return createAnchoredBottom(config);
3678 case "below":
3679 return createAnchoredBelow(config);
3680 default:
3681 throw new Error("This should never happen");
3682 }
3683 }
3684
3685 /**
3686 * This is a simple util that'll generate a css `transform-origin` string so
3687 * that the fixed element can animate from the correct point based on the
3688 * provided anchor.
3689 *
3690 * @param anchor The anchor that should be used to create the transform origin
3691 * for.
3692 * @return the transform origin string
3693 * @private
3694 */
3695 function getTransformOrigin(anchor) {
3696 var x = "0";
3697 switch (anchor.x) {
3698 case "right":
3699 case "inner-left":
3700 x = "0";
3701 break;
3702 case "center":
3703 x = "50%";
3704 break;
3705 case "left":
3706 case "inner-right":
3707 x = "100%";
3708 break;
3709 default:
3710 x = "0";
3711 }
3712 var y = "0";
3713 switch (anchor.y) {
3714 case "above":
3715 case "bottom":
3716 y = "100%";
3717 break;
3718 case "center":
3719 y = "50%";
3720 break;
3721 case "below":
3722 case "top":
3723 y = "0";
3724 break;
3725 default:
3726 y = "0";
3727 }
3728 return x + " " + y;
3729 }
3730
3731 /**
3732 * One of the most complicated functions in this project that will attempt to
3733 * position an element relative to another container element while still being
3734 * visible within the viewport. Below is the logical flow for attempting to fix
3735 * the element to the container:
3736 *
3737 * No Container: If there is no container element, return the provided x and y
3738 * positions and no styles since there's nothing we can use to calculate the
3739 * position.
3740 *
3741 * No Element: If the container was provided but the element to position does
3742 * not exist, return an style object containing the `left` and `top` values for
3743 * the container and apply as many of the positioning options as possible so
3744 * that the styles are "as close as possible" before the fixed element is added
3745 * to the DOM. This will also return the provided x and y positions since
3746 * nothing could be swapped around yet.
3747 *
3748 * Container and Element: If both the container and fixed element were provided,
3749 * apply all the positioning options to the `left` and `top` values of the
3750 * container based on the sizes of both elements.
3751 *
3752 * Now that the `left` and `top` values were applied, check to see if the
3753 * element is fully visible within the viewport with the provided positioning
3754 * options. If it is fully visible, do nothing else. If it isn't... follow the
3755 * next flow:
3756 *
3757 * First, check the horizontal sizes and make sure that the element is still
3758 * within the viewport with the provided viewwidth margin. If it isn't, first
3759 * try to swap only to a `right` style instead of left to see if that fixes it,
3760 * otherwise keep both the `left` and `right` styles.
3761 */
3762 function getFixedPosition(_a) {
3763 var container = _a.container, element = _a.element, _b = _a.anchor, propAnchor = _b === void 0 ? {} : _b, initialX = _a.initialX, initialY = _a.initialY, _c = _a.vwMargin, vwMargin = _c === void 0 ? 16 : _c, _d = _a.vhMargin, vhMargin = _d === void 0 ? 16 : _d, _e = _a.xMargin, xMargin = _e === void 0 ? 0 : _e, _f = _a.yMargin, yMargin = _f === void 0 ? 0 : _f, _g = _a.width, widthType = _g === void 0 ? "auto" : _g, _h = _a.preventOverlap, preventOverlap = _h === void 0 ? false : _h, _j = _a.transformOrigin, transformOrigin = _j === void 0 ? false : _j, _k = _a.disableSwapping, disableSwapping = _k === void 0 ? false : _k, _l = _a.disableVHBounds, disableVHBounds = _l === void 0 ? false : _l;
3764 container = findSizingContainer(container);
3765 var anchor = {
3766 x: propAnchor.x || "center",
3767 y: propAnchor.y || "below",
3768 };
3769 {
3770 if (widthType !== "auto" && anchor.x !== "center") {
3771 throw new Error('Unable to use a calculated width when the horizontal anchor is not `"center"`.');
3772 }
3773 if (preventOverlap && anchor.y !== "above" && anchor.y !== "below") {
3774 throw new Error('Unable to prevent overlap when the vertical anchor is not `"above"` or `"below"`');
3775 }
3776 }
3777 if (!container || !element) {
3778 return {
3779 actualX: anchor.x,
3780 actualY: anchor.y,
3781 };
3782 }
3783 var containerRect = container.getBoundingClientRect();
3784 var vh = getViewportSize("height");
3785 var vw = getViewportSize("width");
3786 var _m = getElementRect(element), height = _m.height, elWidth = _m.width;
3787 if (disableVHBounds) {
3788 var dialog = element.closest("[role='dialog']");
3789 if (!dialog) {
3790 initialY = (initialY !== null && initialY !== void 0 ? initialY : 0) + window.scrollY;
3791 }
3792 }
3793 var _o = createHorizontalPosition({
3794 x: anchor.x,
3795 vw: vw,
3796 vwMargin: vwMargin,
3797 xMargin: xMargin,
3798 width: widthType,
3799 elWidth: elWidth,
3800 initialX: initialX,
3801 containerRect: containerRect,
3802 disableSwapping: disableSwapping,
3803 }), left = _o.left, right = _o.right, width = _o.width, minWidth = _o.minWidth, actualX = _o.actualX;
3804 var _p = createVerticalPosition({
3805 y: anchor.y,
3806 vh: vh,
3807 vhMargin: vhMargin,
3808 yMargin: yMargin,
3809 initialY: initialY,
3810 elHeight: height,
3811 containerRect: containerRect,
3812 disableSwapping: disableSwapping,
3813 preventOverlap: preventOverlap,
3814 disableVHBounds: disableVHBounds,
3815 }), top = _p.top, bottom = _p.bottom, actualY = _p.actualY;
3816 return {
3817 actualX: actualX,
3818 actualY: actualY,
3819 style: {
3820 left: left,
3821 top: top,
3822 right: right,
3823 bottom: bottom,
3824 width: width,
3825 minWidth: minWidth,
3826 position: disableVHBounds ? "absolute" : "fixed",
3827 transformOrigin: transformOrigin
3828 ? getTransformOrigin({ x: actualX, y: actualY })
3829 : undefined,
3830 },
3831 };
3832 }
3833
3834 var ABOVE_LEFT_ANCHOR = {
3835 x: "left",
3836 y: "above",
3837 };
3838 var ABOVE_INNER_LEFT_ANCHOR = {
3839 x: "inner-left",
3840 y: "above",
3841 };
3842 var ABOVE_CENTER_ANCHOR = {
3843 x: "center",
3844 y: "above",
3845 };
3846 var ABOVE_INNER_RIGHT_ANCHOR = {
3847 x: "inner-right",
3848 y: "above",
3849 };
3850 var ABOVE_RIGHT_ANCHOR = {
3851 x: "right",
3852 y: "above",
3853 };
3854 var TOP_LEFT_ANCHOR = {
3855 x: "left",
3856 y: "top",
3857 };
3858 var TOP_INNER_LEFT_ANCHOR = {
3859 x: "inner-left",
3860 y: "top",
3861 };
3862 var TOP_CENTER_ANCHOR = {
3863 x: "center",
3864 y: "top",
3865 };
3866 var TOP_INNER_RIGHT_ANCHOR = {
3867 x: "inner-right",
3868 y: "top",
3869 };
3870 var TOP_RIGHT_ANCHOR = {
3871 x: "right",
3872 y: "top",
3873 };
3874 var CENTER_LEFT_ANCHOR = {
3875 x: "left",
3876 y: "center",
3877 };
3878 var CENTER_INNER_LEFT_ANCHOR = {
3879 x: "inner-left",
3880 y: "center",
3881 };
3882 var CENTER_CENTER_ANCHOR = {
3883 x: "center",
3884 y: "center",
3885 };
3886 var CENTER_INNER_RIGHT_ANCHOR = {
3887 x: "inner-right",
3888 y: "center",
3889 };
3890 var CENTER_RIGHT_ANCHOR = {
3891 x: "right",
3892 y: "center",
3893 };
3894 var BOTTOM_LEFT_ANCHOR = {
3895 x: "left",
3896 y: "bottom",
3897 };
3898 var BOTTOM_INNER_LEFT_ANCHOR = {
3899 x: "inner-left",
3900 y: "bottom",
3901 };
3902 var BOTTOM_CENTER_ANCHOR = {
3903 x: "center",
3904 y: "bottom",
3905 };
3906 var BOTTOM_INNER_RIGHT_ANCHOR = {
3907 x: "inner-right",
3908 y: "bottom",
3909 };
3910 var BOTTOM_RIGHT_ANCHOR = {
3911 x: "right",
3912 y: "bottom",
3913 };
3914 var BELOW_LEFT_ANCHOR = {
3915 x: "left",
3916 y: "below",
3917 };
3918 var BELOW_INNER_LEFT_ANCHOR = {
3919 x: "inner-left",
3920 y: "below",
3921 };
3922 var BELOW_CENTER_ANCHOR = {
3923 x: "center",
3924 y: "below",
3925 };
3926 var BELOW_INNER_RIGHT_ANCHOR = {
3927 x: "inner-right",
3928 y: "below",
3929 };
3930 var BELOW_RIGHT_ANCHOR = {
3931 x: "right",
3932 y: "below",
3933 };
3934
3935 var FOCUSABLE_ELEMENTS = ["BUTTON", "TEXTAREA", "SELECT"];
3936 var BASE_FOCUSABLE_ELEMENTS = 'a[href],area[href],input:not([disabled]):not([type="hidden"])';
3937 var BASE_FOCUSABLE_QUERY = FOCUSABLE_ELEMENTS.reduce(function (queryString, element) { return queryString + "," + element + ":not([disabled])"; }, BASE_FOCUSABLE_ELEMENTS);
3938 /**
3939 * A query selector to find elements that are programmatically focusable.
3940 *
3941 * Example:
3942 *
3943 * ```ts
3944 * const focusableElements = document.querySelectorAll(PROGRAMATICALLY_FOCUSABLE);
3945 * // do something with elements
3946 * ```
3947 */
3948 var PROGRAMATICALLY_FOCUSABLE = BASE_FOCUSABLE_QUERY + ",[tabindex]";
3949 /**
3950 * A query selector to find elements that are focusable only with tab and shift+tab.
3951 *
3952 * Example:
3953 *
3954 * ```ts
3955 * const focusableElements = document.querySelectorAll(TAB_FOCUSABLE);
3956 * // do something with elements
3957 * ```
3958 */
3959 var TAB_FOCUSABLE = PROGRAMATICALLY_FOCUSABLE + ":not([tabindex=\"-1\"])";
3960
3961 /**
3962 * A simple util that will find all the tab focusable elements within a
3963 * container element. The container should normally be a specific HTMLElement,
3964 * but it can also be the entire document if you want to find **all** focusable
3965 * elements within your page.
3966 *
3967 * @param container The container element/document to find focusable elements
3968 * within.
3969 * @param programatic Boolean if programatically focusable elements should be
3970 * included instead of only tab focusable.
3971 * @return A list of HTMLElements that are focusable within the container.
3972 */
3973 function getFocusableElements(container, programatic) {
3974 if (programatic === void 0) { programatic = false; }
3975 return Array.from(container.querySelectorAll(programatic ? PROGRAMATICALLY_FOCUSABLE : TAB_FOCUSABLE));
3976 }
3977
3978 /**
3979 * Attempts to scroll an element into view within another container element if
3980 * needed. If either the container or element are `null`, nothing will happen.
3981 *
3982 * @param container The container element that should be scrolled if the child
3983 * element is not within view.
3984 * @param element The element that should be visible within the container
3985 * element's scroll area.
3986 */
3987 function scrollIntoView(container, element) {
3988 element = findSizingContainer(element);
3989 if (!container || !element) {
3990 return;
3991 }
3992 var offsetTop = element.offsetTop;
3993 if (element.offsetParent !== container) {
3994 offsetTop -= container.offsetTop;
3995 }
3996 var elementBottom = offsetTop + element.offsetHeight;
3997 var containerBottom = container.offsetHeight + container.scrollTop;
3998 if (elementBottom > containerBottom) {
3999 container.scrollTop = elementBottom - container.offsetHeight;
4000 }
4001 else if (offsetTop < container.scrollTop) {
4002 container.scrollTop = offsetTop;
4003 }
4004 }
4005
4006 /**
4007 * A function that is used to focus an element within the provided node. This
4008 * can either focus the first, last, or a querySelector found element.
4009 *
4010 * @param container Either an HTMLElement or the document to focus an element
4011 * within.
4012 * @param focus Either the "first" or "last" string to focus the first or last
4013 * focusable element within the container or a query selector string to find a
4014 * focusable element within the container.
4015 * @param preventScroll Boolean if the focus event should not scroll the element
4016 * into view. This should normally remain `false`, but can be useful if the
4017 * element gets focused while offscreen during a transition.
4018 * @param progamatic Boolean if programatically focusable elements should be
4019 * included as well.
4020 */
4021 function focusElementWithin(container, focus, programatic, preventScroll, elements) {
4022 if (programatic === void 0) { programatic = false; }
4023 if (preventScroll === void 0) { preventScroll = false; }
4024 if (!elements || !elements.length) {
4025 elements = getFocusableElements(container, programatic);
4026 }
4027 var el;
4028 switch (focus) {
4029 case "first":
4030 el = elements[0];
4031 break;
4032 case "last":
4033 el = elements[elements.length - 1];
4034 break;
4035 default:
4036 el = container.querySelector(focus);
4037 }
4038 if (!el) {
4039 throw new Error("Unable to find a focusable element");
4040 }
4041 el.focus({ preventScroll: preventScroll });
4042 if (!preventScroll && container !== document) {
4043 scrollIntoView(container, el);
4044 }
4045 }
4046
4047 /**
4048 * Simple private util to get the DOM "instance" from either a ref object or an
4049 * HTMLElement.
4050 *
4051 * @param refOrInstance The ref or instance to get an HTMLElement from
4052 * @return The HTMLElement or null.
4053 * @internal
4054 */
4055 function getInstance(refOrInstance) {
4056 var instance = null;
4057 if (refOrInstance) {
4058 if (refOrInstance instanceof HTMLElement) {
4059 instance = refOrInstance;
4060 }
4061 else {
4062 instance = refOrInstance.current;
4063 }
4064 }
4065 return instance;
4066 }
4067
4068 /**
4069 * This hook is used to focus an element once a component has mounted. To help
4070 * with keyboard click events, it will actually wait for an animation frame
4071 * before attempting to focus as an enter key might click both elements at the
4072 * same time.
4073 *
4074 * This hook will first focus the HTMLElement (if it is focusable) and then
4075 * focus an element based on the defaultFocus prop.
4076 *
4077 * @param refOrInstance This is either a ref object containing the element to
4078 * focus or the element itself.
4079 * @param defaultFocus The element to focus within the containing element once
4080 * it has been mounted. This can either be "first" or "last" to focus the first
4081 * or last focusable elements or a query selector string to find an element to
4082 * focus.
4083 * @param preventScroll Boolean if the focus events should try to prevent the
4084 * default scroll-into-view behavior. This is generally recommended to be kept
4085 * as `false`, but can be useful to enable if the component mounts offscreen
4086 * during a transition.
4087 * @param programatic Boolean if programatically focusable elements should be
4088 * included instead of only tab focusable.
4089 * @param disabled Boolean if the focus behavior should be disabled.
4090 */
4091 function useFocusOnMount(refOrInstance, defaultFocus, preventScroll, programatic, disabled) {
4092 if (preventScroll === void 0) { preventScroll = false; }
4093 if (programatic === void 0) { programatic = false; }
4094 if (disabled === void 0) { disabled = false; }
4095 React.useEffect(function () {
4096 if (disabled) {
4097 return;
4098 }
4099 var frame = window.requestAnimationFrame(function () {
4100 var instance = getInstance(refOrInstance);
4101 if (!instance) {
4102 return;
4103 }
4104 instance.focus({ preventScroll: preventScroll });
4105 focusElementWithin(instance, defaultFocus, programatic, preventScroll);
4106 });
4107 return function () {
4108 window.cancelAnimationFrame(frame);
4109 };
4110 }, [defaultFocus, disabled, refOrInstance, programatic, preventScroll]);
4111 }
4112
4113 /**
4114 * This hook is used to focus the previous element when a component unmounts.
4115 * The default behavior is to store the current activeElement within the
4116 * document when the component mounts and then try to focus it again when the
4117 * component unmounts. You can also provide your own HTMLElement to focus when
4118 * unmounting.
4119 *
4120 * During the unmount phase, it will wait for an animation frame before checking
4121 * if the fallback element still exists within the page. If it doesn't, it will
4122 * use the fallback query/element/function to attempt to find another element to
4123 * focus. If the element exists within the page, it will then finally be
4124 * focused.
4125 *
4126 * The animation frame is unfortunately required for keyboard users as pressing
4127 * enter key will click the previous element immediately on focus as well.
4128 *
4129 * @param disabled Boolean if the focus behavior should be disabled.
4130 * @param fallback The fallback query, element, or function to use if the
4131 * previous element no longer exists in the DOM.
4132 * @param previousElement An optional previous element to focus. If this is
4133 * omitted, the `document.activeElement` will be used instead.
4134 */
4135 function usePreviousFocus(disabled, fallback, previousElement) {
4136 if (fallback === void 0) { fallback = undefined; }
4137 if (previousElement === void 0) { previousElement = null; }
4138 var options = React.useRef({
4139 disabled: disabled,
4140 fallback: fallback,
4141 });
4142 React.useEffect(function () {
4143 options.current = {
4144 disabled: disabled,
4145 fallback: fallback,
4146 };
4147 });
4148 React.useEffect(function () {
4149 if (disabled) {
4150 return;
4151 }
4152 var element = previousElement || document.activeElement;
4153 // i'll need to think of a better way to handle this flow. There's just a
4154 // weird one where if going from a menu to a dialog, we get lost without
4155 // specifying a fallback. So if we are in a menu, try to find the
4156 // corresponding menu button for this flow to fallback to.
4157 var menu = element.closest('[role="menu"]');
4158 var menuButton = null;
4159 if (menu) {
4160 // first try to get the button by using the menu's id minus the trailing
4161 // -menu since that's the normal pattern within react-md.
4162 menuButton = document.getElementById(menu.id.replace(/-menu$/, ""));
4163 if (!menuButton) {
4164 // if no menu button, try to see if the `aria-labelledby` points to the
4165 // button... but since the `aria-labelledby` is a space-deliminated
4166 // string of ids, have to check each one
4167 var labelledBy = menu.getAttribute("aria-labelledby") || "";
4168 var query = labelledBy
4169 .split(" ")
4170 .map(function (id) { return "#" + id + "[tabindex]"; })
4171 .join(",");
4172 menuButton = query ? document.querySelector(query) : null;
4173 }
4174 }
4175 return function () {
4176 var _a = options.current, fallback = _a.fallback, disabled = _a.disabled;
4177 if (disabled) {
4178 // this has been added just for support for scrolling menus out of view.
4179 // It is not ideal since keyboard focus is lost at this point, but
4180 // _technically_ shouldn't be able to reach this flow with keyboard
4181 // movement
4182 return;
4183 }
4184 if (menu &&
4185 menuButton &&
4186 !previousElement &&
4187 !fallback &&
4188 !document.contains(element) &&
4189 document.contains(menuButton)) {
4190 menuButton.focus();
4191 return;
4192 }
4193 var el = element;
4194 if (!document.contains(el)) {
4195 el =
4196 previousElement && document.contains(previousElement)
4197 ? previousElement
4198 : null;
4199 }
4200 if (!el && fallback) {
4201 switch (typeof fallback) {
4202 case "string":
4203 el = document.querySelector(fallback);
4204 break;
4205 case "function":
4206 el = fallback();
4207 break;
4208 default:
4209 el = fallback;
4210 }
4211 }
4212 if (el && !document.contains(el)) {
4213 el = null;
4214 }
4215 if (el) {
4216 el.focus();
4217 }
4218 };
4219 // disabled since useRefCache and don't wnt to update on disabled change
4220 // eslint-disable-next-line react-hooks/exhaustive-deps
4221 }, []);
4222 }
4223
4224 /**
4225 * Creates an `onKeyDown` event handler to trap keyboard focus within a
4226 * container element.
4227 *
4228 * @typeparam E The HTMLElement type that has the keydown event listener
4229 * attached.
4230 * @param options All the options for handling tab focus wrapping.
4231 * @return The kedown event handler to enforce focus wrapping or the onKeyDown
4232 * prop if this functionality is disabled.
4233 */
4234 function useTabFocusWrap(_a) {
4235 var _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.disableFocusCache, disableFocusCache = _c === void 0 ? false : _c, onKeyDown = _a.onKeyDown;
4236 var focusables = React.useRef([]);
4237 var handleKeyDown = React.useCallback(function (event) {
4238 if (onKeyDown) {
4239 onKeyDown(event);
4240 }
4241 if (event.key !== "Tab") {
4242 return;
4243 }
4244 if (disableFocusCache || !focusables.current.length) {
4245 focusables.current = getFocusableElements(event.currentTarget);
4246 }
4247 var elements = focusables.current;
4248 var l = elements.length;
4249 if (l === 0) {
4250 return;
4251 }
4252 if (l === 1) {
4253 event.preventDefault();
4254 }
4255 else if (elements[0] === event.target && event.shiftKey) {
4256 event.preventDefault();
4257 elements[l - 1].focus();
4258 }
4259 else if (elements[l - 1] === event.target && !event.shiftKey) {
4260 event.preventDefault();
4261 elements[0].focus();
4262 }
4263 }, [onKeyDown, disableFocusCache]);
4264 return disabled ? onKeyDown : handleKeyDown;
4265 }
4266
4267 var __assign$9 = (undefined && undefined.__assign) || function () {
4268 __assign$9 = Object.assign || function(t) {
4269 for (var s, i = 1, n = arguments.length; i < n; i++) {
4270 s = arguments[i];
4271 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
4272 t[p] = s[p];
4273 }
4274 return t;
4275 };
4276 return __assign$9.apply(this, arguments);
4277 };
4278 var __rest$5 = (undefined && undefined.__rest) || function (s, e) {
4279 var t = {};
4280 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4281 t[p] = s[p];
4282 if (s != null && typeof Object.getOwnPropertySymbols === "function")
4283 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
4284 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
4285 t[p[i]] = s[p[i]];
4286 }
4287 return t;
4288 };
4289 /**
4290 * The `FocusContainer` is a wrapper for a few of the accessibility hooks to
4291 * maintain focus within an element.
4292 */
4293 var FocusContainer = React.forwardRef(function FocusContainer(_a, forwardedRef) {
4294 var children = _a.children, onKeyDown = _a.onKeyDown, _b = _a.component, Component = _b === void 0 ? "div" : _b, _c = _a.defaultFocus, defaultFocus = _c === void 0 ? "first" : _c, _d = _a.disableFocusCache, disableFocusCache = _d === void 0 ? false : _d, _e = _a.disableFocusOnMount, disableFocusOnMount = _e === void 0 ? false : _e, _f = _a.disableFocusOnMountScroll, disableFocusOnMountScroll = _f === void 0 ? false : _f, _g = _a.disableFocusOnUnmount, disableFocusOnUnmount = _g === void 0 ? false : _g, _h = _a.disableTabFocusWrap, disableTabFocusWrap = _h === void 0 ? false : _h, _j = _a.unmountFocusFallback, unmountFocusFallback = _j === void 0 ? "" : _j, props = __rest$5(_a, ["children", "onKeyDown", "component", "defaultFocus", "disableFocusCache", "disableFocusOnMount", "disableFocusOnMountScroll", "disableFocusOnUnmount", "disableTabFocusWrap", "unmountFocusFallback"]);
4295 var ref = React.useRef(null);
4296 var refHandler = React.useCallback(function (instance) {
4297 applyRef(instance, forwardedRef);
4298 ref.current = instance;
4299 }, [forwardedRef]);
4300 usePreviousFocus(disableFocusOnUnmount, unmountFocusFallback);
4301 useFocusOnMount(ref, defaultFocus, disableFocusOnMountScroll, false, disableFocusOnMount);
4302 var handleKeyDown = useTabFocusWrap({
4303 disabled: disableTabFocusWrap,
4304 disableFocusCache: disableFocusCache,
4305 onKeyDown: onKeyDown,
4306 });
4307 return (React__default.createElement(Component, __assign$9({}, props, { onKeyDown: handleKeyDown, ref: refHandler }), children));
4308 });
4309 {
4310 try {
4311 var PropTypes$a = require("prop-types");
4312 FocusContainer.propTypes = {
4313 disableFocusCache: PropTypes$a.bool,
4314 disableFocusOnMount: PropTypes$a.bool,
4315 disableFocusOnUnmount: PropTypes$a.bool,
4316 disableTabFocusWrap: PropTypes$a.bool,
4317 defaultFocus: PropTypes$a.oneOfType([
4318 PropTypes$a.oneOf(["first", "last"]),
4319 PropTypes$a.string,
4320 ]),
4321 component: PropTypes$a.oneOfType([
4322 PropTypes$a.string,
4323 PropTypes$a.func,
4324 PropTypes$a.object,
4325 ]),
4326 unmountFocusFallback: PropTypes$a.oneOfType([
4327 PropTypes$a.string,
4328 PropTypes$a.func,
4329 PropTypes$a.object,
4330 ]),
4331 children: PropTypes$a.node,
4332 onKeyDown: PropTypes$a.func,
4333 disableFocusOnMountScroll: PropTypes$a.bool,
4334 };
4335 }
4336 catch (e) { }
4337 }
4338
4339 /**
4340 * The currently supported keyboard movement key combinations that increment or
4341 * decrement within a list. This was extracted from the w3.org website about
4342 * wia-aria best practices.
4343 *
4344 * @see https://www.w3.org/TR/wai-aria-practices/
4345 */
4346 (function (IncrementMovementKey) {
4347 IncrementMovementKey["ArrowUp"] = "ArrowUp";
4348 IncrementMovementKey["ArrowDown"] = "ArrowDown";
4349 IncrementMovementKey["ArrowLeft"] = "ArrowLeft";
4350 IncrementMovementKey["ArrowRight"] = "ArrowRight";
4351 IncrementMovementKey["PageDown"] = "PageDown";
4352 IncrementMovementKey["PageUp"] = "PageUp";
4353 IncrementMovementKey["ShiftArrowUp"] = "Shift+ArrowUp";
4354 IncrementMovementKey["ShiftArrowDown"] = "Shift+ArrowDown";
4355 IncrementMovementKey["ShiftArrowLeft"] = "Shift+ArrowLeft";
4356 IncrementMovementKey["ShiftArrowRight"] = "Shift+ArrowRight";
4357 IncrementMovementKey["AltArrowDown"] = "Alt+ArrowDown";
4358 IncrementMovementKey["AltArrowUp"] = "Alt+ArrowUp";
4359 IncrementMovementKey["AltArrowLeft"] = "Alt+ArrowLeft";
4360 IncrementMovementKey["AltArrowRight"] = "Alt+ArrowRight";
4361 IncrementMovementKey["AltPageDown"] = "Alt+PageDown";
4362 IncrementMovementKey["AltPageUp"] = "Alt+PageUp";
4363 IncrementMovementKey["ControlArrowDown"] = "Control+ArrowDown";
4364 IncrementMovementKey["ControlArrowUp"] = "Control+ArrowUp";
4365 })(exports.IncrementMovementKey || (exports.IncrementMovementKey = {}));
4366 (function (JumpMovementKey) {
4367 JumpMovementKey["Home"] = "Home";
4368 JumpMovementKey["End"] = "End";
4369 JumpMovementKey["AltHome"] = "Alt+Home";
4370 JumpMovementKey["AltEnd"] = "Alt+End";
4371 JumpMovementKey["ControlHome"] = "Control+Home";
4372 JumpMovementKey["ControlEnd"] = "Control+End";
4373 JumpMovementKey["ControlShiftHome"] = "Control+Shift+Home";
4374 JumpMovementKey["ControlShiftEnd"] = "Control+Shift+End";
4375 })(exports.JumpMovementKey || (exports.JumpMovementKey = {}));
4376
4377 var __assign$a = (undefined && undefined.__assign) || function () {
4378 __assign$a = Object.assign || function(t) {
4379 for (var s, i = 1, n = arguments.length; i < n; i++) {
4380 s = arguments[i];
4381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
4382 t[p] = s[p];
4383 }
4384 return t;
4385 };
4386 return __assign$a.apply(this, arguments);
4387 };
4388 /**
4389 * A keyboard movement configuration preset for handling vertical menu
4390 * movements.
4391 */
4392 var VERTICAL_MENU = {
4393 loopable: true,
4394 searchable: true,
4395 incrementKeys: [exports.IncrementMovementKey.ArrowDown],
4396 decrementKeys: [exports.IncrementMovementKey.ArrowUp],
4397 jumpToFirstKeys: [exports.JumpMovementKey.Home],
4398 jumpToLastKeys: [exports.JumpMovementKey.End],
4399 };
4400 /**
4401 * A keyboard movement configuration preset for handling horizontal menu
4402 * movements.
4403 */
4404 var HORIZONTAL_MENU = __assign$a(__assign$a({}, VERTICAL_MENU), { incrementKeys: [exports.IncrementMovementKey.ArrowRight], decrementKeys: [exports.IncrementMovementKey.ArrowLeft] });
4405 /**
4406 * A keyboard movement configuration preset for handling vertical listbox
4407 * movements.
4408 */
4409 var VERTICAL_LISTBOX = __assign$a(__assign$a({}, VERTICAL_MENU), { loopable: false });
4410 /**
4411 * A keyboard movement configuration preset for handling horizontal listbox
4412 * movements.
4413 */
4414 var HORIZONTAL_LISTBOX = __assign$a(__assign$a({}, HORIZONTAL_MENU), { loopable: false });
4415 /**
4416 * A keyboard movement configuration preset for handling vertical combobox
4417 * movements.
4418 */
4419 var VERTICAL_COMBOBOX = {
4420 incrementKeys: [exports.IncrementMovementKey.ArrowDown],
4421 decrementKeys: [exports.IncrementMovementKey.ArrowUp],
4422 // don't want to be able to jump since home and end should do default behavior
4423 // in text field
4424 jumpToFirstKeys: [],
4425 jumpToLastKeys: [],
4426 searchable: false,
4427 };
4428 /**
4429 * A keyboard movement configuration preset for handling horizontal combobox
4430 * movements.
4431 */
4432 var HORIZONTAL_COMBOBOX = {
4433 incrementKeys: [exports.IncrementMovementKey.ArrowRight],
4434 decrementKeys: [exports.IncrementMovementKey.ArrowLeft],
4435 // don't want to be able to jump since home and end should do default behavior
4436 // in text field
4437 jumpToFirstKeys: [],
4438 jumpToLastKeys: [],
4439 searchable: false,
4440 };
4441 var VERTICAL_TREE = {
4442 incrementKeys: [exports.IncrementMovementKey.ArrowDown],
4443 decrementKeys: [exports.IncrementMovementKey.ArrowUp],
4444 jumpToFirstKeys: [exports.JumpMovementKey.Home, exports.JumpMovementKey.ControlShiftHome],
4445 jumpToLastKeys: [exports.JumpMovementKey.End, exports.JumpMovementKey.ControlShiftEnd],
4446 loopable: true,
4447 searchable: true,
4448 };
4449 var HORIZONTAL_TREE = {
4450 incrementKeys: [exports.IncrementMovementKey.ArrowRight],
4451 decrementKeys: [exports.IncrementMovementKey.ArrowLeft],
4452 jumpToFirstKeys: [exports.JumpMovementKey.Home, exports.JumpMovementKey.ControlShiftHome],
4453 jumpToLastKeys: [exports.JumpMovementKey.End, exports.JumpMovementKey.ControlShiftEnd],
4454 loopable: true,
4455 searchable: true,
4456 };
4457 var HORIZONTAL_TABS = {
4458 incrementKeys: [exports.IncrementMovementKey.ArrowRight],
4459 decrementKeys: [exports.IncrementMovementKey.ArrowLeft],
4460 jumpToFirstKeys: [exports.JumpMovementKey.Home],
4461 jumpToLastKeys: [exports.JumpMovementKey.End],
4462 loopable: true,
4463 searchable: false,
4464 };
4465 var VERTICAL_TABS = {
4466 incrementKeys: [exports.IncrementMovementKey.ArrowDown],
4467 decrementKeys: [exports.IncrementMovementKey.ArrowUp],
4468 jumpToFirstKeys: [exports.JumpMovementKey.Home],
4469 jumpToLastKeys: [exports.JumpMovementKey.End],
4470 loopable: true,
4471 searchable: false,
4472 };
4473
4474 var presets = /*#__PURE__*/Object.freeze({
4475 __proto__: null,
4476 VERTICAL_MENU: VERTICAL_MENU,
4477 HORIZONTAL_MENU: HORIZONTAL_MENU,
4478 VERTICAL_LISTBOX: VERTICAL_LISTBOX,
4479 HORIZONTAL_LISTBOX: HORIZONTAL_LISTBOX,
4480 VERTICAL_COMBOBOX: VERTICAL_COMBOBOX,
4481 HORIZONTAL_COMBOBOX: HORIZONTAL_COMBOBOX,
4482 VERTICAL_TREE: VERTICAL_TREE,
4483 HORIZONTAL_TREE: HORIZONTAL_TREE,
4484 HORIZONTAL_TABS: HORIZONTAL_TABS,
4485 VERTICAL_TABS: VERTICAL_TABS
4486 });
4487
4488 /**
4489 * A small util that is used to increment or decrement a number until it reaches
4490 * the max value or -1. When that happens, it will loop around to 0 or the max
4491 * value respectively. This does not work for different increment numbers or any
4492 * values below 0 for now.
4493 *
4494 * @internal
4495 * @param x The number to increment or decrement
4496 * @param max The max number that can be set
4497 * @param increment Boolean if it should be incremented or decremented
4498 * @param minmax Boolean if the loop functionality should be replaced with
4499 * min-max behavior instead of allowing looping
4500 */
4501 function loop(x, max, increment, minmax) {
4502 if (minmax === void 0) { minmax = false; }
4503 var next = x + (increment ? 1 : -1);
4504 if (minmax) {
4505 next = Math.min(max, Math.max(0, next));
4506 }
4507 else if (next > max) {
4508 next = 0;
4509 }
4510 else if (next < 0) {
4511 next = max;
4512 }
4513 return next;
4514 }
4515
4516 /**
4517 * An extremely simple function that is used to generate an id for an item
4518 * within a list of other items. This is generally used with list of items that
4519 * should have custom focus with the `aria-activedescendant` flow instead of
4520 * native focus.
4521 *
4522 * @param id The base id for the container element of all the items.
4523 * @param i The index of the item within the list. This number will be
4524 * incremented by 1 as an id to start from 1 instead of 0.
4525 */
4526 function getItemId(id, i) {
4527 if (!id) {
4528 throw new Error("The id must be a string with a length greater than 0");
4529 }
4530 if (i < 0) {
4531 throw new RangeError("The provided index must be greater than 0");
4532 }
4533 return id + "-item-" + (i + 1);
4534 }
4535 /**
4536 * A small util function to transform a list of key codes into a list of
4537 * `KeyConfig` objects. This is useful for how I determine what behavior to
4538 * implement after a keydown event.
4539 *
4540 * @param keys A list of key mappings to convert to a key object. These should
4541 * be things like: "Tab", "Alt+Home", "A", "Shift+Alt+ArrowUp"
4542 * @param type The keyboard focus type this key should be mapped to
4543 * @private
4544 */
4545 function transformKeys(keys, type) {
4546 return keys.map(function (key) { return ({
4547 shiftKey: key.includes("Shift+"),
4548 metaKey: key.includes("Meta+"),
4549 ctrlKey: key.includes("Control+"),
4550 altKey: key.includes("Alt+"),
4551 key: key.replace(/(Shift|Meta|Alt|Control)\+/g, ""),
4552 type: type,
4553 }); });
4554 }
4555 /**
4556 * A small util get the `KeyConfig` based on the provided keys and keyboard
4557 * event. This ensures that the key, altKey, metaKey, and shiftKey values all
4558 * match.
4559 *
4560 * If a key is not found, `null` will be returned instead.
4561 *
4562 * @param event The event to get a key mapping type for
4563 * @param keys A list of key mappings to attempt to find a valid key event type
4564 * from.
4565 * @private
4566 */
4567 function getKeyboardConfig(event, keys) {
4568 var key = event.key, altKey = event.altKey, ctrlKey = event.ctrlKey, metaKey = event.metaKey, shiftKey = event.shiftKey;
4569 return (keys.find(function (k) {
4570 return k.key === key &&
4571 k.altKey === altKey &&
4572 k.ctrlKey === ctrlKey &&
4573 k.metaKey === metaKey &&
4574 k.shiftKey === shiftKey;
4575 }) || null);
4576 }
4577 /**
4578 * Creates a stringified representation of the configuration so that the config
4579 * can be checked in the `onChange` callback for keyboard movement. This is used
4580 * as the `query` attribute on the change data.
4581 *
4582 * @param config The key config to stringify
4583 * @private
4584 */
4585 function getStringifiedKeyConfig(config) {
4586 var key = config.key, altKey = config.altKey, ctrlKey = config.ctrlKey, metaKey = config.metaKey, shiftKey = config.shiftKey, type = config.type;
4587 var suffix = [
4588 metaKey && "Meta",
4589 ctrlKey && "Control",
4590 shiftKey && "Shift",
4591 altKey && "Alt",
4592 key,
4593 ]
4594 .filter(Boolean)
4595 .join("+");
4596 return type + "-" + suffix;
4597 }
4598
4599 var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
4600 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4601 for (var r = Array(s), k = 0, i = 0; i < il; i++)
4602 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
4603 r[k] = a[j];
4604 return r;
4605 };
4606 /**
4607 * This is a low-level hook for providing custom keyboard movement based on key
4608 * configurations. This normally shouldn't really be used externally since
4609 * you'll most likely want to use the "presets" of `useFocusMovement` and
4610 * `useActiveDescendantMovement` that implement the main movement types already
4611 * for you.
4612 *
4613 * The way this works is that it will general a list of mutable item refs that
4614 * should be applied to each DOM node for the corresponding `item` within the
4615 * `items` list. This list will change and regenerate itself each time the
4616 * `items` array changes so it'll always be in-sync with the DOM nodes. This
4617 * means that if you have some items that **should not be rendered**, they
4618 * should not be included within the items list. The main reason these item refs
4619 * are required is so that the `aria-acativedescendant` movement can scroll the
4620 * new "focused" element into view if needed while the "true" focus movement can
4621 * trigger a `ref.current.focus()` on the new item as needed.
4622 *
4623 * Finally, this will create a keydown event handler that will merge in the
4624 * optionally provided `onKeyDown` prop and check if the pressed key should
4625 * trigger a custom keyboard movement event. If it does, an `onChange` event
4626 * will be fired with the matching data and allows for custom movement with
4627 * `target.focus()` or updating the `aria-activedescendant` attribute as needed.
4628 *
4629 * @typeparam D The type of each data item within the items list.
4630 * @typeparam CE The HTMLElement type of the container element that handles the
4631 * custom keyboard movement.
4632 * @typeparam IE The HTMLElement type of each item within the container element
4633 * that can be focusable.
4634 */
4635 function useKeyboardMovement(_a) {
4636 var onKeyDown = _a.onKeyDown, incrementKeys = _a.incrementKeys, decrementKeys = _a.decrementKeys, jumpToFirstKeys = _a.jumpToFirstKeys, jumpToLastKeys = _a.jumpToLastKeys, _b = _a.stopPropagation, stopPropagation = _b === void 0 ? true : _b, onChange = _a.onChange, items = _a.items, resetTime = _a.resetTime, findMatchIndex = _a.findMatchIndex, focusedIndex = _a.focusedIndex, _c = _a.loopable, loopable = _c === void 0 ? true : _c, _d = _a.searchable, searchable = _d === void 0 ? true : _d, _e = _a.valueKey, valueKey = _e === void 0 ? DEFAULT_VALUE_KEY : _e, _f = _a.getItemValue, getItemValue = _f === void 0 ? DEFAULT_GET_ITEM_VALUE : _f;
4637 var keys = React.useMemo(function () { return __spreadArrays(transformKeys(incrementKeys, "increment"), transformKeys(decrementKeys, "decrement"), transformKeys(jumpToFirstKeys, "first"), transformKeys(jumpToLastKeys, "last")); }, [incrementKeys, decrementKeys, jumpToFirstKeys, jumpToLastKeys]);
4638 var itemRefs = React.useMemo(function () { return Array.from(items, function () { return ({ current: null }); }); }, [items]);
4639 var handleSearch = useKeyboardSearch({
4640 items: items,
4641 valueKey: valueKey,
4642 getItemValue: getItemValue,
4643 onChange: function (data) {
4644 onChange(data, itemRefs);
4645 },
4646 searchIndex: focusedIndex,
4647 resetTime: resetTime,
4648 findMatchIndex: findMatchIndex,
4649 });
4650 var handleKeyDown = React.useCallback(function (event) {
4651 if (searchable) {
4652 handleSearch(event);
4653 }
4654 if (onKeyDown) {
4655 onKeyDown(event);
4656 }
4657 var target = event.target;
4658 var keyConfig = getKeyboardConfig(event, keys);
4659 if (!keyConfig || !target) {
4660 return;
4661 }
4662 // implementing custom behavior, so prevent default of scrolling or other
4663 // things
4664 event.preventDefault();
4665 if (stopPropagation) {
4666 event.stopPropagation();
4667 }
4668 var type = keyConfig.type;
4669 var lastIndex = items.length - 1;
4670 var index;
4671 switch (type) {
4672 case "first":
4673 index = 0;
4674 break;
4675 case "last":
4676 index = lastIndex;
4677 break;
4678 default:
4679 index = loop(focusedIndex, lastIndex, type === "increment", !loopable);
4680 }
4681 if (index === focusedIndex) {
4682 return;
4683 }
4684 var data = {
4685 index: index,
4686 item: items[index],
4687 items: items,
4688 query: getStringifiedKeyConfig(keyConfig),
4689 target: event.currentTarget,
4690 };
4691 onChange(data, itemRefs);
4692 }, [
4693 onKeyDown,
4694 stopPropagation,
4695 focusedIndex,
4696 keys,
4697 items,
4698 handleSearch,
4699 loopable,
4700 searchable,
4701 onChange,
4702 itemRefs,
4703 ]);
4704 return [itemRefs, handleKeyDown];
4705 }
4706
4707 var __assign$b = (undefined && undefined.__assign) || function () {
4708 __assign$b = Object.assign || function(t) {
4709 for (var s, i = 1, n = arguments.length; i < n; i++) {
4710 s = arguments[i];
4711 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
4712 t[p] = s[p];
4713 }
4714 return t;
4715 };
4716 return __assign$b.apply(this, arguments);
4717 };
4718 var __rest$6 = (undefined && undefined.__rest) || function (s, e) {
4719 var t = {};
4720 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4721 t[p] = s[p];
4722 if (s != null && typeof Object.getOwnPropertySymbols === "function")
4723 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
4724 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
4725 t[p[i]] = s[p[i]];
4726 }
4727 return t;
4728 };
4729 /**
4730 * This hook allows for custom keyboard "focus" movement using the
4731 * `aria-activedescendant` movement pattern. This is generally used when the DOM
4732 * focus shouldn't actually change from the container element (like listboxes)
4733 * but you still need to indicate that another element is "focused" due to a key
4734 * press.
4735 *
4736 * To use this hook, you'll want to update the container element of all the
4737 * items to have an `aria-activedescendant={activeId}` attribute and
4738 * `onKeyDown={onKeyDown}` that are provided by this hook. The
4739 * `aria-activedescendant` will help screen readers known what element is
4740 * "focused" since the container element should never really lose focus during
4741 * these keyboard movement events. Finally, you'll want to update each item
4742 * have an id that is the result of `getItem(baseId, index)` so that it matches
4743 * the `aria-activedescendant` value and then apply `ref={itemRefs[i]}`.
4744 * Unfortunately, this means that all the child items **must** either be an
4745 * HTMLElement or the ref is forwarded down to the HTMLElement.
4746 *
4747 * The `itemRefs` **must** be applied so that a new "focused" item can be
4748 * scrolled into view as needed.
4749 *
4750 * @typeparam D The type of each data item within the items list.
4751 * @typeparam CE The HTMLElement type of the container element that handles the
4752 * custom keyboard movement.
4753 * @typeparam IE The HTMLElement type of each item within the container element
4754 * that can be focusable.
4755 */
4756 function useActiveDescendantMovement(_a) {
4757 var baseId = _a.baseId, _b = _a.getId, getId = _b === void 0 ? getItemId : _b, _c = _a.defaultFocusedIndex, defaultFocusedIndex = _c === void 0 ? -1 : _c, items = _a.items, onChange = _a.onChange, _d = _a.getItemValue, getItemValue = _d === void 0 ? DEFAULT_GET_ITEM_VALUE : _d, _e = _a.valueKey, valueKey = _e === void 0 ? DEFAULT_VALUE_KEY : _e, onKeyDown = _a.onKeyDown, onEnter = _a.onEnter, onSpace = _a.onSpace, options = __rest$6(_a, ["baseId", "getId", "defaultFocusedIndex", "items", "onChange", "getItemValue", "valueKey", "onKeyDown", "onEnter", "onSpace"]);
4758 var _f = React.useState(defaultFocusedIndex), focusedIndex = _f[0], setFocusedIndex = _f[1];
4759 var activeId = focusedIndex !== -1 ? getId(baseId, focusedIndex) : "";
4760 var _g = useKeyboardMovement(__assign$b(__assign$b({}, options), { valueKey: valueKey,
4761 getItemValue: getItemValue,
4762 focusedIndex: focusedIndex,
4763 items: items,
4764 onChange: function (data, itemRefs) {
4765 if (onChange) {
4766 onChange(data, itemRefs);
4767 }
4768 var index = data.index, target = data.target;
4769 var item = itemRefs[index] && itemRefs[index].current;
4770 if (item && target && target.scrollHeight > target.offsetHeight) {
4771 scrollIntoView(target, item);
4772 }
4773 setFocusedIndex(index);
4774 },
4775 onKeyDown: function (event) {
4776 if (onKeyDown) {
4777 onKeyDown(event);
4778 }
4779 var ref = (itemRefs[focusedIndex] && itemRefs[focusedIndex].current) || null;
4780 if (onEnter && event.key === "Enter") {
4781 onEnter(focusedIndex, ref);
4782 }
4783 else if (onSpace && event.key === " ") {
4784 event.preventDefault();
4785 onSpace(focusedIndex, ref);
4786 }
4787 } })), itemRefs = _g[0], handleKeyDown = _g[1];
4788 return {
4789 activeId: activeId,
4790 itemRefs: itemRefs,
4791 onKeyDown: handleKeyDown,
4792 focusedIndex: focusedIndex,
4793 setFocusedIndex: setFocusedIndex,
4794 };
4795 }
4796
4797 var __assign$c = (undefined && undefined.__assign) || function () {
4798 __assign$c = Object.assign || function(t) {
4799 for (var s, i = 1, n = arguments.length; i < n; i++) {
4800 s = arguments[i];
4801 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
4802 t[p] = s[p];
4803 }
4804 return t;
4805 };
4806 return __assign$c.apply(this, arguments);
4807 };
4808 var __rest$7 = (undefined && undefined.__rest) || function (s, e) {
4809 var t = {};
4810 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4811 t[p] = s[p];
4812 if (s != null && typeof Object.getOwnPropertySymbols === "function")
4813 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
4814 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
4815 t[p[i]] = s[p[i]];
4816 }
4817 return t;
4818 };
4819 /**
4820 * This hook allows for custom keyboard focus movement using DOM focus behavior
4821 * by actually focusing each DOM node.
4822 *
4823 * To use this hook, you'll want to update the container element of all the
4824 * items to have a correct `role` applied as well as the `onKeyDown` event
4825 * handler provided by this hook. Then, you'll want to applied a
4826 * `ref={itemRefs[i]}` for each item within the items list so that the DOM nodes
4827 * can be focused as needed. Unfortunately, this means that all the child items
4828 * **must** either be an HTMLElement or the ref is forwarded down to the
4829 * HTMLElement.
4830 *
4831 * @typeparam D The type of each data item within the items list.
4832 * @typeparam CE The HTMLElement type of the container element that handles the
4833 * custom keyboard movement.
4834 * @typeparam IE The HTMLElement type of each item within the container element
4835 * that can be focusable.
4836 */
4837 function useFocusMovement(_a) {
4838 var _b = _a.defaultFocusedIndex, defaultFocusedIndex = _b === void 0 ? -1 : _b, onChange = _a.onChange, options = __rest$7(_a, ["defaultFocusedIndex", "onChange"]);
4839 var _c = React.useState(defaultFocusedIndex), focusedIndex = _c[0], setFocusedIndex = _c[1];
4840 var _d = useKeyboardMovement(__assign$c(__assign$c({}, options), { focusedIndex: focusedIndex,
4841 onChange: function (data, itemRefs) {
4842 if (onChange) {
4843 onChange(data, itemRefs);
4844 }
4845 var index = data.index;
4846 if (index === -1) {
4847 return;
4848 }
4849 var item = itemRefs[index] && itemRefs[index].current;
4850 if (item) {
4851 item.focus();
4852 }
4853 setFocusedIndex(index);
4854 } })), itemRefs = _d[0], handleKeyDown = _d[1];
4855 React.useEffect(function () {
4856 if (defaultFocusedIndex === -1) {
4857 return;
4858 }
4859 var item = itemRefs[defaultFocusedIndex] && itemRefs[defaultFocusedIndex].current;
4860 if (item) {
4861 item.focus();
4862 }
4863 // only want to trigger on mount
4864 // eslint-disable-next-line react-hooks/exhaustive-deps
4865 }, []);
4866 return [itemRefs, handleKeyDown];
4867 }
4868
4869 /**
4870 * This is used with the `useScrollLock` effect to determine if the styles were
4871 * applied by scroll locking or not in the cleanup stage.
4872 */
4873 var DATA_RMD_NOSCROLL = "data-rmd-noscroll";
4874 /**
4875 * This will enable scroll locking for the provided element. Scroll locking
4876 * works by fixing the element within the page and hiding overflow for that
4877 * element.
4878 *
4879 * @param element Either the `<body>` tag or an element within the page to
4880 * disable scroll for.
4881 * @internal
4882 */
4883 function enable(element) {
4884 element.style.overflow = "hidden";
4885 element.setAttribute(DATA_RMD_NOSCROLL, "");
4886 }
4887 /**
4888 * Attempts to disable the scroll locking behavior for an element. If the
4889 * element does not have `data-rmd-noscroll`, it will not be modified. This is
4890 * really just a safety catch to ensure that pre-existing styles aren't removed
4891 * on accident.
4892 *
4893 * If the `data-rmd-noscroll` attribute exists, overflow style and the
4894 * `data-rmd-noscroll` attribute will be removed.
4895 *
4896 * @param element Either the `<body>` tag or an element within the page to
4897 * disable scroll locking for.
4898 * @internal
4899 */
4900 function disable(element) {
4901 if (element.getAttribute(DATA_RMD_NOSCROLL) === null) {
4902 return;
4903 }
4904 element.style.overflow = "";
4905 element.removeAttribute(DATA_RMD_NOSCROLL);
4906 }
4907 /**
4908 * A hook that is used to dynamically add scroll locking to an element. By
4909 * default, this will use the main `<body>` tag for scroll locking, but a query
4910 * selector string or an HTML element can also be used instead.
4911 *
4912 * @param enabled Boolean if the scroll locking behavior should be enabled
4913 * @param selectorOrElement Either a query selector string, HTMLElement, or a
4914 * function that returns an HTMLElement to apply scroll locking to.
4915 */
4916 function useScrollLock(enabled, selectorOrElement) {
4917 React.useEffect(function () {
4918 if (!enabled || typeof document === "undefined") {
4919 return;
4920 }
4921 var element = null;
4922 if (typeof selectorOrElement === "string") {
4923 element = document.querySelector(selectorOrElement);
4924 }
4925 else if (typeof selectorOrElement === "function") {
4926 element = selectorOrElement();
4927 }
4928 else if (selectorOrElement) {
4929 element = selectorOrElement;
4930 }
4931 else {
4932 element = document.body;
4933 }
4934 if (!element || element.getAttribute(DATA_RMD_NOSCROLL) !== null) {
4935 return;
4936 }
4937 enable(element);
4938 return function () {
4939 disable(element);
4940 };
4941 }, [enabled, selectorOrElement]);
4942 }
4943
4944 /**
4945 * This will conditionally close the dialog when the escape key is pressed.
4946 *
4947 * @param onRequestClose The function to call to close the dialog.
4948 * @param disabled Boolean if the escape key functionality should be disabled
4949 * @param onKeyDown An optional keydown event handler to also call.
4950 * @return A keydown event handler
4951 */
4952 function useCloseOnEscape(onRequestClose, disabled, onKeyDown) {
4953 var handleKeyDown = React.useCallback(function (event) {
4954 if (onKeyDown) {
4955 onKeyDown(event);
4956 }
4957 if (event.key === "Escape") {
4958 onRequestClose();
4959 }
4960 }, [onKeyDown, onRequestClose]);
4961 return disabled ? onKeyDown : handleKeyDown;
4962 }
4963
4964 var removeWhitespace = function (s) { return s.replace(/\s/g, ""); };
4965 /**
4966 * The default function used to extract the text from nodes. This will just
4967 * return the textContent by default unless the node has a react-md FontIcon as
4968 * a child. If there is a FontIcon child, the node will be cloned without the
4969 * FontIcon to return the textContent instead. This is because the FontIcon's
4970 * text content would also be returned from the node's text content.
4971 *
4972 * @param stringOrElement Either a string or an element element to convert
4973 * @param fontIconQuerySelector A string to use for finding font icons in the
4974 * HTML Element. When this is set to the empty string, the element will not be
4975 * checked for font icons which _might_ be a slight performance boost if you are
4976 * guarenteed to not use font icons
4977 */
4978 function extractTextContent(stringOrElement, fontIconQuerySelector) {
4979 if (fontIconQuerySelector === void 0) { fontIconQuerySelector = ".rmd-icon--font"; }
4980 if (typeof stringOrElement === "string") {
4981 return removeWhitespace(stringOrElement);
4982 }
4983 if (fontIconQuerySelector) {
4984 var fontIcons = Array.from(stringOrElement.querySelectorAll(fontIconQuerySelector));
4985 if (fontIcons.some(function (i) { return !!i.textContent; })) {
4986 var cloned = stringOrElement.cloneNode(true);
4987 var icon = void 0;
4988 do {
4989 icon = cloned.querySelector(fontIconQuerySelector);
4990 if (icon && icon.parentNode) {
4991 icon.parentNode.removeChild(icon);
4992 }
4993 } while (icon);
4994 return removeWhitespace(cloned.textContent || "");
4995 }
4996 }
4997 return removeWhitespace(stringOrElement.textContent || "");
4998 }
4999
5000 /**
5001 * I really don't know how to typedef this. It just creates a new object that
5002 * has all the values copied over except for any keys that are defined in the
5003 * omitKeys param.
5004 *
5005 * @internal
5006 * @param object The object to remove keys from
5007 * @param omitKeys The keys to remove.
5008 * @return a new object without the specified keys
5009 */
5010 function omit(object, omitKeys) {
5011 if (!omitKeys.length) {
5012 return object;
5013 }
5014 return Object.keys(object).reduce(function (updated, key) {
5015 if (!omitKeys.includes(key)) {
5016 updated[key] = object[key];
5017 }
5018 return updated;
5019 }, {});
5020 }
5021
5022 /**
5023 * Typeguard that will check if the provided checkable thing is a
5024 * MutableRefObject or just an HTMLElement.
5025 *
5026 * @private
5027 */
5028 var isMutableRefObject = function (thing) {
5029 return !!thing &&
5030 typeof thing.current !== "undefined";
5031 };
5032 /**
5033 * Gets the HTMLElement or null from the checkable thing.
5034 *
5035 * @private
5036 */
5037 var getElement = function (thing) {
5038 if (isMutableRefObject(thing)) {
5039 return thing.current;
5040 }
5041 return thing;
5042 };
5043 /**
5044 * Checks if a container element contains another element as a child while
5045 * allowing for nulls or a MutableRefObject of HTMLElement or null. Mostly just
5046 * a convenience function that should be used internally.
5047 *
5048 * @param container The element to use as a container element. This can be an
5049 * HTMLElement, null, or a MutableRefObject of HTMLElement or null.
5050 * @param child The element that might be a child of the container
5051 * element. This can be an HTMLElement, null, or a MutableRefObject of
5052 * HTMLElement or null.
5053 * @return True if the container contains the child element and both the
5054 * container and child are valid HTMLElements (not null).
5055 * @private
5056 */
5057 function containsElement(container, child) {
5058 container = getElement(container);
5059 child = getElement(child);
5060 return !!(container && child && container.contains(child));
5061 }
5062
5063 /**
5064 * A simple util to convert a unit that is using `px`, `em`, or `rem` to a
5065 * number so that calculations can be made on that unit.
5066 *
5067 * @param unit The unit to convert to a number
5068 * @param element The element to use to use for calculating `em`
5069 * @return the unit as a number
5070 */
5071 function unitToNumber(unit, options) {
5072 if (options === void 0) { options = {}; }
5073 var _a = options.fontSizeFallback, fontSizeFallback = _a === void 0 ? 16 : _a, element = options.element;
5074 if (typeof unit === "number") {
5075 return unit;
5076 }
5077 var parsed = parseFloat(unit);
5078 if (/px$/.test(unit)) {
5079 return parsed;
5080 }
5081 if (typeof document === "undefined") {
5082 return parsed * fontSizeFallback;
5083 }
5084 var rem = /rem$/.test(unit);
5085 var el = document.documentElement;
5086 if (!rem && element) {
5087 el = element.parentElement || element;
5088 }
5089 var fontSize = parseFloat(window.getComputedStyle(el).fontSize || fontSizeFallback + "px");
5090 return parsed * fontSize;
5091 }
5092
5093 /**
5094 * Creates a throttled version of a function so that it'll be called with
5095 * trailing and leading calls. Since I always get this confused with `debounce`,
5096 * here's a quick summary of the differences:
5097 *
5098 * - debounce will wait to call the function until it hasn't been called again
5099 * for the wait duration without trailing or leading calls. If it has the
5100 * trailing and leading calls, I can't figure out how it's different than
5101 * throttle.
5102 * - throttle will be called each time it is available to be called.
5103 *
5104 * So debounce is great for things like auto-save features if you want to save
5105 * whenever the user stops typing for a few seconds while throttle is good for
5106 * things like sending an API request when the user is typing so that it isn't
5107 * sent every keystroke, but every few letters. You _could_ also do debounce
5108 * here, but it'll feel more "responsive" to the user when throttled.
5109 *
5110 * @param fn The function that should be throttled
5111 * @param wait The number of milliseconds to wait before calling the function
5112 * again
5113 * @return a throttled version of the function that'll return the last computed
5114 * value if it was called again during the "wait" period.
5115 */
5116 function throttle$1(fn, wait) {
5117 var lastCalledTime = 0;
5118 var timeout;
5119 var result;
5120 var args;
5121 function trailingCall() {
5122 lastCalledTime = Date.now();
5123 timeout = undefined;
5124 result = fn.apply(void 0, args);
5125 }
5126 return function throttled() {
5127 var nextArgs = [];
5128 for (var _i = 0; _i < arguments.length; _i++) {
5129 nextArgs[_i] = arguments[_i];
5130 }
5131 args = nextArgs;
5132 var now = Date.now();
5133 var remaining = wait - (now - lastCalledTime);
5134 if (remaining <= 0 || remaining > wait) {
5135 lastCalledTime = now;
5136 result = fn.apply(void 0, args);
5137 }
5138 else if (!timeout) {
5139 timeout = window.setTimeout(trailingCall, remaining);
5140 }
5141 return result;
5142 };
5143 }
5144
5145 /**
5146 * Simple hook to use an interval with auto setup and teardown. The provided
5147 * functions will be guaranteed to not change and are memoized.
5148 *
5149 * @param callback The callback function to call
5150 * @param delay The time in milliseconds the timer should delay between
5151 * executions of the callback function
5152 * @param defaultRunning Boolean if the interval should be started immediately
5153 * @return a list containing a boolean if the interval is running, function to
5154 * start the interval, and a function to stop the interval.
5155 */
5156 function useInterval(callback, delay, defaultRunning) {
5157 if (defaultRunning === void 0) { defaultRunning = false; }
5158 var ref = useRefCache(callback);
5159 var _a = useToggle(defaultRunning), running = _a[0], start = _a[1], stop = _a[2];
5160 React.useEffect(function () {
5161 if (!running) {
5162 return;
5163 }
5164 var interval = window.setInterval(function () {
5165 ref.current(stop);
5166 }, delay);
5167 return function () {
5168 window.clearInterval(interval);
5169 };
5170 // disabled since useRefCache for the callback
5171 // eslint-disable-next-line react-hooks/exhaustive-deps
5172 }, [delay, running, stop]);
5173 return [running, start, stop];
5174 }
5175
5176 /**
5177 * Simple hook to use an timeout with auto setup and teardown. The provided
5178 * functions will be guaranteed to not change and are memoized.
5179 *
5180 * @param cb The callback function to call
5181 * @param delay The time in milliseconds the timer should delay between
5182 * executions of the callback function
5183 * @param defaultStarted Boolean if the timeout should be started immediately.
5184 * @return a list containing a function to start the timeout, a function to stop
5185 * the timeout, and a function to restart the timeout.
5186 */
5187 function useTimeout(cb, delay, defaultStarted) {
5188 if (defaultStarted === void 0) { defaultStarted = false; }
5189 var cbRef = useRefCache(cb);
5190 var delayRef = useRefCache(delay);
5191 var timeoutRef = React.useRef();
5192 var _a = useToggle(defaultStarted), enabled = _a[0], start = _a[1], disable = _a[2];
5193 var clearTimeout = React.useCallback(function () {
5194 window.clearTimeout(timeoutRef.current);
5195 timeoutRef.current = undefined;
5196 }, []);
5197 /* eslint-disable react-hooks/exhaustive-deps */
5198 // these are all guaranteed to not change since using refs or non-updating callbacks
5199 var restart = React.useCallback(function () {
5200 clearTimeout();
5201 timeoutRef.current = window.setTimeout(function () {
5202 cbRef.current();
5203 disable();
5204 }, delayRef.current);
5205 }, []);
5206 var stop = React.useCallback(function () {
5207 clearTimeout();
5208 disable();
5209 }, []);
5210 React.useEffect(function () {
5211 if (!enabled) {
5212 return;
5213 }
5214 timeoutRef.current = window.setTimeout(function () {
5215 cbRef.current();
5216 disable();
5217 }, delay);
5218 return function () {
5219 clearTimeout();
5220 };
5221 }, [enabled, delay, disable]);
5222 return [start, stop, restart];
5223 }
5224
5225 /**
5226 * Gets the HTMLElement or null from a provided RefObject or HTMLElement/null
5227 * @private
5228 */
5229 function getElement$1(element) {
5230 if (!element) {
5231 return null;
5232 }
5233 if (typeof element.current !== "undefined") {
5234 return element.current;
5235 }
5236 return element;
5237 }
5238 /**
5239 * Triggers a callback function when another element in the page is clicked that
5240 * is outside of the provided element. This is generally used for closing
5241 * temporary elements when something else within the page has been clicked.
5242 *
5243 * The callback will be provided the current `element` as well as the click
5244 * target if additional logic should be applied before closing.
5245 *
5246 * @typeparam E The type of element
5247 */
5248 function useCloseOnOutsideClick(_a) {
5249 var enabled = _a.enabled, element = _a.element, onOutsideClick = _a.onOutsideClick;
5250 React.useEffect(function () {
5251 if (!enabled) {
5252 return;
5253 }
5254 function handleClick(event) {
5255 var target = event.target;
5256 var el = getElement$1(element);
5257 if (!containsElement(el, target)) {
5258 onOutsideClick(el, target, containsElement);
5259 }
5260 }
5261 window.addEventListener("click", handleClick);
5262 return function () {
5263 window.removeEventListener("click", handleClick);
5264 };
5265 }, [enabled, element, onOutsideClick]);
5266 }
5267
5268 var __assign$d = (undefined && undefined.__assign) || function () {
5269 __assign$d = Object.assign || function(t) {
5270 for (var s, i = 1, n = arguments.length; i < n; i++) {
5271 s = arguments[i];
5272 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
5273 t[p] = s[p];
5274 }
5275 return t;
5276 };
5277 return __assign$d.apply(this, arguments);
5278 };
5279 var __rest$8 = (undefined && undefined.__rest) || function (s, e) {
5280 var t = {};
5281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5282 t[p] = s[p];
5283 if (s != null && typeof Object.getOwnPropertySymbols === "function")
5284 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5285 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
5286 t[p[i]] = s[p[i]];
5287 }
5288 return t;
5289 };
5290 var block$4 = bem("rmd-snackbar");
5291 var Snackbar = React.forwardRef(function Snackbar(_a, ref) {
5292 var _b;
5293 var className = _a.className, children = _a.children, _c = _a.portal, portal = _c === void 0 ? false : _c, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, _d = _a.position, position = _d === void 0 ? "bottom" : _d, props = __rest$8(_a, ["className", "children", "portal", "portalInto", "portalIntoId", "position"]);
5294 return (React__default.createElement(ConditionalPortal, { portal: portal, portalInto: portalInto, portalIntoId: portalIntoId },
5295 React__default.createElement("div", __assign$d({}, props, { role: "status", ref: ref, className: classnames(block$4((_b = {}, _b[position] = true, _b)), className) }), children)));
5296 });
5297 {
5298 try {
5299 var PropTypes$b = require("prop-types");
5300 Snackbar.propTypes = {
5301 id: PropTypes$b.string.isRequired,
5302 className: PropTypes$b.string,
5303 children: PropTypes$b.node,
5304 position: PropTypes$b.oneOf(["bottom", "top"]),
5305 portal: PropTypes$b.bool,
5306 portalInto: PropTypes$b.oneOfType([PropTypes$b.object, PropTypes$b.string]),
5307 portalIntoId: PropTypes$b.string,
5308 };
5309 }
5310 catch (e) { }
5311 }
5312
5313 function _extends() {
5314 _extends = Object.assign || function (target) {
5315 for (var i = 1; i < arguments.length; i++) {
5316 var source = arguments[i];
5317
5318 for (var key in source) {
5319 if (Object.prototype.hasOwnProperty.call(source, key)) {
5320 target[key] = source[key];
5321 }
5322 }
5323 }
5324
5325 return target;
5326 };
5327
5328 return _extends.apply(this, arguments);
5329 }
5330
5331 function _objectWithoutPropertiesLoose(source, excluded) {
5332 if (source == null) return {};
5333 var target = {};
5334 var sourceKeys = Object.keys(source);
5335 var key, i;
5336
5337 for (i = 0; i < sourceKeys.length; i++) {
5338 key = sourceKeys[i];
5339 if (excluded.indexOf(key) >= 0) continue;
5340 target[key] = source[key];
5341 }
5342
5343 return target;
5344 }
5345
5346 function _inheritsLoose(subClass, superClass) {
5347 subClass.prototype = Object.create(superClass.prototype);
5348 subClass.prototype.constructor = subClass;
5349 subClass.__proto__ = superClass;
5350 }
5351
5352 var reactIs_development = createCommonjsModule(function (module, exports) {
5353
5354
5355
5356 {
5357 (function() {
5358
5359 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
5360 // nor polyfill, then a plain number is used for performance.
5361 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
5362 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
5363 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
5364 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
5365 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
5366 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
5367 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
5368 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
5369 // (unstable) APIs that have been removed. Can we remove the symbols?
5370
5371 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
5372 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
5373 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
5374 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
5375 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
5376 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
5377 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
5378 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
5379 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
5380 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
5381 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
5382
5383 function isValidElementType(type) {
5384 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
5385 type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
5386 }
5387
5388 function typeOf(object) {
5389 if (typeof object === 'object' && object !== null) {
5390 var $$typeof = object.$$typeof;
5391
5392 switch ($$typeof) {
5393 case REACT_ELEMENT_TYPE:
5394 var type = object.type;
5395
5396 switch (type) {
5397 case REACT_ASYNC_MODE_TYPE:
5398 case REACT_CONCURRENT_MODE_TYPE:
5399 case REACT_FRAGMENT_TYPE:
5400 case REACT_PROFILER_TYPE:
5401 case REACT_STRICT_MODE_TYPE:
5402 case REACT_SUSPENSE_TYPE:
5403 return type;
5404
5405 default:
5406 var $$typeofType = type && type.$$typeof;
5407
5408 switch ($$typeofType) {
5409 case REACT_CONTEXT_TYPE:
5410 case REACT_FORWARD_REF_TYPE:
5411 case REACT_LAZY_TYPE:
5412 case REACT_MEMO_TYPE:
5413 case REACT_PROVIDER_TYPE:
5414 return $$typeofType;
5415
5416 default:
5417 return $$typeof;
5418 }
5419
5420 }
5421
5422 case REACT_PORTAL_TYPE:
5423 return $$typeof;
5424 }
5425 }
5426
5427 return undefined;
5428 } // AsyncMode is deprecated along with isAsyncMode
5429
5430 var AsyncMode = REACT_ASYNC_MODE_TYPE;
5431 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
5432 var ContextConsumer = REACT_CONTEXT_TYPE;
5433 var ContextProvider = REACT_PROVIDER_TYPE;
5434 var Element = REACT_ELEMENT_TYPE;
5435 var ForwardRef = REACT_FORWARD_REF_TYPE;
5436 var Fragment = REACT_FRAGMENT_TYPE;
5437 var Lazy = REACT_LAZY_TYPE;
5438 var Memo = REACT_MEMO_TYPE;
5439 var Portal = REACT_PORTAL_TYPE;
5440 var Profiler = REACT_PROFILER_TYPE;
5441 var StrictMode = REACT_STRICT_MODE_TYPE;
5442 var Suspense = REACT_SUSPENSE_TYPE;
5443 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
5444
5445 function isAsyncMode(object) {
5446 {
5447 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
5448 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
5449
5450 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
5451 }
5452 }
5453
5454 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
5455 }
5456 function isConcurrentMode(object) {
5457 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
5458 }
5459 function isContextConsumer(object) {
5460 return typeOf(object) === REACT_CONTEXT_TYPE;
5461 }
5462 function isContextProvider(object) {
5463 return typeOf(object) === REACT_PROVIDER_TYPE;
5464 }
5465 function isElement(object) {
5466 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
5467 }
5468 function isForwardRef(object) {
5469 return typeOf(object) === REACT_FORWARD_REF_TYPE;
5470 }
5471 function isFragment(object) {
5472 return typeOf(object) === REACT_FRAGMENT_TYPE;
5473 }
5474 function isLazy(object) {
5475 return typeOf(object) === REACT_LAZY_TYPE;
5476 }
5477 function isMemo(object) {
5478 return typeOf(object) === REACT_MEMO_TYPE;
5479 }
5480 function isPortal(object) {
5481 return typeOf(object) === REACT_PORTAL_TYPE;
5482 }
5483 function isProfiler(object) {
5484 return typeOf(object) === REACT_PROFILER_TYPE;
5485 }
5486 function isStrictMode(object) {
5487 return typeOf(object) === REACT_STRICT_MODE_TYPE;
5488 }
5489 function isSuspense(object) {
5490 return typeOf(object) === REACT_SUSPENSE_TYPE;
5491 }
5492
5493 exports.AsyncMode = AsyncMode;
5494 exports.ConcurrentMode = ConcurrentMode;
5495 exports.ContextConsumer = ContextConsumer;
5496 exports.ContextProvider = ContextProvider;
5497 exports.Element = Element;
5498 exports.ForwardRef = ForwardRef;
5499 exports.Fragment = Fragment;
5500 exports.Lazy = Lazy;
5501 exports.Memo = Memo;
5502 exports.Portal = Portal;
5503 exports.Profiler = Profiler;
5504 exports.StrictMode = StrictMode;
5505 exports.Suspense = Suspense;
5506 exports.isAsyncMode = isAsyncMode;
5507 exports.isConcurrentMode = isConcurrentMode;
5508 exports.isContextConsumer = isContextConsumer;
5509 exports.isContextProvider = isContextProvider;
5510 exports.isElement = isElement;
5511 exports.isForwardRef = isForwardRef;
5512 exports.isFragment = isFragment;
5513 exports.isLazy = isLazy;
5514 exports.isMemo = isMemo;
5515 exports.isPortal = isPortal;
5516 exports.isProfiler = isProfiler;
5517 exports.isStrictMode = isStrictMode;
5518 exports.isSuspense = isSuspense;
5519 exports.isValidElementType = isValidElementType;
5520 exports.typeOf = typeOf;
5521 })();
5522 }
5523 });
5524
5525 var reactIs = createCommonjsModule(function (module) {
5526
5527 {
5528 module.exports = reactIs_development;
5529 }
5530 });
5531
5532 /*
5533 object-assign
5534 (c) Sindre Sorhus
5535 @license MIT
5536 */
5537 /* eslint-disable no-unused-vars */
5538 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
5539 var hasOwnProperty = Object.prototype.hasOwnProperty;
5540 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
5541
5542 function toObject(val) {
5543 if (val === null || val === undefined) {
5544 throw new TypeError('Object.assign cannot be called with null or undefined');
5545 }
5546
5547 return Object(val);
5548 }
5549
5550 function shouldUseNative() {
5551 try {
5552 if (!Object.assign) {
5553 return false;
5554 }
5555
5556 // Detect buggy property enumeration order in older V8 versions.
5557
5558 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
5559 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
5560 test1[5] = 'de';
5561 if (Object.getOwnPropertyNames(test1)[0] === '5') {
5562 return false;
5563 }
5564
5565 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
5566 var test2 = {};
5567 for (var i = 0; i < 10; i++) {
5568 test2['_' + String.fromCharCode(i)] = i;
5569 }
5570 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
5571 return test2[n];
5572 });
5573 if (order2.join('') !== '0123456789') {
5574 return false;
5575 }
5576
5577 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
5578 var test3 = {};
5579 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
5580 test3[letter] = letter;
5581 });
5582 if (Object.keys(Object.assign({}, test3)).join('') !==
5583 'abcdefghijklmnopqrst') {
5584 return false;
5585 }
5586
5587 return true;
5588 } catch (err) {
5589 // We don't expect any of the above to throw, but better to be safe.
5590 return false;
5591 }
5592 }
5593
5594 var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
5595 var from;
5596 var to = toObject(target);
5597 var symbols;
5598
5599 for (var s = 1; s < arguments.length; s++) {
5600 from = Object(arguments[s]);
5601
5602 for (var key in from) {
5603 if (hasOwnProperty.call(from, key)) {
5604 to[key] = from[key];
5605 }
5606 }
5607
5608 if (getOwnPropertySymbols) {
5609 symbols = getOwnPropertySymbols(from);
5610 for (var i = 0; i < symbols.length; i++) {
5611 if (propIsEnumerable.call(from, symbols[i])) {
5612 to[symbols[i]] = from[symbols[i]];
5613 }
5614 }
5615 }
5616 }
5617
5618 return to;
5619 };
5620
5621 /**
5622 * Copyright (c) 2013-present, Facebook, Inc.
5623 *
5624 * This source code is licensed under the MIT license found in the
5625 * LICENSE file in the root directory of this source tree.
5626 */
5627
5628 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
5629
5630 var ReactPropTypesSecret_1 = ReactPropTypesSecret;
5631
5632 var printWarning = function() {};
5633
5634 {
5635 var ReactPropTypesSecret$1 = ReactPropTypesSecret_1;
5636 var loggedTypeFailures = {};
5637 var has = Function.call.bind(Object.prototype.hasOwnProperty);
5638
5639 printWarning = function(text) {
5640 var message = 'Warning: ' + text;
5641 if (typeof console !== 'undefined') {
5642 console.error(message);
5643 }
5644 try {
5645 // --- Welcome to debugging React ---
5646 // This error was thrown as a convenience so that you can use this stack
5647 // to find the callsite that caused this warning to fire.
5648 throw new Error(message);
5649 } catch (x) {}
5650 };
5651 }
5652
5653 /**
5654 * Assert that the values match with the type specs.
5655 * Error messages are memorized and will only be shown once.
5656 *
5657 * @param {object} typeSpecs Map of name to a ReactPropType
5658 * @param {object} values Runtime values that need to be type-checked
5659 * @param {string} location e.g. "prop", "context", "child context"
5660 * @param {string} componentName Name of the component for error messages.
5661 * @param {?Function} getStack Returns the component stack.
5662 * @private
5663 */
5664 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
5665 {
5666 for (var typeSpecName in typeSpecs) {
5667 if (has(typeSpecs, typeSpecName)) {
5668 var error;
5669 // Prop type validation may throw. In case they do, we don't want to
5670 // fail the render phase where it didn't fail before. So we log it.
5671 // After these have been cleaned up, we'll let them throw.
5672 try {
5673 // This is intentionally an invariant that gets caught. It's the same
5674 // behavior as without this statement except with a better message.
5675 if (typeof typeSpecs[typeSpecName] !== 'function') {
5676 var err = Error(
5677 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
5678 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
5679 );
5680 err.name = 'Invariant Violation';
5681 throw err;
5682 }
5683 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1);
5684 } catch (ex) {
5685 error = ex;
5686 }
5687 if (error && !(error instanceof Error)) {
5688 printWarning(
5689 (componentName || 'React class') + ': type specification of ' +
5690 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
5691 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
5692 'You may have forgotten to pass an argument to the type checker ' +
5693 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
5694 'shape all require an argument).'
5695 );
5696 }
5697 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
5698 // Only monitor this failure once because there tends to be a lot of the
5699 // same error.
5700 loggedTypeFailures[error.message] = true;
5701
5702 var stack = getStack ? getStack() : '';
5703
5704 printWarning(
5705 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
5706 );
5707 }
5708 }
5709 }
5710 }
5711 }
5712
5713 /**
5714 * Resets warning cache when testing.
5715 *
5716 * @private
5717 */
5718 checkPropTypes.resetWarningCache = function() {
5719 {
5720 loggedTypeFailures = {};
5721 }
5722 };
5723
5724 var checkPropTypes_1 = checkPropTypes;
5725
5726 var has$1 = Function.call.bind(Object.prototype.hasOwnProperty);
5727 var printWarning$1 = function() {};
5728
5729 {
5730 printWarning$1 = function(text) {
5731 var message = 'Warning: ' + text;
5732 if (typeof console !== 'undefined') {
5733 console.error(message);
5734 }
5735 try {
5736 // --- Welcome to debugging React ---
5737 // This error was thrown as a convenience so that you can use this stack
5738 // to find the callsite that caused this warning to fire.
5739 throw new Error(message);
5740 } catch (x) {}
5741 };
5742 }
5743
5744 function emptyFunctionThatReturnsNull() {
5745 return null;
5746 }
5747
5748 var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {
5749 /* global Symbol */
5750 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
5751 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
5752
5753 /**
5754 * Returns the iterator method function contained on the iterable object.
5755 *
5756 * Be sure to invoke the function with the iterable as context:
5757 *
5758 * var iteratorFn = getIteratorFn(myIterable);
5759 * if (iteratorFn) {
5760 * var iterator = iteratorFn.call(myIterable);
5761 * ...
5762 * }
5763 *
5764 * @param {?object} maybeIterable
5765 * @return {?function}
5766 */
5767 function getIteratorFn(maybeIterable) {
5768 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
5769 if (typeof iteratorFn === 'function') {
5770 return iteratorFn;
5771 }
5772 }
5773
5774 /**
5775 * Collection of methods that allow declaration and validation of props that are
5776 * supplied to React components. Example usage:
5777 *
5778 * var Props = require('ReactPropTypes');
5779 * var MyArticle = React.createClass({
5780 * propTypes: {
5781 * // An optional string prop named "description".
5782 * description: Props.string,
5783 *
5784 * // A required enum prop named "category".
5785 * category: Props.oneOf(['News','Photos']).isRequired,
5786 *
5787 * // A prop named "dialog" that requires an instance of Dialog.
5788 * dialog: Props.instanceOf(Dialog).isRequired
5789 * },
5790 * render: function() { ... }
5791 * });
5792 *
5793 * A more formal specification of how these methods are used:
5794 *
5795 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
5796 * decl := ReactPropTypes.{type}(.isRequired)?
5797 *
5798 * Each and every declaration produces a function with the same signature. This
5799 * allows the creation of custom validation functions. For example:
5800 *
5801 * var MyLink = React.createClass({
5802 * propTypes: {
5803 * // An optional string or URI prop named "href".
5804 * href: function(props, propName, componentName) {
5805 * var propValue = props[propName];
5806 * if (propValue != null && typeof propValue !== 'string' &&
5807 * !(propValue instanceof URI)) {
5808 * return new Error(
5809 * 'Expected a string or an URI for ' + propName + ' in ' +
5810 * componentName
5811 * );
5812 * }
5813 * }
5814 * },
5815 * render: function() {...}
5816 * });
5817 *
5818 * @internal
5819 */
5820
5821 var ANONYMOUS = '<<anonymous>>';
5822
5823 // Important!
5824 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
5825 var ReactPropTypes = {
5826 array: createPrimitiveTypeChecker('array'),
5827 bool: createPrimitiveTypeChecker('boolean'),
5828 func: createPrimitiveTypeChecker('function'),
5829 number: createPrimitiveTypeChecker('number'),
5830 object: createPrimitiveTypeChecker('object'),
5831 string: createPrimitiveTypeChecker('string'),
5832 symbol: createPrimitiveTypeChecker('symbol'),
5833
5834 any: createAnyTypeChecker(),
5835 arrayOf: createArrayOfTypeChecker,
5836 element: createElementTypeChecker(),
5837 elementType: createElementTypeTypeChecker(),
5838 instanceOf: createInstanceTypeChecker,
5839 node: createNodeChecker(),
5840 objectOf: createObjectOfTypeChecker,
5841 oneOf: createEnumTypeChecker,
5842 oneOfType: createUnionTypeChecker,
5843 shape: createShapeTypeChecker,
5844 exact: createStrictShapeTypeChecker,
5845 };
5846
5847 /**
5848 * inlined Object.is polyfill to avoid requiring consumers ship their own
5849 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
5850 */
5851 /*eslint-disable no-self-compare*/
5852 function is(x, y) {
5853 // SameValue algorithm
5854 if (x === y) {
5855 // Steps 1-5, 7-10
5856 // Steps 6.b-6.e: +0 != -0
5857 return x !== 0 || 1 / x === 1 / y;
5858 } else {
5859 // Step 6.a: NaN == NaN
5860 return x !== x && y !== y;
5861 }
5862 }
5863 /*eslint-enable no-self-compare*/
5864
5865 /**
5866 * We use an Error-like object for backward compatibility as people may call
5867 * PropTypes directly and inspect their output. However, we don't use real
5868 * Errors anymore. We don't inspect their stack anyway, and creating them
5869 * is prohibitively expensive if they are created too often, such as what
5870 * happens in oneOfType() for any type before the one that matched.
5871 */
5872 function PropTypeError(message) {
5873 this.message = message;
5874 this.stack = '';
5875 }
5876 // Make `instanceof Error` still work for returned errors.
5877 PropTypeError.prototype = Error.prototype;
5878
5879 function createChainableTypeChecker(validate) {
5880 {
5881 var manualPropTypeCallCache = {};
5882 var manualPropTypeWarningCount = 0;
5883 }
5884 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
5885 componentName = componentName || ANONYMOUS;
5886 propFullName = propFullName || propName;
5887
5888 if (secret !== ReactPropTypesSecret_1) {
5889 if (throwOnDirectAccess) {
5890 // New behavior only for users of `prop-types` package
5891 var err = new Error(
5892 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
5893 'Use `PropTypes.checkPropTypes()` to call them. ' +
5894 'Read more at http://fb.me/use-check-prop-types'
5895 );
5896 err.name = 'Invariant Violation';
5897 throw err;
5898 } else if ( typeof console !== 'undefined') {
5899 // Old behavior for people using React.PropTypes
5900 var cacheKey = componentName + ':' + propName;
5901 if (
5902 !manualPropTypeCallCache[cacheKey] &&
5903 // Avoid spamming the console because they are often not actionable except for lib authors
5904 manualPropTypeWarningCount < 3
5905 ) {
5906 printWarning$1(
5907 'You are manually calling a React.PropTypes validation ' +
5908 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
5909 'and will throw in the standalone `prop-types` package. ' +
5910 'You may be seeing this warning due to a third-party PropTypes ' +
5911 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
5912 );
5913 manualPropTypeCallCache[cacheKey] = true;
5914 manualPropTypeWarningCount++;
5915 }
5916 }
5917 }
5918 if (props[propName] == null) {
5919 if (isRequired) {
5920 if (props[propName] === null) {
5921 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
5922 }
5923 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
5924 }
5925 return null;
5926 } else {
5927 return validate(props, propName, componentName, location, propFullName);
5928 }
5929 }
5930
5931 var chainedCheckType = checkType.bind(null, false);
5932 chainedCheckType.isRequired = checkType.bind(null, true);
5933
5934 return chainedCheckType;
5935 }
5936
5937 function createPrimitiveTypeChecker(expectedType) {
5938 function validate(props, propName, componentName, location, propFullName, secret) {
5939 var propValue = props[propName];
5940 var propType = getPropType(propValue);
5941 if (propType !== expectedType) {
5942 // `propValue` being instance of, say, date/regexp, pass the 'object'
5943 // check, but we can offer a more precise error message here rather than
5944 // 'of type `object`'.
5945 var preciseType = getPreciseType(propValue);
5946
5947 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
5948 }
5949 return null;
5950 }
5951 return createChainableTypeChecker(validate);
5952 }
5953
5954 function createAnyTypeChecker() {
5955 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
5956 }
5957
5958 function createArrayOfTypeChecker(typeChecker) {
5959 function validate(props, propName, componentName, location, propFullName) {
5960 if (typeof typeChecker !== 'function') {
5961 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
5962 }
5963 var propValue = props[propName];
5964 if (!Array.isArray(propValue)) {
5965 var propType = getPropType(propValue);
5966 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
5967 }
5968 for (var i = 0; i < propValue.length; i++) {
5969 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1);
5970 if (error instanceof Error) {
5971 return error;
5972 }
5973 }
5974 return null;
5975 }
5976 return createChainableTypeChecker(validate);
5977 }
5978
5979 function createElementTypeChecker() {
5980 function validate(props, propName, componentName, location, propFullName) {
5981 var propValue = props[propName];
5982 if (!isValidElement(propValue)) {
5983 var propType = getPropType(propValue);
5984 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
5985 }
5986 return null;
5987 }
5988 return createChainableTypeChecker(validate);
5989 }
5990
5991 function createElementTypeTypeChecker() {
5992 function validate(props, propName, componentName, location, propFullName) {
5993 var propValue = props[propName];
5994 if (!reactIs.isValidElementType(propValue)) {
5995 var propType = getPropType(propValue);
5996 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
5997 }
5998 return null;
5999 }
6000 return createChainableTypeChecker(validate);
6001 }
6002
6003 function createInstanceTypeChecker(expectedClass) {
6004 function validate(props, propName, componentName, location, propFullName) {
6005 if (!(props[propName] instanceof expectedClass)) {
6006 var expectedClassName = expectedClass.name || ANONYMOUS;
6007 var actualClassName = getClassName(props[propName]);
6008 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
6009 }
6010 return null;
6011 }
6012 return createChainableTypeChecker(validate);
6013 }
6014
6015 function createEnumTypeChecker(expectedValues) {
6016 if (!Array.isArray(expectedValues)) {
6017 {
6018 if (arguments.length > 1) {
6019 printWarning$1(
6020 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
6021 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
6022 );
6023 } else {
6024 printWarning$1('Invalid argument supplied to oneOf, expected an array.');
6025 }
6026 }
6027 return emptyFunctionThatReturnsNull;
6028 }
6029
6030 function validate(props, propName, componentName, location, propFullName) {
6031 var propValue = props[propName];
6032 for (var i = 0; i < expectedValues.length; i++) {
6033 if (is(propValue, expectedValues[i])) {
6034 return null;
6035 }
6036 }
6037
6038 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
6039 var type = getPreciseType(value);
6040 if (type === 'symbol') {
6041 return String(value);
6042 }
6043 return value;
6044 });
6045 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
6046 }
6047 return createChainableTypeChecker(validate);
6048 }
6049
6050 function createObjectOfTypeChecker(typeChecker) {
6051 function validate(props, propName, componentName, location, propFullName) {
6052 if (typeof typeChecker !== 'function') {
6053 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
6054 }
6055 var propValue = props[propName];
6056 var propType = getPropType(propValue);
6057 if (propType !== 'object') {
6058 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
6059 }
6060 for (var key in propValue) {
6061 if (has$1(propValue, key)) {
6062 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1);
6063 if (error instanceof Error) {
6064 return error;
6065 }
6066 }
6067 }
6068 return null;
6069 }
6070 return createChainableTypeChecker(validate);
6071 }
6072
6073 function createUnionTypeChecker(arrayOfTypeCheckers) {
6074 if (!Array.isArray(arrayOfTypeCheckers)) {
6075 printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.') ;
6076 return emptyFunctionThatReturnsNull;
6077 }
6078
6079 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
6080 var checker = arrayOfTypeCheckers[i];
6081 if (typeof checker !== 'function') {
6082 printWarning$1(
6083 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
6084 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
6085 );
6086 return emptyFunctionThatReturnsNull;
6087 }
6088 }
6089
6090 function validate(props, propName, componentName, location, propFullName) {
6091 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
6092 var checker = arrayOfTypeCheckers[i];
6093 if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) {
6094 return null;
6095 }
6096 }
6097
6098 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
6099 }
6100 return createChainableTypeChecker(validate);
6101 }
6102
6103 function createNodeChecker() {
6104 function validate(props, propName, componentName, location, propFullName) {
6105 if (!isNode(props[propName])) {
6106 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
6107 }
6108 return null;
6109 }
6110 return createChainableTypeChecker(validate);
6111 }
6112
6113 function createShapeTypeChecker(shapeTypes) {
6114 function validate(props, propName, componentName, location, propFullName) {
6115 var propValue = props[propName];
6116 var propType = getPropType(propValue);
6117 if (propType !== 'object') {
6118 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
6119 }
6120 for (var key in shapeTypes) {
6121 var checker = shapeTypes[key];
6122 if (!checker) {
6123 continue;
6124 }
6125 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1);
6126 if (error) {
6127 return error;
6128 }
6129 }
6130 return null;
6131 }
6132 return createChainableTypeChecker(validate);
6133 }
6134
6135 function createStrictShapeTypeChecker(shapeTypes) {
6136 function validate(props, propName, componentName, location, propFullName) {
6137 var propValue = props[propName];
6138 var propType = getPropType(propValue);
6139 if (propType !== 'object') {
6140 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
6141 }
6142 // We need to check all keys in case some are required but missing from
6143 // props.
6144 var allKeys = objectAssign({}, props[propName], shapeTypes);
6145 for (var key in allKeys) {
6146 var checker = shapeTypes[key];
6147 if (!checker) {
6148 return new PropTypeError(
6149 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
6150 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
6151 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
6152 );
6153 }
6154 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1);
6155 if (error) {
6156 return error;
6157 }
6158 }
6159 return null;
6160 }
6161
6162 return createChainableTypeChecker(validate);
6163 }
6164
6165 function isNode(propValue) {
6166 switch (typeof propValue) {
6167 case 'number':
6168 case 'string':
6169 case 'undefined':
6170 return true;
6171 case 'boolean':
6172 return !propValue;
6173 case 'object':
6174 if (Array.isArray(propValue)) {
6175 return propValue.every(isNode);
6176 }
6177 if (propValue === null || isValidElement(propValue)) {
6178 return true;
6179 }
6180
6181 var iteratorFn = getIteratorFn(propValue);
6182 if (iteratorFn) {
6183 var iterator = iteratorFn.call(propValue);
6184 var step;
6185 if (iteratorFn !== propValue.entries) {
6186 while (!(step = iterator.next()).done) {
6187 if (!isNode(step.value)) {
6188 return false;
6189 }
6190 }
6191 } else {
6192 // Iterator will provide entry [k,v] tuples rather than values.
6193 while (!(step = iterator.next()).done) {
6194 var entry = step.value;
6195 if (entry) {
6196 if (!isNode(entry[1])) {
6197 return false;
6198 }
6199 }
6200 }
6201 }
6202 } else {
6203 return false;
6204 }
6205
6206 return true;
6207 default:
6208 return false;
6209 }
6210 }
6211
6212 function isSymbol(propType, propValue) {
6213 // Native Symbol.
6214 if (propType === 'symbol') {
6215 return true;
6216 }
6217
6218 // falsy value can't be a Symbol
6219 if (!propValue) {
6220 return false;
6221 }
6222
6223 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
6224 if (propValue['@@toStringTag'] === 'Symbol') {
6225 return true;
6226 }
6227
6228 // Fallback for non-spec compliant Symbols which are polyfilled.
6229 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
6230 return true;
6231 }
6232
6233 return false;
6234 }
6235
6236 // Equivalent of `typeof` but with special handling for array and regexp.
6237 function getPropType(propValue) {
6238 var propType = typeof propValue;
6239 if (Array.isArray(propValue)) {
6240 return 'array';
6241 }
6242 if (propValue instanceof RegExp) {
6243 // Old webkits (at least until Android 4.0) return 'function' rather than
6244 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
6245 // passes PropTypes.object.
6246 return 'object';
6247 }
6248 if (isSymbol(propType, propValue)) {
6249 return 'symbol';
6250 }
6251 return propType;
6252 }
6253
6254 // This handles more types than `getPropType`. Only used for error messages.
6255 // See `createPrimitiveTypeChecker`.
6256 function getPreciseType(propValue) {
6257 if (typeof propValue === 'undefined' || propValue === null) {
6258 return '' + propValue;
6259 }
6260 var propType = getPropType(propValue);
6261 if (propType === 'object') {
6262 if (propValue instanceof Date) {
6263 return 'date';
6264 } else if (propValue instanceof RegExp) {
6265 return 'regexp';
6266 }
6267 }
6268 return propType;
6269 }
6270
6271 // Returns a string that is postfixed to a warning about an invalid type.
6272 // For example, "undefined" or "of type array"
6273 function getPostfixForTypeWarning(value) {
6274 var type = getPreciseType(value);
6275 switch (type) {
6276 case 'array':
6277 case 'object':
6278 return 'an ' + type;
6279 case 'boolean':
6280 case 'date':
6281 case 'regexp':
6282 return 'a ' + type;
6283 default:
6284 return type;
6285 }
6286 }
6287
6288 // Returns class name of the object, if any.
6289 function getClassName(propValue) {
6290 if (!propValue.constructor || !propValue.constructor.name) {
6291 return ANONYMOUS;
6292 }
6293 return propValue.constructor.name;
6294 }
6295
6296 ReactPropTypes.checkPropTypes = checkPropTypes_1;
6297 ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache;
6298 ReactPropTypes.PropTypes = ReactPropTypes;
6299
6300 return ReactPropTypes;
6301 };
6302
6303 var propTypes = createCommonjsModule(function (module) {
6304 /**
6305 * Copyright (c) 2013-present, Facebook, Inc.
6306 *
6307 * This source code is licensed under the MIT license found in the
6308 * LICENSE file in the root directory of this source tree.
6309 */
6310
6311 {
6312 var ReactIs = reactIs;
6313
6314 // By explicitly using `prop-types` you are opting into new development behavior.
6315 // http://fb.me/prop-types-in-prod
6316 var throwOnDirectAccess = true;
6317 module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess);
6318 }
6319 });
6320
6321 function hasClass(element, className) {
6322 if (element.classList) return !!className && element.classList.contains(className);
6323 return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
6324 }
6325
6326 function addClass(element, className) {
6327 if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + " " + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + " " + className);
6328 }
6329
6330 function replaceClassName(origClass, classToRemove) {
6331 return origClass.replace(new RegExp("(^|\\s)" + classToRemove + "(?:\\s|$)", 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
6332 }
6333
6334 function removeClass(element, className) {
6335 if (element.classList) {
6336 element.classList.remove(className);
6337 } else if (typeof element.className === 'string') {
6338 element.className = replaceClassName(element.className, className);
6339 } else {
6340 element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));
6341 }
6342 }
6343
6344 var config = {
6345 disabled: false
6346 };
6347
6348 var timeoutsShape = propTypes.oneOfType([propTypes.number, propTypes.shape({
6349 enter: propTypes.number,
6350 exit: propTypes.number,
6351 appear: propTypes.number
6352 }).isRequired]) ;
6353 var classNamesShape = propTypes.oneOfType([propTypes.string, propTypes.shape({
6354 enter: propTypes.string,
6355 exit: propTypes.string,
6356 active: propTypes.string
6357 }), propTypes.shape({
6358 enter: propTypes.string,
6359 enterDone: propTypes.string,
6360 enterActive: propTypes.string,
6361 exit: propTypes.string,
6362 exitDone: propTypes.string,
6363 exitActive: propTypes.string
6364 })]) ;
6365
6366 var TransitionGroupContext = React__default.createContext(null);
6367
6368 var UNMOUNTED = 'unmounted';
6369 var EXITED = 'exited';
6370 var ENTERING = 'entering';
6371 var ENTERED = 'entered';
6372 var EXITING = 'exiting';
6373 /**
6374 * The Transition component lets you describe a transition from one component
6375 * state to another _over time_ with a simple declarative API. Most commonly
6376 * it's used to animate the mounting and unmounting of a component, but can also
6377 * be used to describe in-place transition states as well.
6378 *
6379 * ---
6380 *
6381 * **Note**: `Transition` is a platform-agnostic base component. If you're using
6382 * transitions in CSS, you'll probably want to use
6383 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
6384 * instead. It inherits all the features of `Transition`, but contains
6385 * additional features necessary to play nice with CSS transitions (hence the
6386 * name of the component).
6387 *
6388 * ---
6389 *
6390 * By default the `Transition` component does not alter the behavior of the
6391 * component it renders, it only tracks "enter" and "exit" states for the
6392 * components. It's up to you to give meaning and effect to those states. For
6393 * example we can add styles to a component when it enters or exits:
6394 *
6395 * ```jsx
6396 * import { Transition } from 'react-transition-group';
6397 *
6398 * const duration = 300;
6399 *
6400 * const defaultStyle = {
6401 * transition: `opacity ${duration}ms ease-in-out`,
6402 * opacity: 0,
6403 * }
6404 *
6405 * const transitionStyles = {
6406 * entering: { opacity: 1 },
6407 * entered: { opacity: 1 },
6408 * exiting: { opacity: 0 },
6409 * exited: { opacity: 0 },
6410 * };
6411 *
6412 * const Fade = ({ in: inProp }) => (
6413 * <Transition in={inProp} timeout={duration}>
6414 * {state => (
6415 * <div style={{
6416 * ...defaultStyle,
6417 * ...transitionStyles[state]
6418 * }}>
6419 * I'm a fade Transition!
6420 * </div>
6421 * )}
6422 * </Transition>
6423 * );
6424 * ```
6425 *
6426 * There are 4 main states a Transition can be in:
6427 * - `'entering'`
6428 * - `'entered'`
6429 * - `'exiting'`
6430 * - `'exited'`
6431 *
6432 * Transition state is toggled via the `in` prop. When `true` the component
6433 * begins the "Enter" stage. During this stage, the component will shift from
6434 * its current transition state, to `'entering'` for the duration of the
6435 * transition and then to the `'entered'` stage once it's complete. Let's take
6436 * the following example (we'll use the
6437 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
6438 *
6439 * ```jsx
6440 * function App() {
6441 * const [inProp, setInProp] = useState(false);
6442 * return (
6443 * <div>
6444 * <Transition in={inProp} timeout={500}>
6445 * {state => (
6446 * // ...
6447 * )}
6448 * </Transition>
6449 * <button onClick={() => setInProp(true)}>
6450 * Click to Enter
6451 * </button>
6452 * </div>
6453 * );
6454 * }
6455 * ```
6456 *
6457 * When the button is clicked the component will shift to the `'entering'` state
6458 * and stay there for 500ms (the value of `timeout`) before it finally switches
6459 * to `'entered'`.
6460 *
6461 * When `in` is `false` the same thing happens except the state moves from
6462 * `'exiting'` to `'exited'`.
6463 */
6464
6465 var Transition =
6466 /*#__PURE__*/
6467 function (_React$Component) {
6468 _inheritsLoose(Transition, _React$Component);
6469
6470 function Transition(props, context) {
6471 var _this;
6472
6473 _this = _React$Component.call(this, props, context) || this;
6474 var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
6475
6476 var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
6477 var initialStatus;
6478 _this.appearStatus = null;
6479
6480 if (props.in) {
6481 if (appear) {
6482 initialStatus = EXITED;
6483 _this.appearStatus = ENTERING;
6484 } else {
6485 initialStatus = ENTERED;
6486 }
6487 } else {
6488 if (props.unmountOnExit || props.mountOnEnter) {
6489 initialStatus = UNMOUNTED;
6490 } else {
6491 initialStatus = EXITED;
6492 }
6493 }
6494
6495 _this.state = {
6496 status: initialStatus
6497 };
6498 _this.nextCallback = null;
6499 return _this;
6500 }
6501
6502 Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
6503 var nextIn = _ref.in;
6504
6505 if (nextIn && prevState.status === UNMOUNTED) {
6506 return {
6507 status: EXITED
6508 };
6509 }
6510
6511 return null;
6512 }; // getSnapshotBeforeUpdate(prevProps) {
6513 // let nextStatus = null
6514 // if (prevProps !== this.props) {
6515 // const { status } = this.state
6516 // if (this.props.in) {
6517 // if (status !== ENTERING && status !== ENTERED) {
6518 // nextStatus = ENTERING
6519 // }
6520 // } else {
6521 // if (status === ENTERING || status === ENTERED) {
6522 // nextStatus = EXITING
6523 // }
6524 // }
6525 // }
6526 // return { nextStatus }
6527 // }
6528
6529
6530 var _proto = Transition.prototype;
6531
6532 _proto.componentDidMount = function componentDidMount() {
6533 this.updateStatus(true, this.appearStatus);
6534 };
6535
6536 _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
6537 var nextStatus = null;
6538
6539 if (prevProps !== this.props) {
6540 var status = this.state.status;
6541
6542 if (this.props.in) {
6543 if (status !== ENTERING && status !== ENTERED) {
6544 nextStatus = ENTERING;
6545 }
6546 } else {
6547 if (status === ENTERING || status === ENTERED) {
6548 nextStatus = EXITING;
6549 }
6550 }
6551 }
6552
6553 this.updateStatus(false, nextStatus);
6554 };
6555
6556 _proto.componentWillUnmount = function componentWillUnmount() {
6557 this.cancelNextCallback();
6558 };
6559
6560 _proto.getTimeouts = function getTimeouts() {
6561 var timeout = this.props.timeout;
6562 var exit, enter, appear;
6563 exit = enter = appear = timeout;
6564
6565 if (timeout != null && typeof timeout !== 'number') {
6566 exit = timeout.exit;
6567 enter = timeout.enter; // TODO: remove fallback for next major
6568
6569 appear = timeout.appear !== undefined ? timeout.appear : enter;
6570 }
6571
6572 return {
6573 exit: exit,
6574 enter: enter,
6575 appear: appear
6576 };
6577 };
6578
6579 _proto.updateStatus = function updateStatus(mounting, nextStatus) {
6580 if (mounting === void 0) {
6581 mounting = false;
6582 }
6583
6584 if (nextStatus !== null) {
6585 // nextStatus will always be ENTERING or EXITING.
6586 this.cancelNextCallback();
6587 var node = ReactDOM__default.findDOMNode(this);
6588
6589 if (nextStatus === ENTERING) {
6590 this.performEnter(node, mounting);
6591 } else {
6592 this.performExit(node);
6593 }
6594 } else if (this.props.unmountOnExit && this.state.status === EXITED) {
6595 this.setState({
6596 status: UNMOUNTED
6597 });
6598 }
6599 };
6600
6601 _proto.performEnter = function performEnter(node, mounting) {
6602 var _this2 = this;
6603
6604 var enter = this.props.enter;
6605 var appearing = this.context ? this.context.isMounting : mounting;
6606 var timeouts = this.getTimeouts();
6607 var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
6608 // if we are mounting and running this it means appear _must_ be set
6609
6610 if (!mounting && !enter || config.disabled) {
6611 this.safeSetState({
6612 status: ENTERED
6613 }, function () {
6614 _this2.props.onEntered(node);
6615 });
6616 return;
6617 }
6618
6619 this.props.onEnter(node, appearing);
6620 this.safeSetState({
6621 status: ENTERING
6622 }, function () {
6623 _this2.props.onEntering(node, appearing);
6624
6625 _this2.onTransitionEnd(node, enterTimeout, function () {
6626 _this2.safeSetState({
6627 status: ENTERED
6628 }, function () {
6629 _this2.props.onEntered(node, appearing);
6630 });
6631 });
6632 });
6633 };
6634
6635 _proto.performExit = function performExit(node) {
6636 var _this3 = this;
6637
6638 var exit = this.props.exit;
6639 var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED
6640
6641 if (!exit || config.disabled) {
6642 this.safeSetState({
6643 status: EXITED
6644 }, function () {
6645 _this3.props.onExited(node);
6646 });
6647 return;
6648 }
6649
6650 this.props.onExit(node);
6651 this.safeSetState({
6652 status: EXITING
6653 }, function () {
6654 _this3.props.onExiting(node);
6655
6656 _this3.onTransitionEnd(node, timeouts.exit, function () {
6657 _this3.safeSetState({
6658 status: EXITED
6659 }, function () {
6660 _this3.props.onExited(node);
6661 });
6662 });
6663 });
6664 };
6665
6666 _proto.cancelNextCallback = function cancelNextCallback() {
6667 if (this.nextCallback !== null) {
6668 this.nextCallback.cancel();
6669 this.nextCallback = null;
6670 }
6671 };
6672
6673 _proto.safeSetState = function safeSetState(nextState, callback) {
6674 // This shouldn't be necessary, but there are weird race conditions with
6675 // setState callbacks and unmounting in testing, so always make sure that
6676 // we can cancel any pending setState callbacks after we unmount.
6677 callback = this.setNextCallback(callback);
6678 this.setState(nextState, callback);
6679 };
6680
6681 _proto.setNextCallback = function setNextCallback(callback) {
6682 var _this4 = this;
6683
6684 var active = true;
6685
6686 this.nextCallback = function (event) {
6687 if (active) {
6688 active = false;
6689 _this4.nextCallback = null;
6690 callback(event);
6691 }
6692 };
6693
6694 this.nextCallback.cancel = function () {
6695 active = false;
6696 };
6697
6698 return this.nextCallback;
6699 };
6700
6701 _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
6702 this.setNextCallback(handler);
6703 var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
6704
6705 if (!node || doesNotHaveTimeoutOrListener) {
6706 setTimeout(this.nextCallback, 0);
6707 return;
6708 }
6709
6710 if (this.props.addEndListener) {
6711 this.props.addEndListener(node, this.nextCallback);
6712 }
6713
6714 if (timeout != null) {
6715 setTimeout(this.nextCallback, timeout);
6716 }
6717 };
6718
6719 _proto.render = function render() {
6720 var status = this.state.status;
6721
6722 if (status === UNMOUNTED) {
6723 return null;
6724 }
6725
6726 var _this$props = this.props,
6727 children = _this$props.children,
6728 childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition
6729
6730
6731 delete childProps.in;
6732 delete childProps.mountOnEnter;
6733 delete childProps.unmountOnExit;
6734 delete childProps.appear;
6735 delete childProps.enter;
6736 delete childProps.exit;
6737 delete childProps.timeout;
6738 delete childProps.addEndListener;
6739 delete childProps.onEnter;
6740 delete childProps.onEntering;
6741 delete childProps.onEntered;
6742 delete childProps.onExit;
6743 delete childProps.onExiting;
6744 delete childProps.onExited;
6745
6746 if (typeof children === 'function') {
6747 // allows for nested Transitions
6748 return React__default.createElement(TransitionGroupContext.Provider, {
6749 value: null
6750 }, children(status, childProps));
6751 }
6752
6753 var child = React__default.Children.only(children);
6754 return (// allows for nested Transitions
6755 React__default.createElement(TransitionGroupContext.Provider, {
6756 value: null
6757 }, React__default.cloneElement(child, childProps))
6758 );
6759 };
6760
6761 return Transition;
6762 }(React__default.Component);
6763
6764 Transition.contextType = TransitionGroupContext;
6765 Transition.propTypes = {
6766 /**
6767 * A `function` child can be used instead of a React element. This function is
6768 * called with the current transition status (`'entering'`, `'entered'`,
6769 * `'exiting'`, `'exited'`), which can be used to apply context
6770 * specific props to a component.
6771 *
6772 * ```jsx
6773 * <Transition in={this.state.in} timeout={150}>
6774 * {state => (
6775 * <MyComponent className={`fade fade-${state}`} />
6776 * )}
6777 * </Transition>
6778 * ```
6779 */
6780 children: propTypes.oneOfType([propTypes.func.isRequired, propTypes.element.isRequired]).isRequired,
6781
6782 /**
6783 * Show the component; triggers the enter or exit states
6784 */
6785 in: propTypes.bool,
6786
6787 /**
6788 * By default the child component is mounted immediately along with
6789 * the parent `Transition` component. If you want to "lazy mount" the component on the
6790 * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
6791 * mounted, even on "exited", unless you also specify `unmountOnExit`.
6792 */
6793 mountOnEnter: propTypes.bool,
6794
6795 /**
6796 * By default the child component stays mounted after it reaches the `'exited'` state.
6797 * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
6798 */
6799 unmountOnExit: propTypes.bool,
6800
6801 /**
6802 * Normally a component is not transitioned if it is shown when the
6803 * `<Transition>` component mounts. If you want to transition on the first
6804 * mount set `appear` to `true`, and the component will transition in as soon
6805 * as the `<Transition>` mounts.
6806 *
6807 * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop
6808 * > only adds an additional enter transition. However, in the
6809 * > `<CSSTransition>` component that first enter transition does result in
6810 * > additional `.appear-*` classes, that way you can choose to style it
6811 * > differently.
6812 */
6813 appear: propTypes.bool,
6814
6815 /**
6816 * Enable or disable enter transitions.
6817 */
6818 enter: propTypes.bool,
6819
6820 /**
6821 * Enable or disable exit transitions.
6822 */
6823 exit: propTypes.bool,
6824
6825 /**
6826 * The duration of the transition, in milliseconds.
6827 * Required unless `addEndListener` is provided.
6828 *
6829 * You may specify a single timeout for all transitions:
6830 *
6831 * ```jsx
6832 * timeout={500}
6833 * ```
6834 *
6835 * or individually:
6836 *
6837 * ```jsx
6838 * timeout={{
6839 * appear: 500,
6840 * enter: 300,
6841 * exit: 500,
6842 * }}
6843 * ```
6844 *
6845 * - `appear` defaults to the value of `enter`
6846 * - `enter` defaults to `0`
6847 * - `exit` defaults to `0`
6848 *
6849 * @type {number | { enter?: number, exit?: number, appear?: number }}
6850 */
6851 timeout: function timeout(props) {
6852 var pt = timeoutsShape;
6853 if (!props.addEndListener) pt = pt.isRequired;
6854
6855 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6856 args[_key - 1] = arguments[_key];
6857 }
6858
6859 return pt.apply(void 0, [props].concat(args));
6860 },
6861
6862 /**
6863 * Add a custom transition end trigger. Called with the transitioning
6864 * DOM node and a `done` callback. Allows for more fine grained transition end
6865 * logic. **Note:** Timeouts are still used as a fallback if provided.
6866 *
6867 * ```jsx
6868 * addEndListener={(node, done) => {
6869 * // use the css transitionend event to mark the finish of a transition
6870 * node.addEventListener('transitionend', done, false);
6871 * }}
6872 * ```
6873 */
6874 addEndListener: propTypes.func,
6875
6876 /**
6877 * Callback fired before the "entering" status is applied. An extra parameter
6878 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
6879 *
6880 * @type Function(node: HtmlElement, isAppearing: bool) -> void
6881 */
6882 onEnter: propTypes.func,
6883
6884 /**
6885 * Callback fired after the "entering" status is applied. An extra parameter
6886 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
6887 *
6888 * @type Function(node: HtmlElement, isAppearing: bool)
6889 */
6890 onEntering: propTypes.func,
6891
6892 /**
6893 * Callback fired after the "entered" status is applied. An extra parameter
6894 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
6895 *
6896 * @type Function(node: HtmlElement, isAppearing: bool) -> void
6897 */
6898 onEntered: propTypes.func,
6899
6900 /**
6901 * Callback fired before the "exiting" status is applied.
6902 *
6903 * @type Function(node: HtmlElement) -> void
6904 */
6905 onExit: propTypes.func,
6906
6907 /**
6908 * Callback fired after the "exiting" status is applied.
6909 *
6910 * @type Function(node: HtmlElement) -> void
6911 */
6912 onExiting: propTypes.func,
6913
6914 /**
6915 * Callback fired after the "exited" status is applied.
6916 *
6917 * @type Function(node: HtmlElement) -> void
6918 */
6919 onExited: propTypes.func // Name the function so it is clearer in the documentation
6920
6921 } ;
6922
6923 function noop$1() {}
6924
6925 Transition.defaultProps = {
6926 in: false,
6927 mountOnEnter: false,
6928 unmountOnExit: false,
6929 appear: false,
6930 enter: true,
6931 exit: true,
6932 onEnter: noop$1,
6933 onEntering: noop$1,
6934 onEntered: noop$1,
6935 onExit: noop$1,
6936 onExiting: noop$1,
6937 onExited: noop$1
6938 };
6939 Transition.UNMOUNTED = 0;
6940 Transition.EXITED = 1;
6941 Transition.ENTERING = 2;
6942 Transition.ENTERED = 3;
6943 Transition.EXITING = 4;
6944
6945 var _addClass = function addClass$1(node, classes) {
6946 return node && classes && classes.split(' ').forEach(function (c) {
6947 return addClass(node, c);
6948 });
6949 };
6950
6951 var removeClass$1 = function removeClass$1(node, classes) {
6952 return node && classes && classes.split(' ').forEach(function (c) {
6953 return removeClass(node, c);
6954 });
6955 };
6956 /**
6957 * A transition component inspired by the excellent
6958 * [ng-animate](http://www.nganimate.org/) library, you should use it if you're
6959 * using CSS transitions or animations. It's built upon the
6960 * [`Transition`](https://reactcommunity.org/react-transition-group/transition)
6961 * component, so it inherits all of its props.
6962 *
6963 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
6964 * and `exit` states of the transition. The first class is applied and then a
6965 * second `*-active` class in order to activate the CSS transition. After the
6966 * transition, matching `*-done` class names are applied to persist the
6967 * transition state.
6968 *
6969 * ```jsx
6970 * function App() {
6971 * const [inProp, setInProp] = useState(false);
6972 * return (
6973 * <div>
6974 * <CSSTransition in={inProp} timeout={200} classNames="my-node">
6975 * <div>
6976 * {"I'll receive my-node-* classes"}
6977 * </div>
6978 * </CSSTransition>
6979 * <button type="button" onClick={() => setInProp(true)}>
6980 * Click to Enter
6981 * </button>
6982 * </div>
6983 * );
6984 * }
6985 * ```
6986 *
6987 * When the `in` prop is set to `true`, the child component will first receive
6988 * the class `example-enter`, then the `example-enter-active` will be added in
6989 * the next tick. `CSSTransition` [forces a
6990 * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)
6991 * between before adding the `example-enter-active`. This is an important trick
6992 * because it allows us to transition between `example-enter` and
6993 * `example-enter-active` even though they were added immediately one after
6994 * another. Most notably, this is what makes it possible for us to animate
6995 * _appearance_.
6996 *
6997 * ```css
6998 * .my-node-enter {
6999 * opacity: 0;
7000 * }
7001 * .my-node-enter-active {
7002 * opacity: 1;
7003 * transition: opacity 200ms;
7004 * }
7005 * .my-node-exit {
7006 * opacity: 1;
7007 * }
7008 * .my-node-exit-active {
7009 * opacity: 0;
7010 * transition: opacity 200ms;
7011 * }
7012 * ```
7013 *
7014 * `*-active` classes represent which styles you want to animate **to**.
7015 *
7016 * **Note**: If you're using the
7017 * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)
7018 * prop, make sure to define styles for `.appear-*` classes as well.
7019 */
7020
7021
7022 var CSSTransition =
7023 /*#__PURE__*/
7024 function (_React$Component) {
7025 _inheritsLoose(CSSTransition, _React$Component);
7026
7027 function CSSTransition() {
7028 var _this;
7029
7030 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
7031 args[_key] = arguments[_key];
7032 }
7033
7034 _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
7035 _this.appliedClasses = {
7036 appear: {},
7037 enter: {},
7038 exit: {}
7039 };
7040
7041 _this.onEnter = function (node, appearing) {
7042 _this.removeClasses(node, 'exit');
7043
7044 _this.addClass(node, appearing ? 'appear' : 'enter', 'base');
7045
7046 if (_this.props.onEnter) {
7047 _this.props.onEnter(node, appearing);
7048 }
7049 };
7050
7051 _this.onEntering = function (node, appearing) {
7052 var type = appearing ? 'appear' : 'enter';
7053
7054 _this.addClass(node, type, 'active');
7055
7056 if (_this.props.onEntering) {
7057 _this.props.onEntering(node, appearing);
7058 }
7059 };
7060
7061 _this.onEntered = function (node, appearing) {
7062 var type = appearing ? 'appear' : 'enter';
7063
7064 _this.removeClasses(node, type);
7065
7066 _this.addClass(node, type, 'done');
7067
7068 if (_this.props.onEntered) {
7069 _this.props.onEntered(node, appearing);
7070 }
7071 };
7072
7073 _this.onExit = function (node) {
7074 _this.removeClasses(node, 'appear');
7075
7076 _this.removeClasses(node, 'enter');
7077
7078 _this.addClass(node, 'exit', 'base');
7079
7080 if (_this.props.onExit) {
7081 _this.props.onExit(node);
7082 }
7083 };
7084
7085 _this.onExiting = function (node) {
7086 _this.addClass(node, 'exit', 'active');
7087
7088 if (_this.props.onExiting) {
7089 _this.props.onExiting(node);
7090 }
7091 };
7092
7093 _this.onExited = function (node) {
7094 _this.removeClasses(node, 'exit');
7095
7096 _this.addClass(node, 'exit', 'done');
7097
7098 if (_this.props.onExited) {
7099 _this.props.onExited(node);
7100 }
7101 };
7102
7103 _this.getClassNames = function (type) {
7104 var classNames = _this.props.classNames;
7105 var isStringClassNames = typeof classNames === 'string';
7106 var prefix = isStringClassNames && classNames ? classNames + "-" : '';
7107 var baseClassName = isStringClassNames ? "" + prefix + type : classNames[type];
7108 var activeClassName = isStringClassNames ? baseClassName + "-active" : classNames[type + "Active"];
7109 var doneClassName = isStringClassNames ? baseClassName + "-done" : classNames[type + "Done"];
7110 return {
7111 baseClassName: baseClassName,
7112 activeClassName: activeClassName,
7113 doneClassName: doneClassName
7114 };
7115 };
7116
7117 return _this;
7118 }
7119
7120 var _proto = CSSTransition.prototype;
7121
7122 _proto.addClass = function addClass(node, type, phase) {
7123 var className = this.getClassNames(type)[phase + "ClassName"];
7124
7125 if (type === 'appear' && phase === 'done') {
7126 className += " " + this.getClassNames('enter').doneClassName;
7127 } // This is for to force a repaint,
7128 // which is necessary in order to transition styles when adding a class name.
7129
7130
7131 if (phase === 'active') {
7132 /* eslint-disable no-unused-expressions */
7133 node && node.scrollTop;
7134 }
7135
7136 this.appliedClasses[type][phase] = className;
7137
7138 _addClass(node, className);
7139 };
7140
7141 _proto.removeClasses = function removeClasses(node, type) {
7142 var _this$appliedClasses$ = this.appliedClasses[type],
7143 baseClassName = _this$appliedClasses$.base,
7144 activeClassName = _this$appliedClasses$.active,
7145 doneClassName = _this$appliedClasses$.done;
7146 this.appliedClasses[type] = {};
7147
7148 if (baseClassName) {
7149 removeClass$1(node, baseClassName);
7150 }
7151
7152 if (activeClassName) {
7153 removeClass$1(node, activeClassName);
7154 }
7155
7156 if (doneClassName) {
7157 removeClass$1(node, doneClassName);
7158 }
7159 };
7160
7161 _proto.render = function render() {
7162 var _this$props = this.props,
7163 _ = _this$props.classNames,
7164 props = _objectWithoutPropertiesLoose(_this$props, ["classNames"]);
7165
7166 return React__default.createElement(Transition, _extends({}, props, {
7167 onEnter: this.onEnter,
7168 onEntered: this.onEntered,
7169 onEntering: this.onEntering,
7170 onExit: this.onExit,
7171 onExiting: this.onExiting,
7172 onExited: this.onExited
7173 }));
7174 };
7175
7176 return CSSTransition;
7177 }(React__default.Component);
7178
7179 CSSTransition.defaultProps = {
7180 classNames: ''
7181 };
7182 CSSTransition.propTypes = _extends({}, Transition.propTypes, {
7183 /**
7184 * The animation classNames applied to the component as it appears, enters,
7185 * exits or has finished the transition. A single name can be provided and it
7186 * will be suffixed for each stage: e.g.
7187 *
7188 * `classNames="fade"` applies `fade-appear`, `fade-appear-active`,
7189 * `fade-appear-done`, `fade-enter`, `fade-enter-active`, `fade-enter-done`,
7190 * `fade-exit`, `fade-exit-active`, and `fade-exit-done`.
7191 *
7192 * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.
7193 * This allows you to define different behavior for when appearing is done and
7194 * when regular entering is done, using selectors like
7195 * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an
7196 * epic entrance animation when element first appears in the DOM using
7197 * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can
7198 * simply use `fade-enter-done` for defining both cases.
7199 *
7200 * Each individual classNames can also be specified independently like:
7201 *
7202 * ```js
7203 * classNames={{
7204 * appear: 'my-appear',
7205 * appearActive: 'my-active-appear',
7206 * appearDone: 'my-done-appear',
7207 * enter: 'my-enter',
7208 * enterActive: 'my-active-enter',
7209 * enterDone: 'my-done-enter',
7210 * exit: 'my-exit',
7211 * exitActive: 'my-active-exit',
7212 * exitDone: 'my-done-exit',
7213 * }}
7214 * ```
7215 *
7216 * If you want to set these classes using CSS Modules:
7217 *
7218 * ```js
7219 * import styles from './styles.css';
7220 * ```
7221 *
7222 * you might want to use camelCase in your CSS file, that way could simply
7223 * spread them instead of listing them one by one:
7224 *
7225 * ```js
7226 * classNames={{ ...styles }}
7227 * ```
7228 *
7229 * @type {string | {
7230 * appear?: string,
7231 * appearActive?: string,
7232 * appearDone?: string,
7233 * enter?: string,
7234 * enterActive?: string,
7235 * enterDone?: string,
7236 * exit?: string,
7237 * exitActive?: string,
7238 * exitDone?: string,
7239 * }}
7240 */
7241 classNames: classNamesShape,
7242
7243 /**
7244 * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is
7245 * applied.
7246 *
7247 * @type Function(node: HtmlElement, isAppearing: bool)
7248 */
7249 onEnter: propTypes.func,
7250
7251 /**
7252 * A `<Transition>` callback fired immediately after the 'enter-active' or
7253 * 'appear-active' class is applied.
7254 *
7255 * @type Function(node: HtmlElement, isAppearing: bool)
7256 */
7257 onEntering: propTypes.func,
7258
7259 /**
7260 * A `<Transition>` callback fired immediately after the 'enter' or
7261 * 'appear' classes are **removed** and the `done` class is added to the DOM node.
7262 *
7263 * @type Function(node: HtmlElement, isAppearing: bool)
7264 */
7265 onEntered: propTypes.func,
7266
7267 /**
7268 * A `<Transition>` callback fired immediately after the 'exit' class is
7269 * applied.
7270 *
7271 * @type Function(node: HtmlElement)
7272 */
7273 onExit: propTypes.func,
7274
7275 /**
7276 * A `<Transition>` callback fired immediately after the 'exit-active' is applied.
7277 *
7278 * @type Function(node: HtmlElement)
7279 */
7280 onExiting: propTypes.func,
7281
7282 /**
7283 * A `<Transition>` callback fired immediately after the 'exit' classes
7284 * are **removed** and the `exit-done` class is added to the DOM node.
7285 *
7286 * @type Function(node: HtmlElement)
7287 */
7288 onExited: propTypes.func
7289 }) ;
7290
7291 var __assign$e = (undefined && undefined.__assign) || function () {
7292 __assign$e = Object.assign || function(t) {
7293 for (var s, i = 1, n = arguments.length; i < n; i++) {
7294 s = arguments[i];
7295 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7296 t[p] = s[p];
7297 }
7298 return t;
7299 };
7300 return __assign$e.apply(this, arguments);
7301 };
7302 var __rest$9 = (undefined && undefined.__rest) || function (s, e) {
7303 var t = {};
7304 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
7305 t[p] = s[p];
7306 if (s != null && typeof Object.getOwnPropertySymbols === "function")
7307 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7308 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
7309 t[p[i]] = s[p[i]];
7310 }
7311 return t;
7312 };
7313 var block$5 = bem("rmd-toast");
7314 var DEFAULT_TOAST_CLASSNAMES = {
7315 appear: "rmd-toast--enter",
7316 appearActive: "rmd-toast--enter-active",
7317 enter: "rmd-toast--enter",
7318 enterActive: "rmd-toast--enter-active",
7319 enterDone: "",
7320 exit: "rmd-toast--exit",
7321 exitActive: "rmd-toast--exit-active",
7322 exitDone: "",
7323 };
7324 /**
7325 * This is a very low-level component that can be used to animate a new toast in
7326 * to a `Snackbar` as it is mainly just a wrapper of the `CSSTransition`
7327 * component. If you are using this component, it is generally recommended to
7328 * provide the `onEntered` callback as a function to start the hide visibility
7329 * timer and the `onExited` callback to remove the current toast from your
7330 * queue.
7331 */
7332 var Toast = React.forwardRef(function Toast(_a, ref) {
7333 var className = _a.className, children = _a.children, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, _b = _a.timeout, timeout = _b === void 0 ? 150 : _b, _c = _a.classNames, classNames = _c === void 0 ? DEFAULT_TOAST_CLASSNAMES : _c, _d = _a.action, action = _d === void 0 ? null : _d, _e = _a.stacked, stacked = _e === void 0 ? false : _e, _f = _a.twoLines, twoLines = _f === void 0 ? false : _f, visible = _a.visible, props = __rest$9(_a, ["className", "children", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "timeout", "classNames", "action", "stacked", "twoLines", "visible"]);
7334 return (React__default.createElement(CSSTransition, { in: visible, appear: true, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: timeout, classNames: classNames, mountOnEnter: true, unmountOnExit: true },
7335 React__default.createElement("div", __assign$e({}, props, { ref: ref, className: classnames(block$5({
7336 stacked: stacked,
7337 padded: !action || twoLines,
7338 "two-lines": twoLines,
7339 action: action,
7340 "action-2": action && twoLines,
7341 }), className) }),
7342 React__default.createElement("span", { className: block$5("message", { action: action }) }, children),
7343 action && (React__default.createElement("span", { className: block$5("action", { stacked: stacked }) }, action)))));
7344 });
7345 {
7346 try {
7347 var PropTypes$c = require("prop-types");
7348 Toast.propTypes = {
7349 visible: PropTypes$c.bool.isRequired,
7350 action: PropTypes$c.element,
7351 stacked: PropTypes$c.bool,
7352 twoLines: PropTypes$c.bool,
7353 className: PropTypes$c.string,
7354 classNames: PropTypes$c.oneOfType([
7355 PropTypes$c.string,
7356 PropTypes$c.shape({
7357 appear: PropTypes$c.string,
7358 appearActive: PropTypes$c.string,
7359 enter: PropTypes$c.string,
7360 enterActive: PropTypes$c.string,
7361 enterDone: PropTypes$c.string,
7362 exit: PropTypes$c.string,
7363 exitActive: PropTypes$c.string,
7364 exitDone: PropTypes$c.string,
7365 }),
7366 ]),
7367 timeout: PropTypes$c.oneOfType([
7368 PropTypes$c.number,
7369 PropTypes$c.shape({
7370 enter: PropTypes$c.number,
7371 exit: PropTypes$c.number,
7372 }),
7373 ]),
7374 children: PropTypes$c.node,
7375 onEnter: PropTypes$c.func,
7376 onEntering: PropTypes$c.func,
7377 onEntered: PropTypes$c.func,
7378 onExit: PropTypes$c.func,
7379 onExiting: PropTypes$c.func,
7380 onExited: PropTypes$c.func,
7381 };
7382 }
7383 catch (e) { }
7384 }
7385
7386 var DEFAULT_MESSAGE_QUEUE_TIMEOUT = 5000;
7387 /**
7388 * @private
7389 */
7390 var AddMessageContext = React.createContext(function () {
7391 throw new Error("Attempted to create a message without initializing the MessageQueue component.");
7392 });
7393 /**
7394 * @private
7395 */
7396 var MessageVisibilityContext = React.createContext(false);
7397 /**
7398 * This hook is used to add a message to the queue from anywhere in your app.
7399 * This should normally be used from click event handlers, but can also be
7400 * triggered with custom logic within components.
7401 */
7402 function useAddMessage() {
7403 return React.useContext(AddMessageContext);
7404 }
7405 /**
7406 * Gets the current message visibility to provide to the toast.
7407 *
7408 * @private
7409 */
7410 function useMessageVisibility() {
7411 return React.useContext(MessageVisibilityContext);
7412 }
7413 /**
7414 * @private
7415 */
7416 var MessageQueueActionsContext = React.createContext({
7417 popMessage: function () {
7418 throw new Error("Attempted to pop a message without initializing the MessageQueue component.");
7419 },
7420 hideMessage: function () {
7421 throw new Error("Attempted to hide a message within initializing the MessageQueue component.");
7422 },
7423 startTimer: function () {
7424 throw new Error("Attempted to start a message queue timer without initializing the MessageQueue component.");
7425 },
7426 stopTimer: function () {
7427 throw new Error("Attempted to stop a message queue timer without initializing the MessageQueue component.");
7428 },
7429 restartTimer: function () {
7430 throw new Error("Attempted to restart a message queue timer without initializing the MessageQueue component.");
7431 },
7432 resetQueue: function () {
7433 throw new Error("Attempted to reset the message queue timer without initializing the MessageQueue component.");
7434 },
7435 });
7436 /**
7437 * This hook exposes some of the lower level actions for handling a message
7438 * queue if advanced behavior is desired.
7439 */
7440 function useMessageQueueActions() {
7441 // I don't know how to type the createContext for a generic
7442 return React.useContext(MessageQueueActionsContext);
7443 }
7444 /**
7445 * @private
7446 */
7447 var MessageQueueContext = React.createContext([]);
7448 /**
7449 * This hook will allow you to get the current queue. This probably shouldn't be
7450 * used that much.
7451 */
7452 function useQueue() {
7453 return React.useContext(MessageQueueContext);
7454 }
7455
7456 var block$6 = bem("rmd-button");
7457 /**
7458 * Creates a button theme based on the button theming props. This is really just
7459 * used so that other elements like clickable `<div>`s or `<input type="file">`
7460 * can look like buttons.
7461 *
7462 * @param props An object containing the themeable button props to generate a
7463 * button theme className.
7464 * @return a string of class names to create an element with a button theme.
7465 */
7466 function buttonThemeClassNames(props) {
7467 var _a;
7468 var _b = props.theme, theme = _b === void 0 ? "clear" : _b, _c = props.themeType, themeType = _c === void 0 ? "flat" : _c, _d = props.buttonType, buttonType = _d === void 0 ? "text" : _d, disabled = props.disabled, className = props.className;
7469 var text = buttonType === "text";
7470 var icon = buttonType === "icon";
7471 var outline = themeType === "outline";
7472 var contained = themeType === "contained";
7473 var clear = theme === "clear";
7474 return classnames(block$6((_a = {
7475 text: text,
7476 icon: icon,
7477 disabled: disabled,
7478 contained: !disabled && contained,
7479 outline: outline
7480 },
7481 _a[theme] = !disabled && !clear && contained,
7482 _a["text-" + theme] = !disabled && !clear && !contained,
7483 _a["outline-" + theme] = !disabled && !clear && outline,
7484 _a)), className);
7485 }
7486
7487 /**
7488 * Checks if the ripple event should be ignored since it was bubbled
7489 * up from a child treeitem. I should find a better way to handle
7490 * this at some point.
7491 */
7492 function isBubbled(event) {
7493 return Array.from(event.currentTarget.querySelectorAll('[role="treeitem"]')).some(function (item) { return item.contains(event.target); });
7494 }
7495 /**
7496 * Gets the ripple event type based on the provided event.
7497 */
7498 function getType(event) {
7499 switch (event.type) {
7500 case "mousedown":
7501 case "mouseup":
7502 case "mouseleave":
7503 return "mouse";
7504 case "touchstart":
7505 case "touchmove":
7506 case "touchend":
7507 return "touch";
7508 case "keydown":
7509 case "keyup":
7510 return "keyboard";
7511 default:
7512 return "programmatic";
7513 }
7514 }
7515 /**
7516 * Checks if the provided event type is actually rippleable by ensuring:
7517 * - it is a mousedown event while not in touch mode and the left mouse was
7518 * clicked.
7519 * - it was a keydown event for either tab or space when spacebar clicks have not
7520 * been disabled
7521 * - it was a touchstart event
7522 */
7523 function isRippleable(event, disableSpacebarClick) {
7524 switch (event.type) {
7525 case "mousedown":
7526 return (document.querySelector(".rmd-states--touch") === null &&
7527 event.button === 0);
7528 case "keydown":
7529 return ((!disableSpacebarClick && event.key === " ") ||
7530 (event.key === "Enter" &&
7531 !/checkbox|radio/i.test(event.currentTarget.getAttribute("type") || "")));
7532 case "touchstart":
7533 case "click":
7534 return true;
7535 default:
7536 return false;
7537 }
7538 }
7539 function calcHypotenuse(a, b) {
7540 return Math.sqrt(a * a + b * b);
7541 }
7542 /**
7543 * Gets the current radius for a ripple based on the x and y page dimensions
7544 * as well as the size of the element.
7545 *
7546 * This is really just in a separate file so I can easily mock this and write
7547 * tests.
7548 */
7549 function getRadius(x, y, offsetWidth, offsetHeight) {
7550 return Math.max(calcHypotenuse(x, y), calcHypotenuse(offsetWidth - x, y), calcHypotenuse(offsetWidth - x, offsetHeight - y), calcHypotenuse(x, offsetHeight - y));
7551 }
7552 /**
7553 * Gets the ripple creation origin base on the provided event. When the event
7554 * type is for keyboards or triggered programmatically, the origin will
7555 * be the center of the target element. When the event is for touch or mouse,
7556 * the origin will be the location within the viewport where the user touched
7557 * or clicked the target element.
7558 */
7559 function getOrigin(event, element) {
7560 var _a;
7561 var type = getType(event);
7562 var offsetWidth = element.offsetWidth, offsetHeight = element.offsetHeight;
7563 var x;
7564 var y;
7565 if (type === "programmatic" || type === "keyboard") {
7566 x = offsetWidth / 2;
7567 y = offsetHeight / 2;
7568 }
7569 else {
7570 // if the event type is not programmatic, want to figure out exactly where in
7571 // the element to trigger the animation from. this can be determined by:
7572 // - getting the pageX and pageY of the mouse or touch event
7573 // - getting element's current position in the page
7574 var pageX = void 0;
7575 var pageY = void 0;
7576 if (type === "mouse") {
7577 (_a = event, pageX = _a.pageX, pageY = _a.pageY);
7578 }
7579 else {
7580 var touch = event.touches.item(0);
7581 (pageX = touch.pageX, pageY = touch.pageY);
7582 }
7583 var rect = element.getBoundingClientRect();
7584 // have to include the current page's scroll offset to the element's
7585 // bounding rect since the pageX and pageY from Events include the scroll
7586 // offset while the bounding rect is only based on viewport.
7587 x = pageX - (rect.left + window.pageXOffset);
7588 y = pageY - (rect.top + window.pageYOffset);
7589 }
7590 return { x: x, y: y };
7591 }
7592 /**
7593 * Creates a new ripple state based off the provided event type.
7594 */
7595 function createRippleState(event) {
7596 var element = findSizingContainer(event.currentTarget) || event.currentTarget;
7597 var offsetWidth = element.offsetWidth, offsetHeight = element.offsetHeight;
7598 var type = getType(event);
7599 var _a = getOrigin(event, element), x = _a.x, y = _a.y;
7600 var radius = getRadius(x, y, offsetWidth, offsetHeight);
7601 var size = radius * 2;
7602 return {
7603 startTime: Date.now(),
7604 style: {
7605 left: x - radius,
7606 top: y - radius,
7607 height: size,
7608 width: size,
7609 },
7610 type: type,
7611 holding: type !== "programmatic",
7612 exiting: false,
7613 entered: false,
7614 };
7615 }
7616
7617 var __assign$f = (undefined && undefined.__assign) || function () {
7618 __assign$f = Object.assign || function(t) {
7619 for (var s, i = 1, n = arguments.length; i < n; i++) {
7620 s = arguments[i];
7621 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7622 t[p] = s[p];
7623 }
7624 return t;
7625 };
7626 return __assign$f.apply(this, arguments);
7627 };
7628 var __spreadArrays$1 = (undefined && undefined.__spreadArrays) || function () {
7629 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
7630 for (var r = Array(s), k = 0, i = 0; i < il; i++)
7631 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
7632 r[k] = a[j];
7633 return r;
7634 };
7635 var CREATE = "CREATE";
7636 var CANCEL = "CANCEL";
7637 var RELEASE = "RELEASE";
7638 var ENTERED$1 = "ENTERED";
7639 var REMOVE = "REMOVE";
7640 /**
7641 * This function will create a simplified version of the create event
7642 * that only includes the parts that are needed to trigger a ripple.
7643 * This is really only required since `event.persist()` crashed a lot
7644 * when spamming the trigger events and it threw warnings when not
7645 * persisting the event.
7646 */
7647 function createRippleAction(event, disableSpacebarClick) {
7648 var _a = event, type = _a.type, target = _a.target, currentTarget = _a.currentTarget, touches = _a.touches, pageX = _a.pageX, pageY = _a.pageY, button = _a.button, key = _a.key;
7649 return {
7650 type: CREATE,
7651 disableSpacebarClick: disableSpacebarClick,
7652 event: {
7653 type: type,
7654 key: key,
7655 target: target,
7656 button: button,
7657 currentTarget: currentTarget,
7658 touches: touches,
7659 pageX: pageX,
7660 pageY: pageY,
7661 },
7662 };
7663 }
7664 function createRipple(state, event, disableSpacebarClick) {
7665 if (!isRippleable(event, disableSpacebarClick) || isBubbled(event)) {
7666 return state;
7667 }
7668 if (state.find(function (r) { return r.holding; }) ||
7669 (getType(event) !== "touch" && state.find(function (r) { return r.type === "touch"; }))) {
7670 // keyboard events are a bit different than the others since it is actually
7671 // spammable since the space or enter key can be held down which triggers click
7672 // events infinitely until they release. There's also the fun fact that mouse
7673 // events are triggered after touch events, so we need to make sure duplicate
7674 // ripples aren't created for these
7675 return state;
7676 }
7677 var ripple = createRippleState(event);
7678 return __spreadArrays$1(state, [ripple]);
7679 }
7680 function enteredRipple(state, ripple) {
7681 var i = state.findIndex(function (r) { return r === ripple; });
7682 if (i === -1 || ripple.exiting) {
7683 return state;
7684 }
7685 var nextState = state.slice();
7686 var exiting = !ripple.holding || Date.now() - ripple.startTime > 300;
7687 nextState[i] = __assign$f(__assign$f({}, ripple), { exiting: exiting, entered: true });
7688 return nextState;
7689 }
7690 function releaseRipple(state) {
7691 var i = state.findIndex(function (r) { return r.holding && !r.exiting; });
7692 if (i === -1) {
7693 return state;
7694 }
7695 var ripple = state[i];
7696 var exiting = ripple.entered || Date.now() - ripple.startTime > 300;
7697 var nextState = state.slice();
7698 nextState[i] = __assign$f(__assign$f({}, ripple), { exiting: exiting, holding: false });
7699 return nextState;
7700 }
7701 function removeRipple(state, ripple) {
7702 var i = state.findIndex(function (r) { return r.startTime === ripple.startTime; });
7703 if (i === -1) {
7704 return state;
7705 }
7706 var nextState = state.slice();
7707 nextState.splice(i, 1);
7708 return nextState;
7709 }
7710 function cancelRipples(state, ease) {
7711 if (ease) {
7712 return state.map(function (r) { return (__assign$f(__assign$f({}, r), { exiting: true, mounted: true, holding: false })); });
7713 }
7714 return [];
7715 }
7716 function reducer(state, action) {
7717 if (state === void 0) { state = []; }
7718 switch (action.type) {
7719 case CREATE:
7720 return createRipple(state, action.event, action.disableSpacebarClick);
7721 case RELEASE:
7722 return releaseRipple(state);
7723 case CANCEL:
7724 return cancelRipples(state, action.ease);
7725 case ENTERED$1:
7726 return enteredRipple(state, action.ripple);
7727 case REMOVE:
7728 return removeRipple(state, action.ripple);
7729 default:
7730 return state;
7731 }
7732 }
7733 /**
7734 * This hook creates memoized callbacks for each part of the ripple transition
7735 * as well as returning the current list of ripples.
7736 */
7737 function useRippleTransition(disableSpacebarClick) {
7738 if (disableSpacebarClick === void 0) { disableSpacebarClick = false; }
7739 var _a = React.useReducer(reducer, []), state = _a[0], dispatch = _a[1];
7740 var spacebarRef = useRefCache(disableSpacebarClick);
7741 var create = React.useCallback(function (event) {
7742 var disableSpacebarClick = spacebarRef.current;
7743 dispatch(createRippleAction(event, disableSpacebarClick));
7744 // disabled since useRefCache
7745 // eslint-disable-next-line react-hooks/exhaustive-deps
7746 }, []);
7747 var release = React.useCallback(function (event) {
7748 dispatch({ type: RELEASE, event: event });
7749 }, []);
7750 var entered = React.useCallback(function (ripple) {
7751 dispatch({ type: ENTERED$1, ripple: ripple });
7752 }, []);
7753 var cancel = React.useCallback(function (ease) {
7754 if (ease === void 0) { ease = false; }
7755 dispatch({ type: CANCEL, ease: ease });
7756 }, []);
7757 var remove = React.useCallback(function (ripple) {
7758 dispatch({ type: REMOVE, ripple: ripple });
7759 }, []);
7760 return { state: state, create: create, release: release, entered: entered, remove: remove, cancel: cancel };
7761 }
7762
7763 var DEFAULT_RIPPLE_CLASSNAMES = {
7764 enter: "rmd-ripple--animating",
7765 enterActive: "rmd-ripple--scaling",
7766 enterDone: "rmd-ripple--animating rmd-ripple--scaling",
7767 exit: "rmd-ripple--animating rmd-ripple--scaling",
7768 exitActive: "rmd-ripple--fading",
7769 };
7770 var DEFAULT_RIPPLE_TIMEOUT = {
7771 enter: 150,
7772 exit: 300,
7773 };
7774
7775 var StatesConfigContext = React.createContext({
7776 rippleTimeout: DEFAULT_RIPPLE_TIMEOUT,
7777 rippleClassNames: DEFAULT_RIPPLE_CLASSNAMES,
7778 disableRipple: false,
7779 disableProgrammaticRipple: false,
7780 });
7781 /**
7782 * A simple hook that can be used to get the Ripple context. This is used behind
7783 * the scenes for the Ripple component and _probably_ shouldn't be used anywhere
7784 * else. It's mostly used to just use the context defaults when the timeout or
7785 * classNames are undefined.
7786 */
7787 function useStatesConfigContext() {
7788 return React.useContext(StatesConfigContext);
7789 }
7790 /**
7791 * The `StatesConfig` component is a top-level context provider for the states
7792 * context configuration. It'll keep track of:
7793 *
7794 * - the current interaction mode of your user
7795 * - configuration for ripple effects
7796 * - disabling or enabling the ripple effects
7797 * - disabling or enabling the fix for color pollution
7798 */
7799 function StatesConfig(_a) {
7800 var _b = _a.rippleTimeout, rippleTimeout = _b === void 0 ? DEFAULT_RIPPLE_TIMEOUT : _b, _c = _a.rippleClassNames, rippleClassNames = _c === void 0 ? DEFAULT_RIPPLE_CLASSNAMES : _c, _d = _a.disableRipple, disableRipple = _d === void 0 ? false : _d, _e = _a.disableProgrammaticRipple, disableProgrammaticRipple = _e === void 0 ? false : _e, children = _a.children;
7801 var value = React.useMemo(function () { return ({
7802 rippleTimeout: rippleTimeout,
7803 rippleClassNames: rippleClassNames,
7804 disableRipple: disableRipple,
7805 disableProgrammaticRipple: disableProgrammaticRipple,
7806 }); }, [rippleTimeout, rippleClassNames, disableRipple, disableProgrammaticRipple]);
7807 return (React__default.createElement(StatesConfigContext.Provider, { value: value }, children));
7808 }
7809 {
7810 try {
7811 var PropTypes$d = require("prop-types");
7812 StatesConfig.propTypes = {
7813 rippleTimeout: PropTypes$d.oneOfType([
7814 PropTypes$d.number,
7815 PropTypes$d.shape({
7816 enter: PropTypes$d.number,
7817 exit: PropTypes$d.number,
7818 }),
7819 ]),
7820 rippleClassNames: PropTypes$d.oneOfType([
7821 PropTypes$d.string,
7822 PropTypes$d.shape({
7823 enter: PropTypes$d.string,
7824 enterActive: PropTypes$d.string,
7825 enterDone: PropTypes$d.string,
7826 exit: PropTypes$d.string,
7827 exitActive: PropTypes$d.string,
7828 }),
7829 ]),
7830 disableRipple: PropTypes$d.bool,
7831 disableProgrammaticRipple: PropTypes$d.bool,
7832 children: PropTypes$d.node.isRequired,
7833 };
7834 }
7835 catch (e) { }
7836 }
7837
7838 /* eslint-disable react/prop-types */
7839 var Ripple = function (props) {
7840 var className = props.className, propClassNames = props.classNames, propTimeout = props.timeout, ripple = props.ripple, entered = props.entered, exited = props.exited;
7841 var exiting = ripple.exiting, style = ripple.style;
7842 var timeout = propTimeout;
7843 var classNames = propClassNames;
7844 var context = useStatesConfigContext();
7845 if (typeof timeout === "undefined" || typeof classNames === "undefined") {
7846 if (typeof timeout === "undefined") {
7847 timeout = context.rippleTimeout;
7848 }
7849 if (typeof classNames === "undefined") {
7850 classNames = context.rippleClassNames;
7851 }
7852 }
7853 var ref = useRefCache({ ripple: ripple, entered: entered, exited: exited });
7854 var onEntered = React.useCallback(function () {
7855 var _a = ref.current, ripple = _a.ripple, entered = _a.entered;
7856 entered(ripple);
7857 // disabled since useRefCache
7858 // eslint-disable-next-line react-hooks/exhaustive-deps
7859 }, []);
7860 var onExited = React.useCallback(function () {
7861 var _a = ref.current, ripple = _a.ripple, exited = _a.exited;
7862 exited(ripple);
7863 // disabled since useRefCache
7864 // eslint-disable-next-line react-hooks/exhaustive-deps
7865 }, []);
7866 return (React__default.createElement(CSSTransition, { in: !exiting, appear: true, classNames: classNames, timeout: timeout, onEntered: onEntered, onExited: onExited },
7867 React__default.createElement("span", { style: style, className: classnames("rmd-ripple", className) })));
7868 };
7869
7870 /* eslint-disable react/prop-types */
7871 var RippleContainer = function (_a) {
7872 var ripples = _a.ripples, className = _a.className, rippleClassName = _a.rippleClassName, timeout = _a.timeout, classNames = _a.classNames, entered = _a.entered, exited = _a.exited;
7873 return (React__default.createElement("span", { className: classnames("rmd-ripple-container", className) }, ripples.map(function (ripple) { return (React__default.createElement(Ripple, { key: ripple.startTime, ripple: ripple, className: rippleClassName, entered: entered, exited: exited, timeout: timeout, classNames: classNames })); })));
7874 };
7875
7876 var __assign$g = (undefined && undefined.__assign) || function () {
7877 __assign$g = Object.assign || function(t) {
7878 for (var s, i = 1, n = arguments.length; i < n; i++) {
7879 s = arguments[i];
7880 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7881 t[p] = s[p];
7882 }
7883 return t;
7884 };
7885 return __assign$g.apply(this, arguments);
7886 };
7887 /**
7888 * This hook is used to create all the event handlers required for
7889 * creating ripples on an element. Each handler will be memoized and
7890 * merged with any provided event handlers of the same type. If the
7891 * ripple effect is disabled, the provided event handlers will be
7892 * returned instead.
7893 */
7894 function useRippleHandlers(_a) {
7895 var create = _a.create, release = _a.release, cancel = _a.cancel, _b = _a.handlers, handlers = _b === void 0 ? {} : _b, _c = _a.disabled, propDisabled = _c === void 0 ? false : _c, _d = _a.disableRipple, disableRipple = _d === void 0 ? false : _d, _e = _a.disableProgrammaticRipple, disableProgrammaticRipple = _e === void 0 ? false : _e;
7896 var disabled = propDisabled || disableRipple;
7897 var ref = useRefCache(__assign$g(__assign$g({}, handlers), { disableProgrammaticRipple: disableProgrammaticRipple }));
7898 // some OS/browser don't actually focus buttons/elements that are focusable after a click
7899 // event which causes a double ripple effect. This ref is used to disable the programmatic
7900 // ripple in these cases.
7901 var disableProgrammatic = React.useRef(false);
7902 var onKeyDown = React.useCallback(function (event) {
7903 var callback = ref.current.onKeyDown;
7904 if (callback) {
7905 callback(event);
7906 }
7907 create(event);
7908 },
7909 // disabled since useRefCache
7910 // eslint-disable-next-line react-hooks/exhaustive-deps
7911 [create]);
7912 var onKeyUp = React.useCallback(function (event) {
7913 var callback = ref.current.onKeyUp;
7914 if (callback) {
7915 callback(event);
7916 }
7917 release(event);
7918 },
7919 // disabled since useRefCache
7920 // eslint-disable-next-line react-hooks/exhaustive-deps
7921 [release]);
7922 var onMouseDown = React.useCallback(function (event) {
7923 var callback = ref.current.onMouseDown;
7924 if (callback) {
7925 callback(event);
7926 }
7927 create(event);
7928 disableProgrammatic.current = true;
7929 },
7930 // disabled since useRefCache
7931 // eslint-disable-next-line react-hooks/exhaustive-deps
7932 [create]);
7933 var onMouseUp = React.useCallback(function (event) {
7934 var callback = ref.current.onMouseUp;
7935 if (callback) {
7936 callback(event);
7937 }
7938 release(event);
7939 },
7940 // disabled since useRefCache
7941 // eslint-disable-next-line react-hooks/exhaustive-deps
7942 [release]);
7943 var onMouseLeave = React.useCallback(function (event) {
7944 var callback = ref.current.onMouseLeave;
7945 if (callback) {
7946 callback(event);
7947 }
7948 cancel(true);
7949 },
7950 // disabled since useRefCache
7951 // eslint-disable-next-line react-hooks/exhaustive-deps
7952 [cancel]);
7953 var onTouchStart = React.useCallback(function (event) {
7954 var callback = ref.current.onTouchStart;
7955 if (callback) {
7956 callback(event);
7957 }
7958 create(event);
7959 },
7960 // disabled since useRefCache
7961 // eslint-disable-next-line react-hooks/exhaustive-deps
7962 [create]);
7963 var onTouchMove = React.useCallback(function (event) {
7964 var callback = ref.current.onTouchMove;
7965 if (callback) {
7966 callback(event);
7967 }
7968 cancel(false);
7969 },
7970 // disabled since useRefCache
7971 // eslint-disable-next-line react-hooks/exhaustive-deps
7972 [cancel]);
7973 var onTouchEnd = React.useCallback(function (event) {
7974 var callback = ref.current.onTouchEnd;
7975 if (callback) {
7976 callback(event);
7977 }
7978 release(event);
7979 },
7980 // disabled since useRefCache
7981 // eslint-disable-next-line react-hooks/exhaustive-deps
7982 [release]);
7983 var onClick = React.useCallback(function (event) {
7984 var _a = ref.current, callback = _a.onClick, disableProgrammaticRipple = _a.disableProgrammaticRipple;
7985 if (callback) {
7986 callback(event);
7987 }
7988 // when a click event is triggered and the current active element is not
7989 // the event target, we know it was a true programmatic event and should
7990 // trigger a ripple for it.
7991 if (disableProgrammaticRipple ||
7992 document.activeElement === event.currentTarget ||
7993 disableProgrammatic.current) {
7994 disableProgrammatic.current = false;
7995 return;
7996 }
7997 create(event);
7998 },
7999 // disabled since useRefCache
8000 // eslint-disable-next-line react-hooks/exhaustive-deps
8001 [create]);
8002 return {
8003 onKeyDown: disabled ? handlers.onKeyDown : onKeyDown,
8004 onKeyUp: disabled ? handlers.onKeyUp : onKeyUp,
8005 onMouseDown: disabled ? handlers.onMouseDown : onMouseDown,
8006 onMouseUp: disabled ? handlers.onMouseUp : onMouseUp,
8007 onMouseLeave: disabled ? handlers.onMouseLeave : onMouseLeave,
8008 onTouchStart: disabled ? handlers.onTouchStart : onTouchStart,
8009 onTouchMove: disabled ? handlers.onTouchMove : onTouchMove,
8010 onTouchEnd: disabled ? handlers.onTouchEnd : onTouchEnd,
8011 onClick: disabled || disableProgrammaticRipple ? handlers.onClick : onClick,
8012 };
8013 }
8014
8015 var __assign$h = (undefined && undefined.__assign) || function () {
8016 __assign$h = Object.assign || function(t) {
8017 for (var s, i = 1, n = arguments.length; i < n; i++) {
8018 s = arguments[i];
8019 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8020 t[p] = s[p];
8021 }
8022 return t;
8023 };
8024 return __assign$h.apply(this, arguments);
8025 };
8026 var __rest$a = (undefined && undefined.__rest) || function (s, e) {
8027 var t = {};
8028 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8029 t[p] = s[p];
8030 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8031 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8032 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8033 t[p[i]] = s[p[i]];
8034 }
8035 return t;
8036 };
8037 /**
8038 * A hook that will return an object containing the ripples element
8039 * and an object of event handlers to apply to an element to trigger
8040 * the ripple effects.
8041 */
8042 function useRipples(_a) {
8043 var rippleTimeout = _a.rippleTimeout, rippleClassNames = _a.rippleClassNames, rippleContainerClassName = _a.rippleContainerClassName, rippleClassName = _a.rippleClassName, disableRipple = _a.disableRipple, disableSpacebarClick = _a.disableSpacebarClick, options = __rest$a(_a, ["rippleTimeout", "rippleClassNames", "rippleContainerClassName", "rippleClassName", "disableRipple", "disableSpacebarClick"]);
8044 var _b = useRippleTransition(disableSpacebarClick), create = _b.create, state = _b.state, release = _b.release, entered = _b.entered, remove = _b.remove, cancel = _b.cancel;
8045 var handlers = useRippleHandlers(__assign$h({ create: create,
8046 release: release,
8047 cancel: cancel,
8048 disableRipple: disableRipple }, options));
8049 return {
8050 handlers: handlers,
8051 ripples: disableRipple ? null : (React__default.createElement(RippleContainer, { key: "ripples", ripples: state, className: rippleContainerClassName, rippleClassName: rippleClassName, timeout: rippleTimeout, classNames: rippleClassNames, entered: entered, exited: remove })),
8052 };
8053 }
8054
8055 /**
8056 * This small utility function will create an onKeyDown handler that allows the
8057 * user to "click" an element with the keyboard via Enter or Space.
8058 */
8059 function useKeyboardClickPolyfill(_a) {
8060 var _b = _a === void 0 ? {} : _a, onKeyDown = _b.onKeyDown, _c = _b.disabled, disabled = _c === void 0 ? false : _c, _d = _b.disableEnterClick, disableEnterClick = _d === void 0 ? false : _d, _e = _b.disableSpacebarClick, disableSpacebarClick = _e === void 0 ? false : _e;
8061 var ref = useRefCache({
8062 onKeyDown: onKeyDown,
8063 disableSpacebarClick: disableSpacebarClick,
8064 disableEnterClick: disableEnterClick,
8065 });
8066 var handleKeyDown = React.useCallback(function (event) {
8067 var _a = ref.current, onKeyDown = _a.onKeyDown, disableSpacebarClick = _a.disableSpacebarClick, disableEnterClick = _a.disableEnterClick;
8068 if (onKeyDown) {
8069 onKeyDown(event);
8070 }
8071 var isSpace = event.key === " ";
8072 var isEnter = event.key === "Enter";
8073 var currentTarget = event.currentTarget;
8074 var tagName = currentTarget.tagName;
8075 if ((!isSpace && !isEnter) ||
8076 (isSpace && disableSpacebarClick) ||
8077 (isEnter && disableEnterClick) ||
8078 // buttons and textareas, and inputs shouldn't be polyfilled
8079 /BUTTON|TEXTAREA|INPUT/.test(tagName) ||
8080 // native links don't click on space
8081 (isSpace && tagName === "A")) {
8082 return;
8083 }
8084 if (isSpace) {
8085 // prevent default behavior of page scrolling
8086 event.preventDefault();
8087 }
8088 // don't want parent keydown events to be triggered since this should now
8089 // be a "click" event instead.
8090 event.stopPropagation();
8091 event.currentTarget.click();
8092 // disabled since useRefCache
8093 // eslint-disable-next-line react-hooks/exhaustive-deps
8094 }, []);
8095 return disabled ? onKeyDown : handleKeyDown;
8096 }
8097
8098 var __assign$i = (undefined && undefined.__assign) || function () {
8099 __assign$i = Object.assign || function(t) {
8100 for (var s, i = 1, n = arguments.length; i < n; i++) {
8101 s = arguments[i];
8102 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8103 t[p] = s[p];
8104 }
8105 return t;
8106 };
8107 return __assign$i.apply(this, arguments);
8108 };
8109 /**
8110 * This is a different version of the useRippleStates that will allow you to
8111 * know when a component is being pressed by the user. This is really just a
8112 * fallback for when the ripples are disabled.
8113 *
8114 * This will return an object containing the current pressed state of the
8115 * element as well as all the merged eventHandlers required to trigger the
8116 * different states.
8117 *
8118 * NOTE: Unlike the ripple effect, this pressed states will not be triggered
8119 * from a programmatic click event.
8120 */
8121 function usePressedStates(_a) {
8122 var _b = _a === void 0 ? {} : _a, _c = _b.handlers, handlers = _c === void 0 ? {} : _c, _d = _b.disableSpacebarClick, disableSpacebarClick = _d === void 0 ? false : _d;
8123 var _e = React.useState(false), pressed = _e[0], setPressed = _e[1];
8124 var ref = useRefCache(__assign$i(__assign$i({}, handlers), { pressed: pressed }));
8125 var handleKeyDown = React.useCallback(function (event) {
8126 var _a = ref.current, onKeyDown = _a.onKeyDown, pressed = _a.pressed;
8127 if (onKeyDown) {
8128 onKeyDown(event);
8129 }
8130 var key = event.key;
8131 if (!pressed &&
8132 (key === "Enter" || (!disableSpacebarClick && key === " "))) {
8133 setPressed(true);
8134 }
8135 },
8136 // disabled since useRefCache for ref
8137 // eslint-disable-next-line react-hooks/exhaustive-deps
8138 [disableSpacebarClick]);
8139 var handleKeyUp = React.useCallback(function (event) {
8140 var _a = ref.current, onKeyUp = _a.onKeyUp, pressed = _a.pressed;
8141 if (onKeyUp) {
8142 onKeyUp(event);
8143 }
8144 if (pressed) {
8145 setPressed(false);
8146 }
8147 // disabled since useRefCache for ref
8148 // eslint-disable-next-line react-hooks/exhaustive-deps
8149 }, []);
8150 var handleMouseDown = React.useCallback(function (event) {
8151 var _a = ref.current, onMouseDown = _a.onMouseDown, pressed = _a.pressed;
8152 if (onMouseDown) {
8153 onMouseDown(event);
8154 }
8155 if (!pressed && event.button === 0 && !isBubbled(event)) {
8156 setPressed(true);
8157 }
8158 // disabled since useRefCache for ref
8159 // eslint-disable-next-line react-hooks/exhaustive-deps
8160 }, []);
8161 var handleMouseUp = React.useCallback(function (event) {
8162 var _a = ref.current, onMouseUp = _a.onMouseUp, pressed = _a.pressed;
8163 if (onMouseUp) {
8164 onMouseUp(event);
8165 }
8166 if (pressed) {
8167 setPressed(false);
8168 }
8169 // disabled since useRefCache for ref
8170 // eslint-disable-next-line react-hooks/exhaustive-deps
8171 }, []);
8172 var handleMouseLeave = React.useCallback(function (event) {
8173 var _a = ref.current, onMouseLeave = _a.onMouseLeave, pressed = _a.pressed;
8174 if (onMouseLeave) {
8175 onMouseLeave(event);
8176 }
8177 if (pressed) {
8178 setPressed(false);
8179 }
8180 // disabled since useRefCache for ref
8181 // eslint-disable-next-line react-hooks/exhaustive-deps
8182 }, []);
8183 var handleTouchStart = React.useCallback(function (event) {
8184 var _a = ref.current, onTouchStart = _a.onTouchStart, pressed = _a.pressed;
8185 if (onTouchStart) {
8186 onTouchStart(event);
8187 }
8188 if (!pressed && !isBubbled(event)) {
8189 setPressed(true);
8190 }
8191 // disabled since useRefCache for ref
8192 // eslint-disable-next-line react-hooks/exhaustive-deps
8193 }, []);
8194 var handleTouchMove = React.useCallback(function (event) {
8195 var _a = ref.current, onTouchMove = _a.onTouchMove, pressed = _a.pressed;
8196 if (onTouchMove) {
8197 onTouchMove(event);
8198 }
8199 if (pressed) {
8200 setPressed(false);
8201 }
8202 // disabled since useRefCache for ref
8203 // eslint-disable-next-line react-hooks/exhaustive-deps
8204 }, []);
8205 var handleTouchEnd = React.useCallback(function (event) {
8206 var _a = ref.current, onTouchEnd = _a.onTouchEnd, pressed = _a.pressed;
8207 if (onTouchEnd) {
8208 onTouchEnd(event);
8209 }
8210 if (pressed) {
8211 setPressed(false);
8212 }
8213 // disabled since useRefCache for ref
8214 // eslint-disable-next-line react-hooks/exhaustive-deps
8215 }, []);
8216 return {
8217 pressed: pressed,
8218 handlers: {
8219 onKeyDown: handleKeyDown,
8220 onKeyUp: handleKeyUp,
8221 onMouseDown: handleMouseDown,
8222 onMouseUp: handleMouseUp,
8223 onMouseLeave: handleMouseLeave,
8224 onTouchStart: handleTouchStart,
8225 onTouchMove: handleTouchMove,
8226 onTouchEnd: handleTouchEnd,
8227 },
8228 };
8229 }
8230
8231 var __assign$j = (undefined && undefined.__assign) || function () {
8232 __assign$j = Object.assign || function(t) {
8233 for (var s, i = 1, n = arguments.length; i < n; i++) {
8234 s = arguments[i];
8235 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8236 t[p] = s[p];
8237 }
8238 return t;
8239 };
8240 return __assign$j.apply(this, arguments);
8241 };
8242 /**
8243 * This is probably one of the most useful hook in react-md. Any functional
8244 * component component that uses this will gain all the different interaction
8245 * states based on the states context or any custom overrides.
8246 *
8247 * The main interaction state is the "ripple" effect when an element has been
8248 * clicked either via keyboard, mouse, or touch.
8249 *
8250 * If the ripple effect is disabled, it will fallback to "polyfilling"/fixing
8251 * the `:pressed` pseudo-selector state for items so that a different
8252 * background-color opacity is applied instead of the entire ripple effect. This
8253 * is polyfilled since the `:pressed` state does not work on anything other than
8254 * buttons and links by default and it is not triggered on "valid" keyboard
8255 * clicks with a spacebar.
8256 *
8257 * Finally, the element that uses this hook will gain a focused className
8258 * whenever it gains keyboard focus only.
8259 *
8260 * To get all these interaction states to work correctly, this hook returns an
8261 * object containing:
8262 *
8263 * - `handlers`- an object of event handlers that must be passed down to your
8264 * component to get the different interaction states. All the event handlers
8265 * are automatically merged with any `handlers` that are provided to this hook
8266 * so they can all be called if needed.
8267 * - `className` - the current class name for the element
8268 * - `ripples` - a renderable element that displays the ripple effects. This
8269 * will be `null` when ripples are disabled.
8270 *
8271 * @typeparam E The element type for the component being wrapped. This is really
8272 * just used to "better type" the event handlers.
8273 */
8274 function useInteractionStates(options) {
8275 if (options === void 0) { options = {}; }
8276 var disabled = options.disabled, rippleClassName = options.rippleClassName, rippleContainerClassName = options.rippleContainerClassName, _a = options.disableSpacebarClick, disableSpacebarClick = _a === void 0 ? false : _a, _b = options.disablePressedFallback, disablePressedFallback = _b === void 0 ? false : _b, _c = options.enablePressedAndRipple, enablePressedAndRipple = _c === void 0 ? false : _c, _d = options.disableEnterClick, disableEnterClick = _d === void 0 ? false : _d;
8277 var className = options.className, disableRipple = options.disableRipple, disableProgrammaticRipple = options.disableProgrammaticRipple, rippleTimeout = options.rippleTimeout, rippleClassNames = options.rippleClassNames;
8278 // populate undefined props from their context values
8279 var context = useStatesConfigContext();
8280 if (typeof disableRipple === "undefined") {
8281 (disableRipple = context.disableRipple);
8282 }
8283 if (typeof disableProgrammaticRipple === "undefined") {
8284 (disableProgrammaticRipple = context.disableProgrammaticRipple);
8285 }
8286 if (typeof rippleTimeout === "undefined") {
8287 (rippleTimeout = context.rippleTimeout);
8288 }
8289 if (typeof rippleClassNames === "undefined") {
8290 (rippleClassNames = context.rippleClassNames);
8291 }
8292 var handlers = null;
8293 var ripples = null;
8294 var ripplesResult = useRipples(__assign$j(__assign$j({}, options), { disableSpacebarClick: disableSpacebarClick,
8295 disableRipple: disableRipple,
8296 disableProgrammaticRipple: disableProgrammaticRipple,
8297 rippleTimeout: rippleTimeout,
8298 rippleClassName: rippleClassName,
8299 rippleContainerClassName: rippleContainerClassName }));
8300 if (!disableRipple) {
8301 (ripples = ripplesResult.ripples, handlers = ripplesResult.handlers);
8302 }
8303 var pressedResult = usePressedStates(__assign$j(__assign$j({}, options), { handlers: handlers || options.handlers, disableSpacebarClick: disableSpacebarClick }));
8304 if (enablePressedAndRipple || (disableRipple && !disablePressedFallback)) {
8305 (handlers = pressedResult.handlers);
8306 className = classnames(className, { "rmd-states--pressed": pressedResult.pressed });
8307 }
8308 handlers = handlers || options.handlers || {};
8309 handlers.onKeyDown = useKeyboardClickPolyfill({
8310 disabled: disabled,
8311 disableEnterClick: disableEnterClick,
8312 disableSpacebarClick: disableSpacebarClick,
8313 onKeyDown: handlers.onKeyDown,
8314 });
8315 return {
8316 ripples: ripples,
8317 className: className,
8318 handlers: handlers,
8319 };
8320 }
8321
8322 var __assign$k = (undefined && undefined.__assign) || function () {
8323 __assign$k = Object.assign || function(t) {
8324 for (var s, i = 1, n = arguments.length; i < n; i++) {
8325 s = arguments[i];
8326 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8327 t[p] = s[p];
8328 }
8329 return t;
8330 };
8331 return __assign$k.apply(this, arguments);
8332 };
8333 var __rest$b = (undefined && undefined.__rest) || function (s, e) {
8334 var t = {};
8335 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8336 t[p] = s[p];
8337 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8338 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8339 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8340 t[p[i]] = s[p[i]];
8341 }
8342 return t;
8343 };
8344 var styles = bem("rmd-fab");
8345 /**
8346 * This is a simple wrapper for the `Button` component that will conditionally
8347 * render the `Button` in a `<span>` to render as a floating action button.
8348 *
8349 * Note: You probably don't really want to use this externally since this is
8350 * really just required so that the click and focus states behavior will still
8351 * be contained within the button. The states behavior requires
8352 * `position: relative` to work while changing into a floating action button
8353 * makes it `position: fixed`.
8354 */
8355 var FAB = React.forwardRef(function FAB(_a, ref) {
8356 var _b = _a.position, position = _b === void 0 ? null : _b, children = _a.children, className = _a.className, props = __rest$b(_a, ["position", "children", "className"]);
8357 if (!position) {
8358 return React__default.createElement(React__default.Fragment, null, children);
8359 }
8360 return (React__default.createElement("span", __assign$k({}, props, { ref: ref, className: classnames(styles({
8361 tl: position === "top-left",
8362 tr: position === "top-right",
8363 bl: position === "bottom-left",
8364 br: position === "bottom-right",
8365 }), className) }), children));
8366 });
8367
8368 var __assign$l = (undefined && undefined.__assign) || function () {
8369 __assign$l = Object.assign || function(t) {
8370 for (var s, i = 1, n = arguments.length; i < n; i++) {
8371 s = arguments[i];
8372 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8373 t[p] = s[p];
8374 }
8375 return t;
8376 };
8377 return __assign$l.apply(this, arguments);
8378 };
8379 var __rest$c = (undefined && undefined.__rest) || function (s, e) {
8380 var t = {};
8381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8382 t[p] = s[p];
8383 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8384 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8385 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8386 t[p[i]] = s[p[i]];
8387 }
8388 return t;
8389 };
8390 var Button = React.forwardRef(function Button(_a, ref) {
8391 var _b = _a.type, type = _b === void 0 ? "button" : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.floating, floating = _d === void 0 ? null : _d, floatingProps = _a.floatingProps, _e = _a.theme, theme = _e === void 0 ? floating ? "secondary" : "clear" : _e, _f = _a.themeType, themeType = _f === void 0 ? floating ? "contained" : "flat" : _f, _g = _a.buttonType, buttonType = _g === void 0 ? floating ? "icon" : "text" : _g, propClassName = _a.className, children = _a.children, disableRipple = _a.disableRipple, disableProgrammaticRipple = _a.disableProgrammaticRipple, rippleTimeout = _a.rippleTimeout, rippleClassNames = _a.rippleClassNames, rippleClassName = _a.rippleClassName, rippleContainerClassName = _a.rippleContainerClassName, propEnablePressedAndRipple = _a.enablePressedAndRipple, props = __rest$c(_a, ["type", "disabled", "floating", "floatingProps", "theme", "themeType", "buttonType", "className", "children", "disableRipple", "disableProgrammaticRipple", "rippleTimeout", "rippleClassNames", "rippleClassName", "rippleContainerClassName", "enablePressedAndRipple"]);
8392 var enablePressedAndRipple = typeof propEnablePressedAndRipple === "boolean"
8393 ? propEnablePressedAndRipple
8394 : themeType === "contained";
8395 var _h = useInteractionStates({
8396 handlers: props,
8397 className: buttonThemeClassNames({
8398 theme: theme,
8399 themeType: themeType,
8400 buttonType: buttonType,
8401 disabled: disabled,
8402 className: propClassName,
8403 }),
8404 disabled: disabled,
8405 disableRipple: disableRipple,
8406 disableProgrammaticRipple: disableProgrammaticRipple,
8407 rippleTimeout: rippleTimeout,
8408 rippleClassNames: rippleClassNames,
8409 rippleClassName: rippleClassName,
8410 rippleContainerClassName: rippleContainerClassName,
8411 enablePressedAndRipple: enablePressedAndRipple,
8412 }), ripples = _h.ripples, className = _h.className, handlers = _h.handlers;
8413 return (React__default.createElement(FAB, __assign$l({ position: floating }, floatingProps),
8414 React__default.createElement("button", __assign$l({}, props, handlers, { ref: ref, type: type, className: className, disabled: disabled }),
8415 children,
8416 ripples)));
8417 });
8418 {
8419 try {
8420 var PropTypes$e = require("prop-types");
8421 Button.propTypes = {
8422 type: PropTypes$e.oneOf(["button", "reset", "submit"]),
8423 className: PropTypes$e.string,
8424 theme: PropTypes$e.oneOf([
8425 "clear",
8426 "primary",
8427 "secondary",
8428 "warning",
8429 "error",
8430 ]),
8431 themeType: PropTypes$e.oneOf(["flat", "outline", "contained"]),
8432 buttonType: PropTypes$e.oneOf(["text", "icon"]),
8433 disabled: PropTypes$e.bool,
8434 children: PropTypes$e.node,
8435 disableRipple: PropTypes$e.bool,
8436 disableProgrammaticRipple: PropTypes$e.bool,
8437 rippleTimeout: PropTypes$e.oneOfType([
8438 PropTypes$e.number,
8439 PropTypes$e.shape({
8440 appear: PropTypes$e.number,
8441 enter: PropTypes$e.number,
8442 exit: PropTypes$e.number,
8443 }),
8444 ]),
8445 rippleClassNames: PropTypes$e.oneOfType([
8446 PropTypes$e.string,
8447 PropTypes$e.shape({
8448 appear: PropTypes$e.string,
8449 appearActive: PropTypes$e.string,
8450 enter: PropTypes$e.string,
8451 enterActive: PropTypes$e.string,
8452 enterDone: PropTypes$e.string,
8453 exit: PropTypes$e.string,
8454 exitActive: PropTypes$e.string,
8455 exitDone: PropTypes$e.string,
8456 }),
8457 ]),
8458 rippleClassName: PropTypes$e.string,
8459 rippleContainerClassName: PropTypes$e.string,
8460 enablePressedAndRipple: PropTypes$e.bool,
8461 floating: PropTypes$e.oneOf([
8462 "top-left",
8463 "top-right",
8464 "bottom-left",
8465 "bottom-right",
8466 ]),
8467 floatingProps: PropTypes$e.object,
8468 };
8469 }
8470 catch (e) { }
8471 }
8472
8473 var __assign$m = (undefined && undefined.__assign) || function () {
8474 __assign$m = Object.assign || function(t) {
8475 for (var s, i = 1, n = arguments.length; i < n; i++) {
8476 s = arguments[i];
8477 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8478 t[p] = s[p];
8479 }
8480 return t;
8481 };
8482 return __assign$m.apply(this, arguments);
8483 };
8484 var __rest$d = (undefined && undefined.__rest) || function (s, e) {
8485 var t = {};
8486 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8487 t[p] = s[p];
8488 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8489 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8490 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8491 t[p[i]] = s[p[i]];
8492 }
8493 return t;
8494 };
8495 /**
8496 * The unstyled button is a really simple button element that resets the default
8497 * browser button styles into a clear clickable element.
8498 */
8499 var UnstyledButton = React.forwardRef(function UnstyledButton(_a, ref) {
8500 var className = _a.className, children = _a.children, props = __rest$d(_a, ["className", "children"]);
8501 return (React__default.createElement("button", __assign$m({}, props, { type: "button", ref: ref, className: classnames("rmd-button-unstyled", className) }), children));
8502 });
8503 {
8504 try {
8505 var PropTypes$f = require("prop-types");
8506 UnstyledButton.propTypes = {
8507 className: PropTypes$f.string,
8508 disabled: PropTypes$f.bool,
8509 children: PropTypes$f.node,
8510 };
8511 }
8512 catch (e) { }
8513 }
8514
8515 var __assign$n = (undefined && undefined.__assign) || function () {
8516 __assign$n = Object.assign || function(t) {
8517 for (var s, i = 1, n = arguments.length; i < n; i++) {
8518 s = arguments[i];
8519 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8520 t[p] = s[p];
8521 }
8522 return t;
8523 };
8524 return __assign$n.apply(this, arguments);
8525 };
8526 var __rest$e = (undefined && undefined.__rest) || function (s, e) {
8527 var t = {};
8528 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8529 t[p] = s[p];
8530 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8531 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8532 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8533 t[p[i]] = s[p[i]];
8534 }
8535 return t;
8536 };
8537 function getId(snackbarId, toastId, actionId) {
8538 if (actionId) {
8539 return actionId;
8540 }
8541 if (toastId) {
8542 return toastId + "-action";
8543 }
8544 return snackbarId + "-action";
8545 }
8546 /**
8547 * Because the toast renderer is a callback function instead of a React
8548 * component, it's actually required to create a separate component instance so
8549 * that the context API can be
8550 *
8551 * @private
8552 */
8553 function SnackbarQueue(_a, ref) {
8554 var queue = _a.queue, onActionClick = _a.onActionClick, props = __rest$e(_a, ["queue", "onActionClick"]);
8555 var toast = queue[0];
8556 var visible = useMessageVisibility();
8557 var _b = useMessageQueueActions(), popMessage = _b.popMessage, hideMessage = _b.hideMessage, startTimer = _b.startTimer;
8558 var content = null;
8559 if (toast) {
8560 var snackbarId = props.id;
8561 var toastId = toast.id;
8562 var _messageId = toast.messageId, _messagePriority = toast.messagePriority, _c = toast.disableAutohide, disableAutohide = _c === void 0 ? false : _c, _d = toast.disableActionHide, disableActionHide_1 = _d === void 0 ? false : _d, providedAction = toast.action, toastProps = __rest$e(toast, ["messageId", "messagePriority", "disableAutohide", "disableActionHide", "action"]);
8563 var action = null;
8564 if (providedAction) {
8565 var actionProps_1 = providedAction;
8566 var onClick = function (event) {
8567 if (onActionClick) {
8568 onActionClick(toast, event);
8569 }
8570 if (actionProps_1.onClick) {
8571 actionProps_1.onClick(event);
8572 }
8573 if (!disableActionHide_1) {
8574 hideMessage();
8575 }
8576 };
8577 var t = typeof providedAction;
8578 if (React.isValidElement(providedAction) || t !== "object") {
8579 action = (React__default.createElement(Button, { id: getId(snackbarId, toastId, undefined), onClick: onClick, theme: "secondary" }, providedAction));
8580 }
8581 else {
8582 action = (React__default.createElement(Button, __assign$n({ id: getId(snackbarId, toastId, actionProps_1.id), theme: "secondary" }, actionProps_1, { onClick: onClick })));
8583 }
8584 }
8585 content = (React__default.createElement(Toast, __assign$n({}, toastProps, { action: action, visible: visible, onEntered: disableAutohide ? undefined : startTimer, onExited: popMessage })));
8586 }
8587 return (React__default.createElement(Snackbar, __assign$n({}, props, { ref: ref }), content));
8588 }
8589 // eslint-disable-next-line @typescript-eslint/no-explicit-any
8590 var SnackbarQueue$1 = React.forwardRef(SnackbarQueue);
8591
8592 /**
8593 * This hook is used to pause the exit timeout if the user blurs the window
8594 * while a toast is visible and the autohide functionality is not disabled. If
8595 * this functionality is not added, messages and alerts might be missed by the
8596 * user since they minimized the browser or viewing something on a second
8597 * screen.
8598 *
8599 * @private
8600 */
8601 function useWindowBlurPause(_a) {
8602 var startTimer = _a.startTimer, stopTimer = _a.stopTimer, visible = _a.visible, message = _a.message, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
8603 React.useEffect(function () {
8604 if (disabled || !visible || !message || message.disableAutohide) {
8605 return;
8606 }
8607 var handleFocusEvent = function (event) {
8608 if (event.type === "focus") {
8609 startTimer();
8610 }
8611 else {
8612 stopTimer();
8613 }
8614 };
8615 window.addEventListener("blur", handleFocusEvent);
8616 window.addEventListener("focus", handleFocusEvent);
8617 return function () {
8618 window.removeEventListener("blur", handleFocusEvent);
8619 window.removeEventListener("focus", handleFocusEvent);
8620 };
8621 }, [disabled, startTimer, stopTimer, visible, message]);
8622 }
8623
8624 var __spreadArrays$2 = (undefined && undefined.__spreadArrays) || function () {
8625 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
8626 for (var r = Array(s), k = 0, i = 0; i < il; i++)
8627 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
8628 r[k] = a[j];
8629 return r;
8630 };
8631 var ADD_MESSAGE = "ADD_MESSAGE";
8632 var POP_MESSAGE = "POP_MESSAGE";
8633 var RESET_QUEUE = "RESET_QUEUE";
8634 /**
8635 * @private
8636 */
8637 var popMessage = function () { return ({ type: POP_MESSAGE }); };
8638 /**
8639 * @private
8640 */
8641 var resetQueue = function () { return ({ type: RESET_QUEUE }); };
8642 /**
8643 * This function is used to update the message queue state by adding a new message when
8644 * needed.
8645 *
8646 * @private
8647 */
8648 function handleAddMessage(state, message, duplicates) {
8649 if (state.length === 0) {
8650 return [message];
8651 }
8652 var messageId = message.messageId, _a = message.messagePriority, messagePriority = _a === void 0 ? "normal" : _a;
8653 var i = state.findIndex(function (mes) { return mes.messageId === messageId; });
8654 var isNext = messagePriority === "next";
8655 var isNormal = messagePriority === "normal";
8656 var isReplace = messagePriority === "replace";
8657 var isImmediate = messagePriority === "immediate";
8658 var isDuplicable = duplicates === "allow";
8659 var isRestart = duplicates === "restart";
8660 if (isNext || isImmediate) {
8661 var nextState = state.slice();
8662 // remove the existing message if duplicated messages aren't allowed. This will
8663 // kind of act like a replace + next behavior
8664 if (!isDuplicable && i > 0) {
8665 nextState.splice(i, 1);
8666 }
8667 var current = nextState[0], remaining = nextState.slice(1);
8668 if (isImmediate && current.messagePriority !== "immediate") {
8669 return __spreadArrays$2([current, message, current], remaining);
8670 }
8671 return __spreadArrays$2([current, message], remaining);
8672 }
8673 if (i === -1 || (isDuplicable && isNormal)) {
8674 return __spreadArrays$2(state, [message]);
8675 }
8676 if (isNormal) {
8677 if (isRestart) {
8678 // creating a new state so that the queue visibility hook can still be triggered
8679 // which will restart the timer
8680 return state.slice();
8681 }
8682 return state;
8683 }
8684 if (isReplace) {
8685 var nextState = state.slice();
8686 nextState[i] = message;
8687 return nextState;
8688 }
8689 return __spreadArrays$2(state, [message]);
8690 }
8691 /**
8692 * @private
8693 */
8694 function reducer$1(state, action) {
8695 switch (action.type) {
8696 case ADD_MESSAGE:
8697 return handleAddMessage(state, action.message, action.duplicates);
8698 case POP_MESSAGE:
8699 return state.length ? state.slice(1) : state;
8700 case RESET_QUEUE:
8701 return state.length ? [] : state;
8702 default:
8703 return state;
8704 }
8705 }
8706 /**
8707 * This is the main logic for the message queue behavior that will handle:
8708 *
8709 * - creating timeouts as needed to show/hide toasts within the SnackbarQueue component
8710 * - create a way to push messages with optional priority onto the queue
8711 *
8712 * @private
8713 */
8714 function useMessageQueue(_a) {
8715 var _b = _a.timeout, timeout = _b === void 0 ? DEFAULT_MESSAGE_QUEUE_TIMEOUT : _b, _c = _a.duplicates, duplicates = _c === void 0 ? "allow" : _c, _d = _a.defaultQueue, defaultQueue = _d === void 0 ? [] : _d;
8716 var _e = React.useReducer(function (state, action) { return reducer$1(state, action); }, defaultQueue), queue = _e[0], dispatch = _e[1];
8717 var queueRef = React.useRef(queue);
8718 var addMessageDispatch = React.useCallback(function (message) {
8719 if (duplicates !== "allow" && !message.messageId) {
8720 throw new Error("A messageId is required when the \"" + duplicates + "\" duplicate behavior is enabled but it was not provided in the current message.");
8721 }
8722 dispatch({ type: ADD_MESSAGE, message: message, duplicates: duplicates });
8723 }, [duplicates]);
8724 var popMessageDispatch = React.useCallback(function () {
8725 dispatch(popMessage());
8726 }, []);
8727 var resetQueueDispatch = React.useCallback(function () {
8728 dispatch(resetQueue());
8729 return queueRef.current;
8730 }, []);
8731 var _f = useToggle(defaultQueue.length > 0), visible = _f[0], showMessage = _f[1], hideMessage = _f[2];
8732 var _g = useTimeout(hideMessage, timeout), startTimer = _g[0], stopTimer = _g[1], restartTimer = _g[2];
8733 React.useEffect(function () {
8734 // this effect will handle all the "logic" for transitioning between each message along with the
8735 // message priority updates.
8736 var message = queue[0], nextMessage = queue[1];
8737 if (!message) {
8738 return;
8739 }
8740 var prevQueue = queueRef.current;
8741 var prevMessage = prevQueue[0];
8742 if (message.messagePriority !== "immediate" &&
8743 nextMessage &&
8744 nextMessage.messagePriority === "immediate") {
8745 stopTimer();
8746 if (!visible) {
8747 popMessageDispatch();
8748 return;
8749 }
8750 hideMessage();
8751 return;
8752 }
8753 if (!visible) {
8754 showMessage();
8755 }
8756 if (queue.length === prevQueue.length && message === prevMessage) {
8757 restartTimer();
8758 }
8759 // only want to run this on queue changes
8760 // eslint-disable-next-line react-hooks/exhaustive-deps
8761 }, [queue]);
8762 useWindowBlurPause({
8763 startTimer: startTimer,
8764 stopTimer: stopTimer,
8765 visible: visible,
8766 message: queue[0],
8767 });
8768 React.useEffect(function () {
8769 queueRef.current = queue;
8770 });
8771 return {
8772 queue: queue,
8773 resetQueue: resetQueueDispatch,
8774 visible: visible,
8775 hideMessage: hideMessage,
8776 addMessage: addMessageDispatch,
8777 popMessage: popMessageDispatch,
8778 startTimer: startTimer,
8779 stopTimer: stopTimer,
8780 restartTimer: restartTimer,
8781 };
8782 }
8783
8784 var __assign$o = (undefined && undefined.__assign) || function () {
8785 __assign$o = Object.assign || function(t) {
8786 for (var s, i = 1, n = arguments.length; i < n; i++) {
8787 s = arguments[i];
8788 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8789 t[p] = s[p];
8790 }
8791 return t;
8792 };
8793 return __assign$o.apply(this, arguments);
8794 };
8795 var __rest$f = (undefined && undefined.__rest) || function (s, e) {
8796 var t = {};
8797 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8798 t[p] = s[p];
8799 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8800 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8801 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8802 t[p[i]] = s[p[i]];
8803 }
8804 return t;
8805 };
8806 /**
8807 * This component is used to be able to create a queue of messages with the `Snackbar` and
8808 * `Toast` components with a _fairly_ decent API out of the box.
8809 */
8810 function MessageQueue(_a) {
8811 var _b = _a.timeout, timeout = _b === void 0 ? 5000 : _b, _c = _a.duplicates, duplicates = _c === void 0 ? "allow" : _c, _d = _a.defaultQueue, defaultQueue = _d === void 0 ? [] : _d, children = _a.children, props = __rest$f(_a, ["timeout", "duplicates", "defaultQueue", "children"]);
8812 var _e = useMessageQueue({ timeout: timeout, duplicates: duplicates, defaultQueue: defaultQueue }), queue = _e.queue, visible = _e.visible, hideMessage = _e.hideMessage, startTimer = _e.startTimer, stopTimer = _e.stopTimer, restartTimer = _e.restartTimer, addMessage = _e.addMessage, popMessage = _e.popMessage, resetQueue = _e.resetQueue;
8813 var actions = React.useMemo(function () { return ({
8814 popMessage: popMessage,
8815 hideMessage: hideMessage,
8816 startTimer: startTimer,
8817 stopTimer: stopTimer,
8818 resetQueue: resetQueue,
8819 restartTimer: restartTimer,
8820 }); }, [popMessage, hideMessage, startTimer, stopTimer, restartTimer, resetQueue]);
8821 return (React__default.createElement(AddMessageContext.Provider, { value: addMessage },
8822 React__default.createElement(MessageQueueActionsContext.Provider, { value: actions },
8823 React__default.createElement(MessageVisibilityContext.Provider, { value: visible },
8824 React__default.createElement(MessageQueueContext.Provider, { value: queue }, children),
8825 React__default.createElement(SnackbarQueue$1, __assign$o({}, props, { queue: queue }))))));
8826 }
8827 {
8828 try {
8829 var PropTypes$g = require("prop-types");
8830 MessageQueue.propTypes = {
8831 timeout: PropTypes$g.number,
8832 duplicates: PropTypes$g.oneOf(["allow", "restart", "prevent"]),
8833 defaultQueue: PropTypes$g.array,
8834 onActionClick: PropTypes$g.func,
8835 children: PropTypes$g.node.isRequired,
8836 };
8837 }
8838 catch (e) { }
8839 }
8840
8841 /**
8842 * Boolean if the child components should inherit the color of the app bar.
8843 * @private
8844 */
8845 var InheritContext = React.createContext(false);
8846 /**
8847 * This is probably a bit overkill... but this is used so that all the AppBar
8848 * child components can automatically inherit the base color as needed within an
8849 * AppBar. If the `inheritColor` prop was provided to the component, that value
8850 * will be used instead.
8851 *
8852 * @param inheritColor The prop inheritColor for the component
8853 * @return true if the color should be inherited.
8854 * @private
8855 */
8856 function useInheritContext(inheritColor) {
8857 var inheritContext = React.useContext(InheritContext);
8858 return typeof inheritColor === "boolean" ? inheritColor : inheritContext;
8859 }
8860 /**
8861 * Boolean if there is a parent app bar. The theme colors will be inherited from
8862 * the parent app bar instead of the current app bar for these cases since
8863 * nested app bars usually happen with prominent toolbars and the root app bar
8864 * defines the theme.
8865 *
8866 * @private
8867 */
8868 var ParentContext$1 = React.createContext(false);
8869 /**
8870 *
8871 * @private
8872 */
8873 function useParentContext() {
8874 return React.useContext(ParentContext$1);
8875 }
8876 {
8877 InheritContext.displayName = "InheritColorContext";
8878 ParentContext$1.displayName = "ParentContext";
8879 }
8880
8881 var __assign$p = (undefined && undefined.__assign) || function () {
8882 __assign$p = Object.assign || function(t) {
8883 for (var s, i = 1, n = arguments.length; i < n; i++) {
8884 s = arguments[i];
8885 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8886 t[p] = s[p];
8887 }
8888 return t;
8889 };
8890 return __assign$p.apply(this, arguments);
8891 };
8892 var __rest$g = (undefined && undefined.__rest) || function (s, e) {
8893 var t = {};
8894 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8895 t[p] = s[p];
8896 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8897 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8898 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8899 t[p[i]] = s[p[i]];
8900 }
8901 return t;
8902 };
8903 var block$7 = bem("rmd-app-bar");
8904 /**
8905 * This component is used to create a top-level app bar in your application that
8906 * can be used to contain a navigation menu toggle button, the app's logo and/or
8907 * title, as well as any top-level actions that will be reused throughout your
8908 * app. When using this component with the `fixed` prop, it is recommended to
8909 * also use one of the "offset class names" so that your content will not be
8910 * converted by the app bar. You can also use any of the exposed mixins to add
8911 * these offsets as well.
8912 */
8913 var AppBar = React.forwardRef(function AppBar(_a, ref) {
8914 var _b;
8915 var className = _a.className, children = _a.children, _c = _a.theme, propTheme = _c === void 0 ? "primary" : _c, _d = _a.component, propComponent = _d === void 0 ? "header" : _d, _e = _a.height, height = _e === void 0 ? "normal" : _e, _f = _a.fixed, fixed = _f === void 0 ? false : _f, _g = _a.fixedPosition, fixedPosition = _g === void 0 ? "top" : _g, _h = _a.fixedElevation, fixedElevation = _h === void 0 ? true : _h, inheritColor = _a.inheritColor, _j = _a.flexWrap, flexWrap = _j === void 0 ? height === "none" ||
8916 height === "prominent" ||
8917 height === "prominent-dense" : _j, remaining = __rest$g(_a, ["className", "children", "theme", "component", "height", "fixed", "fixedPosition", "fixedElevation", "inheritColor", "flexWrap"]);
8918 var parentContext = useParentContext();
8919 var inheritContext = useInheritContext(undefined);
8920 var inherit;
8921 var theme = propTheme;
8922 var Component = propComponent;
8923 if (typeof inheritColor === "boolean") {
8924 inherit = inheritColor;
8925 }
8926 else if (parentContext) {
8927 inherit = inheritContext;
8928 theme = "clear";
8929 Component = "div";
8930 }
8931 else {
8932 inherit = theme !== "clear" && theme !== "default";
8933 }
8934 return (React__default.createElement(ParentContext$1.Provider, { value: true },
8935 React__default.createElement(InheritContext.Provider, { value: inherit },
8936 React__default.createElement(Component, __assign$p({}, remaining, { className: classnames(block$7((_b = {},
8937 _b[theme] = theme !== "clear",
8938 _b[height] = height !== "none",
8939 _b.wrap = flexWrap,
8940 _b.fixed = fixed,
8941 _b[fixedPosition] = fixed,
8942 _b["fixed-elevation"] = fixed && fixedElevation,
8943 _b)), className), ref: ref }), children))));
8944 });
8945 {
8946 try {
8947 var PropTypes$h = require("prop-types");
8948 AppBar.propTypes = {
8949 className: PropTypes$h.string,
8950 component: PropTypes$h.oneOfType([
8951 PropTypes$h.string,
8952 PropTypes$h.func,
8953 PropTypes$h.object,
8954 ]),
8955 height: PropTypes$h.oneOf([
8956 "none",
8957 "normal",
8958 "dense",
8959 "prominent",
8960 "prominent-dense",
8961 ]),
8962 flexWrap: PropTypes$h.bool,
8963 children: PropTypes$h.node,
8964 fixed: PropTypes$h.bool,
8965 fixedPosition: PropTypes$h.oneOf(["top", "bottom"]),
8966 fixedElevation: PropTypes$h.bool,
8967 inheritColor: PropTypes$h.bool,
8968 theme: PropTypes$h.oneOf(["primary", "secondary", "default", "clear"]),
8969 };
8970 }
8971 catch (e) { }
8972 }
8973
8974 var __assign$q = (undefined && undefined.__assign) || function () {
8975 __assign$q = Object.assign || function(t) {
8976 for (var s, i = 1, n = arguments.length; i < n; i++) {
8977 s = arguments[i];
8978 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8979 t[p] = s[p];
8980 }
8981 return t;
8982 };
8983 return __assign$q.apply(this, arguments);
8984 };
8985 var __rest$h = (undefined && undefined.__rest) || function (s, e) {
8986 var t = {};
8987 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8988 t[p] = s[p];
8989 if (s != null && typeof Object.getOwnPropertySymbols === "function")
8990 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8991 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8992 t[p[i]] = s[p[i]];
8993 }
8994 return t;
8995 };
8996 var block$8 = bem("rmd-app-bar");
8997 /**
8998 * This component is used to create a title for your application. If your app is
8999 * not using the `AppBarNav` component, you can enable the `keyline` prop to
9000 * ensure that your title aligns with the keyline of your navigation element.
9001 */
9002 var AppBarTitle = React.forwardRef(function AppBarTitle(_a, ref) {
9003 var _b = _a.noWrap, noWrap = _b === void 0 ? true : _b, _c = _a.keyline, keyline = _c === void 0 ? false : _c, className = _a.className, children = _a.children, inheritColor = _a.inheritColor, props = __rest$h(_a, ["noWrap", "keyline", "className", "children", "inheritColor"]);
9004 return (React__default.createElement("h6", __assign$q({}, props, { ref: ref, className: classnames(block$8("title", {
9005 "no-wrap": noWrap,
9006 keyline: keyline,
9007 inherit: useInheritContext(inheritColor),
9008 }), className) }), children));
9009 });
9010 {
9011 try {
9012 var PropTypes$i = require("prop-types");
9013 AppBarTitle.propTypes = {
9014 className: PropTypes$i.string,
9015 children: PropTypes$i.node,
9016 keyline: PropTypes$i.bool,
9017 noWrap: PropTypes$i.bool,
9018 inheritColor: PropTypes$i.bool,
9019 };
9020 }
9021 catch (e) { }
9022 }
9023
9024 var __assign$r = (undefined && undefined.__assign) || function () {
9025 __assign$r = Object.assign || function(t) {
9026 for (var s, i = 1, n = arguments.length; i < n; i++) {
9027 s = arguments[i];
9028 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9029 t[p] = s[p];
9030 }
9031 return t;
9032 };
9033 return __assign$r.apply(this, arguments);
9034 };
9035 var __rest$i = (undefined && undefined.__rest) || function (s, e) {
9036 var t = {};
9037 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9038 t[p] = s[p];
9039 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9040 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9041 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9042 t[p[i]] = s[p[i]];
9043 }
9044 return t;
9045 };
9046 var block$9 = bem("rmd-app-bar");
9047 /**
9048 * This component is really just a simple wrapper for the `Button` component
9049 * that adds some additional styles for adding spacing before and after this
9050 * button so that it aligns to the main "keyline" of your application's
9051 * navigation. In simpler terms, it will make the left side of the icon in this
9052 * button aligns with all the other icons that appear in `ListItem`s in your
9053 * main navigation.
9054 *
9055 * This component is generally really only used when you want to have a
9056 * temporary navigation element like a hamburger menu.
9057 */
9058 var AppBarNav = React.forwardRef(function AppBarNav(_a, ref) {
9059 var className = _a.className, children = _a.children, inheritColor = _a.inheritColor, floating = _a.floating, _b = _a.theme, theme = _b === void 0 ? floating ? "secondary" : "clear" : _b, _c = _a.buttonType, buttonType = _c === void 0 ? "icon" : _c, props = __rest$i(_a, ["className", "children", "inheritColor", "floating", "theme", "buttonType"]);
9060 return (React__default.createElement(Button, __assign$r({}, props, { theme: theme, floating: floating, buttonType: buttonType, ref: ref, className: classnames(block$9("nav", {
9061 inherit: useInheritContext(inheritColor),
9062 }), className) }), children));
9063 });
9064
9065 var block$a = bem("rmd-app-bar");
9066 /**
9067 * This is a hook that will apply the nav classnames to an element. This should
9068 * really not be used externally and is really just for creating dropdown menus
9069 * within app bars that have the action styles.
9070 *
9071 * @private
9072 */
9073 function useActionClassName(_a) {
9074 var _b = _a === void 0 ? {} : _a, first = _b.first, last = _b.last, inheritColor = _b.inheritColor, className = _b.className;
9075 return classnames(block$a("action", {
9076 first: first,
9077 last: last,
9078 inherit: useInheritContext(inheritColor),
9079 }), className);
9080 }
9081
9082 var __assign$s = (undefined && undefined.__assign) || function () {
9083 __assign$s = Object.assign || function(t) {
9084 for (var s, i = 1, n = arguments.length; i < n; i++) {
9085 s = arguments[i];
9086 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9087 t[p] = s[p];
9088 }
9089 return t;
9090 };
9091 return __assign$s.apply(this, arguments);
9092 };
9093 var __rest$j = (undefined && undefined.__rest) || function (s, e) {
9094 var t = {};
9095 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9096 t[p] = s[p];
9097 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9098 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9099 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9100 t[p[i]] = s[p[i]];
9101 }
9102 return t;
9103 };
9104 /**
9105 * This component is really just a simple wrapper for the `Button` component
9106 * that adds a few additional styles to prevent the button from shrinking when
9107 * an `AppBar` has a lot of content. It also will automatically add spacing
9108 * either before or after this button when the `first` or `last` props are
9109 * provided.
9110 */
9111 var AppBarAction = React.forwardRef(function AppBarAction(_a, ref) {
9112 var className = _a.className, _b = _a.first, first = _b === void 0 ? false : _b, _c = _a.last, last = _c === void 0 ? false : _c, children = _a.children, inheritColor = _a.inheritColor, floating = _a.floating, _d = _a.theme, theme = _d === void 0 ? floating ? "secondary" : "clear" : _d, _e = _a.buttonType, buttonType = _e === void 0 ? "icon" : _e, props = __rest$j(_a, ["className", "first", "last", "children", "inheritColor", "floating", "theme", "buttonType"]);
9113 return (React__default.createElement(Button, __assign$s({}, props, { theme: theme, buttonType: buttonType, floating: floating, ref: ref, className: useActionClassName({ first: first, last: last, inheritColor: inheritColor, className: className }) }), children));
9114 });
9115 {
9116 try {
9117 var PropTypes$j = require("prop-types");
9118 AppBarAction.propTypes = {
9119 className: PropTypes$j.string,
9120 children: PropTypes$j.node,
9121 first: PropTypes$j.bool,
9122 last: PropTypes$j.bool,
9123 theme: PropTypes$j.oneOf([
9124 "primary",
9125 "secondary",
9126 "warning",
9127 "error",
9128 "clear",
9129 ]),
9130 buttonType: PropTypes$j.oneOf(["text", "icon"]),
9131 floating: PropTypes$j.oneOf([
9132 "top-left",
9133 "top-right",
9134 "bottom-left",
9135 "bottom-right",
9136 ]),
9137 inheritColor: PropTypes$j.bool,
9138 };
9139 }
9140 catch (e) { }
9141 }
9142
9143 /**
9144 * A classname to apply to an element that should be offset either with padding
9145 * or margin by the height of a normal App Bar.
9146 */
9147 var APP_BAR_OFFSET_CLASSNAME = "rmd-app-bar-offset";
9148 /**
9149 * A classname to apply to an element that should be offset either with padding
9150 * or margin by the height of a dense App Bar.
9151 */
9152 var APP_BAR_OFFSET_DENSE_CLASSNAME = "rmd-app-bar-offset--dense";
9153 /**
9154 * A classname to apply to an element that should be offset either with padding
9155 * or margin by the height of a prominent App Bar.
9156 */
9157 var APP_BAR_OFFSET_PROMINENT_CLASSNAME = "rmd-app-bar-offset--prominent";
9158 /**
9159 * A classname to apply to an element that should be offset either with padding
9160 * or margin by the height of a prominent and dense App Bar.
9161 */
9162 var APP_BAR_OFFSET_PROMINENT_DENSE_CLASSNAME = "rmd-app-bar-offset--prominent-dense";
9163
9164 var __assign$t = (undefined && undefined.__assign) || function () {
9165 __assign$t = Object.assign || function(t) {
9166 for (var s, i = 1, n = arguments.length; i < n; i++) {
9167 s = arguments[i];
9168 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9169 t[p] = s[p];
9170 }
9171 return t;
9172 };
9173 return __assign$t.apply(this, arguments);
9174 };
9175 var __rest$k = (undefined && undefined.__rest) || function (s, e) {
9176 var t = {};
9177 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9178 t[p] = s[p];
9179 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9180 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9181 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9182 t[p[i]] = s[p[i]];
9183 }
9184 return t;
9185 };
9186 /**
9187 * This is probably one of the least useful components available as it doesn't
9188 * do much styling or logic. All this form component will do is add basic flex
9189 * behavior and prevent the default form submit behavior.
9190 */
9191 var Form = React.forwardRef(function Form(_a, ref) {
9192 var children = _a.children, _b = _a.disablePreventDefault, disablePreventDefault = _b === void 0 ? false : _b, onSubmit = _a.onSubmit, props = __rest$k(_a, ["children", "disablePreventDefault", "onSubmit"]);
9193 var handleOnSubmit = React.useCallback(function (event) {
9194 if (!disablePreventDefault) {
9195 event.preventDefault();
9196 }
9197 if (onSubmit) {
9198 onSubmit(event);
9199 }
9200 }, [disablePreventDefault, onSubmit]);
9201 return (React__default.createElement("form", __assign$t({}, props, { onSubmit: handleOnSubmit, ref: ref }), children));
9202 });
9203 {
9204 try {
9205 var PropTypes$k = require("prop-types");
9206 Form.propTypes = {
9207 children: PropTypes$k.node,
9208 onSubmit: PropTypes$k.func,
9209 disablePreventDefault: PropTypes$k.bool,
9210 };
9211 }
9212 catch (e) { }
9213 }
9214
9215 var __assign$u = (undefined && undefined.__assign) || function () {
9216 __assign$u = Object.assign || function(t) {
9217 for (var s, i = 1, n = arguments.length; i < n; i++) {
9218 s = arguments[i];
9219 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9220 t[p] = s[p];
9221 }
9222 return t;
9223 };
9224 return __assign$u.apply(this, arguments);
9225 };
9226 var __rest$l = (undefined && undefined.__rest) || function (s, e) {
9227 var t = {};
9228 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9229 t[p] = s[p];
9230 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9231 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9232 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9233 t[p[i]] = s[p[i]];
9234 }
9235 return t;
9236 };
9237 var block$b = bem("rmd-fieldset");
9238 /**
9239 * This is a simple wrapper for the `<fieldset>` that defaults to removing
9240 * the default styles of a border, padding, and margin and having a screen-reader
9241 * visible only legend element for added accessibility.
9242 */
9243 var Fieldset = React.forwardRef(function Fieldset(_a, ref) {
9244 var className = _a.className, legend = _a.legend, legendStyle = _a.legendStyle, legendClassName = _a.legendClassName, _b = _a.legendSROnly, legendSROnly = _b === void 0 ? false : _b, _c = _a.unstyled, unstyled = _c === void 0 ? true : _c, children = _a.children, props = __rest$l(_a, ["className", "legend", "legendStyle", "legendClassName", "legendSROnly", "unstyled", "children"]);
9245 return (React__default.createElement("fieldset", __assign$u({}, props, { ref: ref, className: classnames(block$b({ unstyled: unstyled }), className) }),
9246 React__default.createElement("legend", { style: legendStyle, className: classnames(block$b("legend", { "sr-only": legendSROnly }), legendClassName) }, legend),
9247 children));
9248 });
9249 {
9250 try {
9251 var PropTypes$l = require("prop-types");
9252 Fieldset.propTypes = {
9253 className: PropTypes$l.string,
9254 unstyled: PropTypes$l.bool,
9255 legend: PropTypes$l.node.isRequired,
9256 legendStyle: PropTypes$l.object,
9257 legendClassName: PropTypes$l.string,
9258 legendSROnly: PropTypes$l.bool,
9259 children: PropTypes$l.node,
9260 };
9261 }
9262 catch (e) { }
9263 }
9264
9265 var context = React.createContext({
9266 theme: "outline",
9267 underlineDirection: "left",
9268 });
9269 /**
9270 * Gets the current theme values for a form component by inheriting the current
9271 * form theme via context. If you provide an object of theme props, the returned
9272 * value will use any defined values from the theme props and fallback to the
9273 * context value.
9274 *
9275 * Example:
9276 * ```ts
9277 * // everything is inherited
9278 * const formTheme = useFormTheme();
9279 *
9280 * // theme will be set to "underline" while the others will be inherited
9281 * const formTheme = useFormTheme({ theme: "underline" });
9282 * ```
9283 */
9284 function useFormTheme(options) {
9285 if (options === void 0) { options = {}; }
9286 var formTheme = React.useContext(context);
9287 var theme = options.theme, underlineDirection = options.underlineDirection;
9288 theme = theme !== null && theme !== void 0 ? theme : formTheme.theme;
9289 underlineDirection = underlineDirection !== null && underlineDirection !== void 0 ? underlineDirection : formTheme.underlineDirection;
9290 return {
9291 theme: theme,
9292 underlineDirection: underlineDirection,
9293 };
9294 }
9295 var Provider = context.Provider;
9296 /**
9297 * Since you'll normally want all of your form components to use the same theme,
9298 * this is a simple way to provide the same theme to all components without
9299 * needing all the prop-drilling/copying.
9300 */
9301 function FormThemeProvider(_a) {
9302 var _b = _a.theme, theme = _b === void 0 ? "outline" : _b, _c = _a.underlineDirection, underlineDirection = _c === void 0 ? "left" : _c, children = _a.children;
9303 var value = React.useMemo(function () { return ({ theme: theme, underlineDirection: underlineDirection }); }, [
9304 theme,
9305 underlineDirection,
9306 ]);
9307 return React__default.createElement(Provider, { value: value }, children);
9308 }
9309
9310 var __assign$v = (undefined && undefined.__assign) || function () {
9311 __assign$v = Object.assign || function(t) {
9312 for (var s, i = 1, n = arguments.length; i < n; i++) {
9313 s = arguments[i];
9314 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9315 t[p] = s[p];
9316 }
9317 return t;
9318 };
9319 return __assign$v.apply(this, arguments);
9320 };
9321 var __rest$m = (undefined && undefined.__rest) || function (s, e) {
9322 var t = {};
9323 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9324 t[p] = s[p];
9325 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9326 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9327 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9328 t[p[i]] = s[p[i]];
9329 }
9330 return t;
9331 };
9332 var block$c = bem("rmd-icon");
9333 /**
9334 * The `FontIcon` component is used for rendering a font-icon library's icon.
9335 * The default is to use the `material-icons` library, but others can be used as
9336 * well.
9337 *
9338 * If you are using another font icon library that does not always create icons
9339 * with a perfect 1:1 scale (such as font awesome), it is recommended to use the
9340 * `forceSize` and `forceFontSize` props to fix the sizing issues.
9341 */
9342 var FontIcon = React.forwardRef(function FontIcon(_a, ref) {
9343 var className = _a.className, children = _a.children, _b = _a["aria-hidden"], ariaHidden = _b === void 0 ? true : _b, _c = _a.dense, dense = _c === void 0 ? false : _c, _d = _a.iconClassName, iconClassName = _d === void 0 ? "material-icons" : _d, _e = _a.forceSize, forceSize = _e === void 0 ? false : _e, _f = _a.forceFontSize, forceFontSize = _f === void 0 ? false : _f, props = __rest$m(_a, ["className", "children", "aria-hidden", "dense", "iconClassName", "forceSize", "forceFontSize"]);
9344 return (React__default.createElement("i", __assign$v({}, props, { "aria-hidden": ariaHidden, ref: ref, className: classnames(block$c({
9345 font: true,
9346 dense: dense,
9347 "forced-font": forceFontSize,
9348 "forced-size": forceSize,
9349 }), iconClassName, className) }), children));
9350 });
9351 {
9352 try {
9353 var PropTypes$m = require("prop-types");
9354 FontIcon.propTypes = {
9355 "aria-hidden": PropTypes$m.oneOfType([
9356 PropTypes$m.oneOf(["true", "false"]),
9357 PropTypes$m.bool,
9358 ]),
9359 className: PropTypes$m.string,
9360 iconClassName: PropTypes$m.string,
9361 dense: PropTypes$m.bool,
9362 forceSize: PropTypes$m.bool,
9363 forceFontSize: PropTypes$m.bool,
9364 children: PropTypes$m.node,
9365 };
9366 }
9367 catch (e) { }
9368 }
9369
9370 var __assign$w = (undefined && undefined.__assign) || function () {
9371 __assign$w = Object.assign || function(t) {
9372 for (var s, i = 1, n = arguments.length; i < n; i++) {
9373 s = arguments[i];
9374 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9375 t[p] = s[p];
9376 }
9377 return t;
9378 };
9379 return __assign$w.apply(this, arguments);
9380 };
9381 var __rest$n = (undefined && undefined.__rest) || function (s, e) {
9382 var t = {};
9383 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9384 t[p] = s[p];
9385 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9386 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9387 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9388 t[p[i]] = s[p[i]];
9389 }
9390 return t;
9391 };
9392 var block$d = bem("rmd-icon");
9393 /**
9394 * The `SVGIcon` component is used to render inline SVG icons or SVG icons in a
9395 * sprite map as an icon.
9396 */
9397 var SVGIcon = React.forwardRef(function SVGIcon(_a, ref) {
9398 var _b = _a["aria-hidden"], ariaHidden = _b === void 0 ? true : _b, _c = _a.focusable, focusable = _c === void 0 ? "false" : _c, _d = _a.xmlns, xmlns = _d === void 0 ? "http://www.w3.org/2000/svg" : _d, _e = _a.viewBox, viewBox = _e === void 0 ? "0 0 24 24" : _e, _f = _a.dense, dense = _f === void 0 ? false : _f, className = _a.className, use = _a.use, propChildren = _a.children, props = __rest$n(_a, ["aria-hidden", "focusable", "xmlns", "viewBox", "dense", "className", "use", "children"]);
9399 var children = propChildren;
9400 if (!children && use) {
9401 children = React__default.createElement("use", { xlinkHref: use });
9402 }
9403 return (React__default.createElement("svg", __assign$w({}, props, { "aria-hidden": ariaHidden, ref: ref, className: classnames(block$d({ svg: true, dense: dense }), className), focusable: focusable, xmlns: xmlns, viewBox: viewBox }), children));
9404 });
9405 {
9406 try {
9407 var PropTypes$n = require("prop-types");
9408 SVGIcon.propTypes = {
9409 className: PropTypes$n.string,
9410 role: PropTypes$n.string,
9411 "aria-hidden": PropTypes$n.oneOfType([PropTypes$n.bool, PropTypes$n.string]),
9412 "aria-labelledby": PropTypes$n.string,
9413 focusable: PropTypes$n.oneOf(["true", "false"]),
9414 viewBox: PropTypes$n.string,
9415 xmlns: PropTypes$n.string,
9416 use: PropTypes$n.string,
9417 dense: PropTypes$n.bool,
9418 children: PropTypes$n.node,
9419 };
9420 }
9421 catch (e) { }
9422 }
9423
9424 var TextIconSpacing = function (_a) {
9425 var _b;
9426 var className = _a.className, propIcon = _a.icon, _c = _a.children, children = _c === void 0 ? null : _c, _d = _a.stacked, stacked = _d === void 0 ? false : _d, _e = _a.iconAfter, iconAfter = _e === void 0 ? false : _e, _f = _a.forceIconWrap, forceIconWrap = _f === void 0 ? false : _f, _g = _a.beforeClassName, beforeClassName = _g === void 0 ? "rmd-icon--before" : _g, _h = _a.afterClassName, afterClassName = _h === void 0 ? "rmd-icon--after" : _h, _j = _a.aboveClassName, aboveClassName = _j === void 0 ? "rmd-icon--above" : _j, _k = _a.belowClassName, belowClassName = _k === void 0 ? "rmd-icon--below" : _k;
9427 if (!propIcon) {
9428 return React__default.createElement(React__default.Fragment, null, children);
9429 }
9430 var baseClassName = classnames((_b = {},
9431 _b[beforeClassName] = !stacked && !iconAfter,
9432 _b[afterClassName] = !stacked && iconAfter,
9433 _b[aboveClassName] = stacked && !iconAfter,
9434 _b[belowClassName] = stacked && iconAfter,
9435 _b), className);
9436 var iconEl = propIcon;
9437 var content = children;
9438 if (!forceIconWrap && React.isValidElement(propIcon)) {
9439 var icon = React.Children.only(propIcon);
9440 iconEl = React.cloneElement(icon, {
9441 className: classnames(baseClassName, icon.props.className),
9442 });
9443 }
9444 else if (propIcon) {
9445 iconEl = (React__default.createElement("span", { className: classnames("rmd-text-icon-spacing", baseClassName) }, propIcon));
9446 }
9447 if (iconEl) {
9448 content = (React__default.createElement(React__default.Fragment, null,
9449 !iconAfter && iconEl,
9450 children,
9451 iconAfter && iconEl));
9452 }
9453 return content;
9454 };
9455 {
9456 try {
9457 var PropTypes$o = require("prop-types");
9458 TextIconSpacing.propTypes = {
9459 className: PropTypes$o.string,
9460 icon: PropTypes$o.oneOfType([
9461 PropTypes$o.element,
9462 PropTypes$o.node,
9463 PropTypes$o.object,
9464 ]),
9465 iconAfter: PropTypes$o.bool,
9466 stacked: PropTypes$o.bool,
9467 children: PropTypes$o.node,
9468 beforeClassName: PropTypes$o.string,
9469 afterClassName: PropTypes$o.string,
9470 aboveClassName: PropTypes$o.string,
9471 belowClassName: PropTypes$o.string,
9472 forceIconWrap: PropTypes$o.bool,
9473 };
9474 }
9475 catch (e) { }
9476 }
9477
9478 var __assign$x = (undefined && undefined.__assign) || function () {
9479 __assign$x = Object.assign || function(t) {
9480 for (var s, i = 1, n = arguments.length; i < n; i++) {
9481 s = arguments[i];
9482 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9483 t[p] = s[p];
9484 }
9485 return t;
9486 };
9487 return __assign$x.apply(this, arguments);
9488 };
9489 var __rest$o = (undefined && undefined.__rest) || function (s, e) {
9490 var t = {};
9491 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9492 t[p] = s[p];
9493 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9494 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9495 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9496 t[p[i]] = s[p[i]];
9497 }
9498 return t;
9499 };
9500 var block$e = bem("rmd-icon-rotator");
9501 /**
9502 * The `IconRotator` is a simple component that is used to rotate an icon from a
9503 * one degrees to another.
9504 */
9505 var IconRotator = React.forwardRef(function IconRotator(_a, ref) {
9506 var style = _a.style, propClassName = _a.className, _b = _a.animate, animate = _b === void 0 ? true : _b, rotated = _a.rotated, children = _a.children, _c = _a.forceIconWrap, forceIconWrap = _c === void 0 ? false : _c, props = __rest$o(_a, ["style", "className", "animate", "rotated", "children", "forceIconWrap"]);
9507 var className = classnames(block$e({ animate: animate, rotated: rotated }), propClassName);
9508 if (!forceIconWrap && React.isValidElement(children)) {
9509 var child = React.Children.only(children);
9510 return React.cloneElement(child, {
9511 className: classnames(className, child.props.className),
9512 });
9513 }
9514 return (React__default.createElement("span", __assign$x({}, props, { style: style, className: className, ref: ref }), children));
9515 });
9516 {
9517 try {
9518 var PropTypes$p = require("prop-types");
9519 IconRotator.propTypes = {
9520 style: PropTypes$p.object,
9521 className: PropTypes$p.string,
9522 animate: PropTypes$p.bool,
9523 rotated: PropTypes$p.bool,
9524 forceIconWrap: PropTypes$p.bool,
9525 children: PropTypes$p.node,
9526 };
9527 }
9528 catch (e) { }
9529 }
9530
9531 var DEFAULT_ICONS = {
9532 back: React__default.createElement(FontIcon, null, "keyboard_arrow_left"),
9533 checkbox: React__default.createElement(FontIcon, null, "check_box"),
9534 download: React__default.createElement(FontIcon, null, "file_download"),
9535 dropdown: React__default.createElement(FontIcon, null, "arrow_drop_down"),
9536 expander: React__default.createElement(FontIcon, null, "keyboard_arrow_down"),
9537 forward: React__default.createElement(FontIcon, null, "keyboard_arrow_right"),
9538 menu: React__default.createElement(FontIcon, null, "menu"),
9539 notification: React__default.createElement(FontIcon, null, "notifications"),
9540 password: React__default.createElement(FontIcon, null, "remove_red_eye"),
9541 radio: React__default.createElement(FontIcon, null, "radio_button_checked"),
9542 selected: React__default.createElement(FontIcon, null, "check"),
9543 sort: React__default.createElement(FontIcon, null, "arrow_upward"),
9544 };
9545 var context$1 = React.createContext(DEFAULT_ICONS);
9546 var Provider$1 = context$1.Provider;
9547 /**
9548 * Gets one of the configured icons from the `IconProvider`. This is probably
9549 * just for use within `react-md`, but might be helpful outside if you want to
9550 * reuse the existing icon configuration for other custom components.
9551 *
9552 * If te second argument is provided and it is not `undefined`, that value will
9553 * be used instead of the inherited icon type.
9554 *
9555 * @param name The name of the icon you want to use.
9556 * @param override An optional override to use instead of the inherited icon.
9557 * @return The overridden icon value or the inherited icon.
9558 */
9559 function useIcon(name, override) {
9560 var icons = React.useContext(context$1);
9561 if (typeof override !== "undefined") {
9562 return override;
9563 }
9564 return icons[name];
9565 }
9566 /**
9567 * The `IconProvider` component is used to override all the default icons within
9568 * `react-md` with a newly defined set of icons. This is super nice since you
9569 * won't need to create new component wrappers for all the components within
9570 * `react-md` if you want to switch to SVG icons instead of the default font
9571 * icons.
9572 */
9573 var IconProvider = function (_a) {
9574 var children = _a.children, _b = _a.back, back = _b === void 0 ? DEFAULT_ICONS.back : _b, _c = _a.checkbox, checkbox = _c === void 0 ? DEFAULT_ICONS.checkbox : _c, _d = _a.download, download = _d === void 0 ? DEFAULT_ICONS.download : _d, _e = _a.dropdown, dropdown = _e === void 0 ? DEFAULT_ICONS.dropdown : _e, _f = _a.expander, expander = _f === void 0 ? DEFAULT_ICONS.expander : _f, _g = _a.forward, forward = _g === void 0 ? DEFAULT_ICONS.forward : _g, _h = _a.menu, menu = _h === void 0 ? DEFAULT_ICONS.menu : _h, _j = _a.notification, notification = _j === void 0 ? DEFAULT_ICONS.notification : _j, _k = _a.password, password = _k === void 0 ? DEFAULT_ICONS.password : _k, _l = _a.radio, radio = _l === void 0 ? DEFAULT_ICONS.radio : _l, _m = _a.selected, selected = _m === void 0 ? DEFAULT_ICONS.selected : _m, _o = _a.sort, sort = _o === void 0 ? DEFAULT_ICONS.sort : _o;
9575 var value = React.useMemo(function () { return ({
9576 back: back,
9577 checkbox: checkbox,
9578 download: download,
9579 dropdown: dropdown,
9580 expander: expander,
9581 forward: forward,
9582 menu: menu,
9583 notification: notification,
9584 password: password,
9585 radio: radio,
9586 selected: selected,
9587 sort: sort,
9588 }); }, [
9589 back,
9590 checkbox,
9591 download,
9592 dropdown,
9593 expander,
9594 forward,
9595 menu,
9596 notification,
9597 password,
9598 radio,
9599 selected,
9600 sort,
9601 ]);
9602 return React__default.createElement(Provider$1, { value: value }, children);
9603 };
9604 {
9605 try {
9606 var PropTypes$q = require("prop-types");
9607 IconProvider.propTypes = {
9608 children: PropTypes$q.node,
9609 back: PropTypes$q.node,
9610 checkbox: PropTypes$q.node,
9611 download: PropTypes$q.node,
9612 dropdown: PropTypes$q.node,
9613 expander: PropTypes$q.node,
9614 forward: PropTypes$q.node,
9615 menu: PropTypes$q.node,
9616 notification: PropTypes$q.node,
9617 password: PropTypes$q.node,
9618 radio: PropTypes$q.node,
9619 selected: PropTypes$q.node,
9620 sort: PropTypes$q.node,
9621 };
9622 }
9623 catch (e) { }
9624 }
9625
9626 var __assign$y = (undefined && undefined.__assign) || function () {
9627 __assign$y = Object.assign || function(t) {
9628 for (var s, i = 1, n = arguments.length; i < n; i++) {
9629 s = arguments[i];
9630 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9631 t[p] = s[p];
9632 }
9633 return t;
9634 };
9635 return __assign$y.apply(this, arguments);
9636 };
9637 var __rest$p = (undefined && undefined.__rest) || function (s, e) {
9638 var t = {};
9639 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9640 t[p] = s[p];
9641 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9642 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9643 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9644 t[p[i]] = s[p[i]];
9645 }
9646 return t;
9647 };
9648 function getComponent(component, type) {
9649 if (component) {
9650 return component;
9651 }
9652 switch (type) {
9653 case "headline-1":
9654 return "h1";
9655 case "headline-2":
9656 return "h2";
9657 case "headline-3":
9658 return "h3";
9659 case "headline-4":
9660 return "h4";
9661 case "headline-5":
9662 return "h5";
9663 case "headline-6":
9664 case "subtitle-1":
9665 case "subtitle-2":
9666 return "h6";
9667 case "body-1":
9668 case "body-2":
9669 return "p";
9670 case "caption":
9671 return "caption";
9672 case "button":
9673 return "button";
9674 default:
9675 return "span";
9676 }
9677 }
9678 var block$f = bem("rmd-typography");
9679 /**
9680 * The `Text` component is used to render text with the material design
9681 * typography styles applied. By default, everything will be rendered in a
9682 * `<p>` tag with the normal paragraph styles.
9683 *
9684 * When the `type` prop is changed to another typography style, this component
9685 * will determine the "best" element to render the text in *unless* the
9686 * `component` prop is provided. The default mapping is:
9687 *
9688 * - `"headline-1" -> <h1>`
9689 * - `"headline-2" -> <h2>`
9690 * - `"headline-3" -> <h3>`
9691 * - `"headline-4" -> <h4>`
9692 * - `"headline-5" -> <h5>`
9693 * - `"headline-6" -> <h6>`
9694 * - `"subtitle-1" -> <h5>`
9695 * - `"subtitle-2" -> <h6>`
9696 * - `"body-1" -> <p>`
9697 * - `"body-2" -> <p>`
9698 * - `"caption" -> <caption>`
9699 * - `"overline" -> <span>`
9700 * - `"button" -> <button>`
9701 *
9702 * NOTE: if the `component` prop is not `null`, this logic will be ignored and
9703 * the provided `component` will be used instead.
9704 */
9705 var Text = React.forwardRef(function Text(_a, ref) {
9706 var _b;
9707 var propClassName = _a.className, children = _a.children, _c = _a.type, type = _c === void 0 ? "body-1" : _c, _d = _a.component, component = _d === void 0 ? null : _d, align = _a.align, color = _a.color, decoration = _a.decoration, transform = _a.transform, weight = _a.weight, fontStyle = _a.fontStyle, _e = _a.margin, margin = _e === void 0 ? "initial" : _e, props = __rest$p(_a, ["className", "children", "type", "component", "align", "color", "decoration", "transform", "weight", "fontStyle", "margin"]);
9708 var className = classnames(block$f((_b = {},
9709 _b[type] = true,
9710 _b["no-margin"] = margin === "none",
9711 _b["no-margin-top"] = margin === "bottom",
9712 _b["no-margin-bottom"] = margin === "top",
9713 _b[align || ""] = align,
9714 _b[decoration || ""] = decoration && decoration !== "overline",
9715 _b[color || ""] = color,
9716 // only because "overline" is technically one of the valid material design types :/
9717 _b["overline-decoration"] = decoration === "overline",
9718 _b[transform || ""] = transform,
9719 _b[weight || ""] = weight,
9720 _b[fontStyle || ""] = fontStyle,
9721 _b)), propClassName);
9722 if (typeof children === "function") {
9723 return children({ className: className });
9724 }
9725 return React.createElement(getComponent(component, type), __assign$y(__assign$y({}, props), { className: className, ref: ref }), children);
9726 });
9727 {
9728 try {
9729 var PropTypes$r = require("prop-types");
9730 Text.propTypes = {
9731 className: PropTypes$r.string,
9732 type: PropTypes$r.oneOf([
9733 "headline-1",
9734 "headline-2",
9735 "headline-3",
9736 "headline-4",
9737 "headline-5",
9738 "headline-6",
9739 "subtitle-1",
9740 "subtitle-2",
9741 "body-1",
9742 "body-2",
9743 "caption",
9744 "overline",
9745 "button",
9746 ]),
9747 component: PropTypes$r.oneOfType([
9748 PropTypes$r.string,
9749 PropTypes$r.func,
9750 PropTypes$r.object,
9751 ]),
9752 children: PropTypes$r.oneOfType([PropTypes$r.node, PropTypes$r.func]),
9753 align: PropTypes$r.oneOf(["", "left", "center", "right"]),
9754 decoration: PropTypes$r.oneOf(["underline", "overline", "line-through"]),
9755 weight: PropTypes$r.oneOf([
9756 "thin",
9757 "light",
9758 "regular",
9759 "medium",
9760 "bold",
9761 "semi-bold",
9762 "black",
9763 ]),
9764 transform: PropTypes$r.oneOf(["", "capitalize", "uppercase", "lowercase"]),
9765 color: PropTypes$r.oneOf([
9766 "secondary",
9767 "hint",
9768 "theme-primary",
9769 "theme-secondary",
9770 "theme-warning",
9771 "theme-error",
9772 ]),
9773 margin: PropTypes$r.oneOf(["initial", "none", "top", "bottom"]),
9774 fontStyle: PropTypes$r.oneOf(["normal", "italic", "oblique"]),
9775 };
9776 }
9777 catch (e) { }
9778 }
9779
9780 var __assign$z = (undefined && undefined.__assign) || function () {
9781 __assign$z = Object.assign || function(t) {
9782 for (var s, i = 1, n = arguments.length; i < n; i++) {
9783 s = arguments[i];
9784 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9785 t[p] = s[p];
9786 }
9787 return t;
9788 };
9789 return __assign$z.apply(this, arguments);
9790 };
9791 var __rest$q = (undefined && undefined.__rest) || function (s, e) {
9792 var t = {};
9793 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9794 t[p] = s[p];
9795 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9796 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9797 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9798 t[p[i]] = s[p[i]];
9799 }
9800 return t;
9801 };
9802 var TextContainer = React.forwardRef(function TextContainer(_a, ref) {
9803 var propClassName = _a.className, _b = _a.component, Component = _b === void 0 ? "div" : _b, _c = _a.size, size = _c === void 0 ? "auto" : _c, children = _a.children, clone = _a.clone, props = __rest$q(_a, ["className", "component", "size", "children", "clone"]);
9804 var className = classnames("rmd-text-container rmd-text-container--" + size, propClassName);
9805 if (clone && React.isValidElement(children)) {
9806 var child = React.Children.only(children);
9807 return React.cloneElement(child, {
9808 className: classnames(child.props.className, className),
9809 });
9810 }
9811 if (typeof children === "function") {
9812 return children({ className: className });
9813 }
9814 return (React__default.createElement(Component, __assign$z({}, props, { className: className, ref: ref }), children));
9815 });
9816 {
9817 try {
9818 var PropTypes$s = require("prop-types");
9819 TextContainer.propTypes = {
9820 className: PropTypes$s.string,
9821 size: PropTypes$s.oneOf(["auto", "mobile", "desktop"]),
9822 component: PropTypes$s.oneOfType([
9823 PropTypes$s.string,
9824 PropTypes$s.func,
9825 PropTypes$s.object,
9826 ]),
9827 children: PropTypes$s.oneOfType([PropTypes$s.node, PropTypes$s.func]),
9828 clone: PropTypes$s.bool,
9829 };
9830 }
9831 catch (e) { }
9832 }
9833
9834 var __assign$A = (undefined && undefined.__assign) || function () {
9835 __assign$A = Object.assign || function(t) {
9836 for (var s, i = 1, n = arguments.length; i < n; i++) {
9837 s = arguments[i];
9838 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9839 t[p] = s[p];
9840 }
9841 return t;
9842 };
9843 return __assign$A.apply(this, arguments);
9844 };
9845 var __rest$r = (undefined && undefined.__rest) || function (s, e) {
9846 var t = {};
9847 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9848 t[p] = s[p];
9849 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9850 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9851 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9852 t[p[i]] = s[p[i]];
9853 }
9854 return t;
9855 };
9856 var block$g = bem("rmd-sr-only");
9857 /**
9858 * This component is used to create text that is only visible to screen readers.
9859 * If you enable the `focusable` prop, the text will become visible to all users
9860 * while focused.
9861 */
9862 var SrOnly = React.forwardRef(function SrOnly(_a, ref) {
9863 var className = _a.className, children = _a.children, _b = _a.focusable, focusable = _b === void 0 ? false : _b, propTabIndex = _a.tabIndex, _c = _a.component, component = _c === void 0 ? "span" : _c, props = __rest$r(_a, ["className", "children", "focusable", "tabIndex", "component"]);
9864 var tabIndex = propTabIndex;
9865 if (focusable && typeof tabIndex === "undefined") {
9866 tabIndex = 0;
9867 }
9868 return (React__default.createElement(Text, __assign$A({}, props, { ref: ref, tabIndex: tabIndex, component: component, className: classnames(block$g({ focusable: focusable }), className) }), children));
9869 });
9870 {
9871 try {
9872 var PropTypes$t = require("prop-types");
9873 SrOnly.propTypes = {
9874 className: PropTypes$t.string,
9875 children: PropTypes$t.node,
9876 tabIndex: PropTypes$t.number,
9877 focusable: PropTypes$t.bool,
9878 component: PropTypes$t.oneOfType([
9879 PropTypes$t.string,
9880 PropTypes$t.func,
9881 PropTypes$t.object,
9882 ]),
9883 };
9884 }
9885 catch (e) { }
9886 }
9887
9888 var __assign$B = (undefined && undefined.__assign) || function () {
9889 __assign$B = Object.assign || function(t) {
9890 for (var s, i = 1, n = arguments.length; i < n; i++) {
9891 s = arguments[i];
9892 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9893 t[p] = s[p];
9894 }
9895 return t;
9896 };
9897 return __assign$B.apply(this, arguments);
9898 };
9899 var __rest$s = (undefined && undefined.__rest) || function (s, e) {
9900 var t = {};
9901 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9902 t[p] = s[p];
9903 if (s != null && typeof Object.getOwnPropertySymbols === "function")
9904 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9905 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9906 t[p[i]] = s[p[i]];
9907 }
9908 return t;
9909 };
9910 var block$h = bem("rmd-file-input");
9911 /**
9912 * This component is a wrapper for the `<input type="file" />` that can be themed
9913 * like a button.
9914 */
9915 var FileInput = React.forwardRef(function FileInput(_a, ref) {
9916 var style = _a.style, propClassName = _a.className, propIcon = _a.icon, _b = _a.iconAfter, iconAfter = _b === void 0 ? false : _b, _c = _a.children, children = _c === void 0 ? React__default.createElement(SrOnly, null, "Upload") : _c, _d = _a.theme, theme = _d === void 0 ? "primary" : _d, _e = _a.themeType, themeType = _e === void 0 ? "contained" : _e, _f = _a.buttonType, buttonType = _f === void 0 ? "icon" : _f, _g = _a.multiple, multiple = _g === void 0 ? false : _g, _h = _a.disableIconSpacing, disableIconSpacing = _h === void 0 ? false : _h, _j = _a.disableRepeatableFiles, disableRepeatableFiles = _j === void 0 ? false : _j, onKeyDown = _a.onKeyDown, onKeyUp = _a.onKeyUp, onMouseDown = _a.onMouseDown, onMouseUp = _a.onMouseUp, onMouseLeave = _a.onMouseLeave, onClick = _a.onClick, onTouchStart = _a.onTouchStart, onTouchMove = _a.onTouchMove, onTouchEnd = _a.onTouchEnd, onChange = _a.onChange, props = __rest$s(_a, ["style", "className", "icon", "iconAfter", "children", "theme", "themeType", "buttonType", "multiple", "disableIconSpacing", "disableRepeatableFiles", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseUp", "onMouseLeave", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onChange"]);
9917 var id = props.id, disabled = props.disabled;
9918 var icon = useIcon("download", propIcon);
9919 var _k = useInteractionStates({
9920 handlers: {
9921 onKeyDown: onKeyDown,
9922 onKeyUp: onKeyUp,
9923 onMouseDown: onMouseDown,
9924 onMouseUp: onMouseUp,
9925 onMouseLeave: onMouseLeave,
9926 onClick: onClick,
9927 onTouchStart: onTouchStart,
9928 onTouchMove: onTouchMove,
9929 onTouchEnd: onTouchEnd,
9930 },
9931 className: buttonThemeClassNames({
9932 theme: theme,
9933 themeType: themeType,
9934 buttonType: buttonType,
9935 disabled: disabled,
9936 className: propClassName,
9937 }),
9938 // pressing enter or space would trigger two click events otherwise.
9939 disableEnterClick: true,
9940 }), ripples = _k.ripples, className = _k.className, handlers = _k.handlers;
9941 var content = icon;
9942 if (disableIconSpacing || (children && !icon)) {
9943 content = (React__default.createElement(React__default.Fragment, null,
9944 !iconAfter && icon,
9945 children,
9946 iconAfter && icon));
9947 }
9948 else if (children) {
9949 content = (React__default.createElement(TextIconSpacing, { icon: icon, iconAfter: iconAfter }, children));
9950 }
9951 return (React__default.createElement(React__default.Fragment, null,
9952 React__default.createElement("input", __assign$B({}, props, handlers, { ref: ref, onChange: onChange, value: disableRepeatableFiles ? undefined : "", type: "file", className: block$h(), multiple: multiple })),
9953 React__default.createElement("label", { htmlFor: id, style: style, className: classnames("rmd-file-input-label", className) },
9954 content,
9955 ripples)));
9956 });
9957 {
9958 try {
9959 var PropTypes$u = require("prop-types");
9960 FileInput.propTypes = {
9961 id: PropTypes$u.string.isRequired,
9962 style: PropTypes$u.object,
9963 className: PropTypes$u.string,
9964 name: PropTypes$u.string,
9965 onChange: PropTypes$u.func.isRequired,
9966 icon: PropTypes$u.node,
9967 iconAfter: PropTypes$u.bool,
9968 multiple: PropTypes$u.bool,
9969 disableIconSpacing: PropTypes$u.bool,
9970 disableRepeatableFiles: PropTypes$u.bool,
9971 theme: PropTypes$u.oneOf([
9972 "clear",
9973 "primary",
9974 "secondary",
9975 "warning",
9976 "error",
9977 ]),
9978 themeType: PropTypes$u.oneOf(["flat", "outline", "contained"]),
9979 buttonType: PropTypes$u.oneOf(["text", "icon"]),
9980 disabled: PropTypes$u.bool,
9981 children: PropTypes$u.node,
9982 onKeyDown: PropTypes$u.func,
9983 onKeyUp: PropTypes$u.func,
9984 onMouseDown: PropTypes$u.func,
9985 onMouseUp: PropTypes$u.func,
9986 onMouseLeave: PropTypes$u.func,
9987 onClick: PropTypes$u.func,
9988 onTouchStart: PropTypes$u.func,
9989 onTouchMove: PropTypes$u.func,
9990 onTouchEnd: PropTypes$u.func,
9991 };
9992 }
9993 catch (e) { }
9994 }
9995
9996 var __assign$C = (undefined && undefined.__assign) || function () {
9997 __assign$C = Object.assign || function(t) {
9998 for (var s, i = 1, n = arguments.length; i < n; i++) {
9999 s = arguments[i];
10000 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10001 t[p] = s[p];
10002 }
10003 return t;
10004 };
10005 return __assign$C.apply(this, arguments);
10006 };
10007 var __rest$t = (undefined && undefined.__rest) || function (s, e) {
10008 var t = {};
10009 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
10010 t[p] = s[p];
10011 if (s != null && typeof Object.getOwnPropertySymbols === "function")
10012 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10013 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10014 t[p[i]] = s[p[i]];
10015 }
10016 return t;
10017 };
10018 var block$i = bem("rmd-label");
10019 /**
10020 * The `Label` component should be used alongside any form elements but is
10021 * already built in to the majority of the `react-md` components by default.
10022 */
10023 var Label = React.forwardRef(function Label(_a, ref) {
10024 var htmlFor = _a.htmlFor, className = _a.className, _b = _a.error, error = _b === void 0 ? false : _b, _c = _a.active, active = _c === void 0 ? false : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, _e = _a.component, Component = _e === void 0 ? "label" : _e, children = _a.children, props = __rest$t(_a, ["htmlFor", "className", "error", "active", "disabled", "component", "children"]);
10025 if (!children) {
10026 return null;
10027 }
10028 return (React__default.createElement(Component, __assign$C({}, props, { ref: ref, className: classnames(block$i({
10029 error: error,
10030 active: active,
10031 disabled: disabled,
10032 }), className), htmlFor: Component === "label" ? htmlFor : undefined }), children));
10033 });
10034 {
10035 try {
10036 var PropTypes$v = require("prop-types");
10037 Label.propTypes = {
10038 htmlFor: PropTypes$v.string.isRequired,
10039 className: PropTypes$v.string,
10040 error: PropTypes$v.bool,
10041 active: PropTypes$v.bool,
10042 disabled: PropTypes$v.bool,
10043 component: PropTypes$v.oneOf(["label", "span"]),
10044 children: PropTypes$v.node,
10045 };
10046 }
10047 catch (e) { }
10048 }
10049
10050 var __assign$D = (undefined && undefined.__assign) || function () {
10051 __assign$D = Object.assign || function(t) {
10052 for (var s, i = 1, n = arguments.length; i < n; i++) {
10053 s = arguments[i];
10054 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10055 t[p] = s[p];
10056 }
10057 return t;
10058 };
10059 return __assign$D.apply(this, arguments);
10060 };
10061 var __rest$u = (undefined && undefined.__rest) || function (s, e) {
10062 var t = {};
10063 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
10064 t[p] = s[p];
10065 if (s != null && typeof Object.getOwnPropertySymbols === "function")
10066 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10067 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10068 t[p[i]] = s[p[i]];
10069 }
10070 return t;
10071 };
10072 var block$j = bem("rmd-floating-label");
10073 /**
10074 * This is an extension of the `Label` component that is used with text fields
10075 * and textareas to float above the input area.
10076 */
10077 var FloatingLabel = React.forwardRef(function FloatingLabel(_a, ref) {
10078 var className = _a.className, dense = _a.dense, valued = _a.valued, floating = _a.floating, _b = _a.error, error = _b === void 0 ? false : _b, _c = _a.active, active = _c === void 0 ? false : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, props = __rest$u(_a, ["className", "dense", "valued", "floating", "error", "active", "disabled"]);
10079 return (React__default.createElement(Label, __assign$D({}, props, { ref: ref, className: classnames(block$j({
10080 dense: dense,
10081 active: floating,
10082 inactive: valued && !active && !error && !disabled,
10083 }), className), error: error, active: active, disabled: disabled })));
10084 });
10085 {
10086 try {
10087 var PropTypes$w = require("prop-types");
10088 FloatingLabel.propTypes = {
10089 className: PropTypes$w.string,
10090 dense: PropTypes$w.bool,
10091 floating: PropTypes$w.bool,
10092 error: PropTypes$w.bool,
10093 active: PropTypes$w.bool,
10094 disabled: PropTypes$w.bool,
10095 valued: PropTypes$w.bool.isRequired,
10096 };
10097 }
10098 catch (e) { }
10099 }
10100
10101 var __assign$E = (undefined && undefined.__assign) || function () {
10102 __assign$E = Object.assign || function(t) {
10103 for (var s, i = 1, n = arguments.length; i < n; i++) {
10104 s = arguments[i];
10105 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10106 t[p] = s[p];
10107 }
10108 return t;
10109 };
10110 return __assign$E.apply(this, arguments);
10111 };
10112 var __rest$v = (undefined && undefined.__rest) || function (s, e) {
10113 var t = {};
10114 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
10115 t[p] = s[p];
10116 if (s != null && typeof Object.getOwnPropertySymbols === "function")
10117 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10118 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10119 t[p[i]] = s[p[i]];
10120 }
10121 return t;
10122 };
10123 var block$k = bem("rmd-text-field-addon");
10124 /**
10125 * This component is used to add an an icon before or after the text field with
10126 * correct styling.
10127 */
10128 var TextFieldAddon = React.forwardRef(function TextFieldAddon(_a, ref) {
10129 var children = _a.children, className = _a.className, _b = _a.presentational, presentational = _b === void 0 ? true : _b, props = __rest$v(_a, ["children", "className", "presentational"]);
10130 if (!children) {
10131 return null;
10132 }
10133 return (React__default.createElement("span", __assign$E({}, props, { ref: ref, className: classnames(block$k({ presentational: presentational }), className) }), children));
10134 });
10135 {
10136 try {
10137 var PropTypes$x = require("prop-types");
10138 TextFieldAddon.propTypes = {
10139 className: PropTypes$x.string,
10140 children: PropTypes$x.node,
10141 presentational: PropTypes$x.bool,
10142 };
10143 }
10144 catch (e) { }
10145 }
10146
10147 var __assign$F = (undefined && undefined.__assign) || function () {
10148 __assign$F = Object.assign || function(t) {
10149 for (var s, i = 1, n = arguments.length; i < n; i++) {
10150 s = arguments[i];
10151 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10152 t[p] = s[p];
10153 }
10154 return t;
10155 };
10156 return __assign$F.apply(this, arguments);
10157 };
10158 var __rest$w = (undefined && undefined.__rest) || function (s, e) {
10159 var t = {};
10160 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
10161 t[p] = s[p];
10162 if (s != null && typeof Object.getOwnPropertySymbols === "function")
10163 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10164 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10165 t[p[i]] = s[p[i]];
10166 }
10167 return t;
10168 };
10169 var block$l = bem("rmd-text-field-container");
10170 /**
10171 * This is a container component that is used to structure the text field with
10172 * different parts and themes.
10173 */
10174 var TextFieldContainer = React.forwardRef(function TextFieldContainer(_a, ref) {
10175 var _b;
10176 var className = _a.className, children = _a.children, _c = _a.inline, inline = _c === void 0 ? false : _c, propTheme = _a.theme, _d = _a.error, error = _d === void 0 ? false : _d, active = _a.active, label = _a.label, _e = _a.dense, dense = _e === void 0 ? false : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.isLeftAddon, isLeftAddon = _g === void 0 ? true : _g, _h = _a.isRightAddon, isRightAddon = _h === void 0 ? true : _h, leftChildren = _a.leftChildren, rightChildren = _a.rightChildren, propUnderlineDirection = _a.underlineDirection, props = __rest$w(_a, ["className", "children", "inline", "theme", "error", "active", "label", "dense", "disabled", "isLeftAddon", "isRightAddon", "leftChildren", "rightChildren", "underlineDirection"]);
10177 var _j = useFormTheme({
10178 theme: propTheme,
10179 underlineDirection: propUnderlineDirection,
10180 }), theme = _j.theme, underlineDirection = _j.underlineDirection;
10181 var underline = theme === "underline";
10182 var outline = theme === "outline";
10183 var filled = theme === "filled";
10184 var isUnderlined = underline || filled;
10185 var isOutlineActive = outline && active;
10186 return (React__default.createElement("div", __assign$F({}, props, { ref: ref, className: classnames(block$l((_b = {
10187 error: error,
10188 inline: inline,
10189 filled: filled,
10190 outline: outline,
10191 disabled: disabled,
10192 hoverable: !disabled && !isOutlineActive,
10193 label: label && !dense,
10194 dense: !label && dense,
10195 "dense-label": dense && label,
10196 "dense-placeholder": dense && isUnderlined && !label,
10197 "outline-active": isOutlineActive,
10198 "outline-error": outline && error,
10199 "outline-left": outline && leftChildren,
10200 "outline-right": outline && rightChildren,
10201 underline: isUnderlined,
10202 "underline-labelled": label && isUnderlined,
10203 "underline-active": isUnderlined && active
10204 },
10205 _b["underline-" + underlineDirection] = isUnderlined,
10206 _b["underline-left-addon"] = isUnderlined && leftChildren,
10207 _b["underline-right-addon"] = isUnderlined && rightChildren,
10208 _b)), className) }),
10209 isLeftAddon ? (React__default.createElement(TextFieldAddon, null, leftChildren)) : (leftChildren),
10210 children,
10211 isRightAddon ? (React__default.createElement(TextFieldAddon, null, rightChildren)) : (rightChildren)));
10212 });
10213 {
10214 try {
10215 var PropTypes$y = require("prop-types");
10216 TextFieldContainer.propTypes = {
10217 className: PropTypes$y.string,
10218 disabled: PropTypes$y.bool,
10219 inline: PropTypes$y.bool,
10220 theme: PropTypes$y.oneOf(["none", "underline", "outline", "filled"]),
10221 active: PropTypes$y.bool,
10222 error: PropTypes$y.bool,
10223 underlineDirection: PropTypes$y.oneOf(["left", "center", "right"]),
10224 isLeftAddon: PropTypes$y.bool,
10225 isRightAddon: PropTypes$y.bool,
10226 leftChildren: PropTypes$y.node,
10227 rightChildren: PropTypes$y.node,
10228 label: PropTypes$y.bool,
10229 dense: PropTypes$y.bool,
10230 children: PropTypes$y.node,
10231 };
10232 }
10233 catch (e) { }
10234 }
10235
10236 /**
10237 * This is a small hook that will enable a valued flag when the value
10238 * of a text input or a textarea has a length greater than 0.
10239 *
10240 * @private
10241 */
10242 function useValuedState(_a) {
10243 var onChange = _a.onChange, value = _a.value, defaultValue = _a.defaultValue;
10244 var handler = useRefCache(onChange);
10245 var _b = useToggle(function () {
10246 if (typeof value === "undefined") {
10247 return (typeof defaultValue === "number" || (defaultValue || "").length > 0);
10248 }
10249 // this isn't used for controlled components
10250 return false;
10251 }), valued = _b[0], enable = _b[1], disable = _b[2];
10252 var handleChange = React.useCallback(function (event) {
10253 var onChange = handler.current;
10254 if (onChange) {
10255 onChange(event);
10256 }
10257 if (event.currentTarget.value.length > 0) {
10258 enable();
10259 }
10260 else {
10261 disable();
10262 }
10263 },
10264 // disabled since useRefCache
10265 // eslint-disable-next-line react-hooks/exhaustive-deps
10266 [enable, disable]);
10267 if (typeof value !== "undefined") {
10268 var isValued = typeof value === "number" || value.length > 0;
10269 return [isValued, onChange];
10270 }
10271 return [valued, handleChange];
10272 }
10273
10274 /**
10275 * @private
10276 */
10277 function useFocusState(_a) {
10278 var onFocus = _a.onFocus, onBlur = _a.onBlur;
10279 var _b = useToggle(false), focused = _b[0], setFocused = _b[1], setBlurred = _b[2];
10280 var handleFocus = React.useCallback(function (event) {
10281 if (onFocus) {
10282 onFocus(event);
10283 }
10284 setFocused();
10285 }, [setFocused, onFocus]);
10286 var handleBlur = React.useCallback(function (event) {
10287 if (onBlur) {
10288 onBlur(event);
10289 }
10290 setBlurred();
10291 }, [setBlurred, onBlur]);
10292 return [focused, handleFocus, handleBlur];
10293 }
10294
10295 var __assign$G = (undefined && undefined.__assign) || function () {
10296 __assign$G = Object.assign || function(t) {
10297 for (var s, i = 1, n = arguments.length; i < n; i++) {
10298 s = arguments[i];
10299 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10300 t[p] = s[p];
10301 }
10302 return t;
10303 };
10304 return __assign$G.apply(this, arguments);
10305 };
10306 var __rest$x = (undefined && undefined.__rest) || function (s, e) {
10307 var t = {};
10308 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
10309 t[p] = s[p];
10310 if (s != null && typeof Object.getOwnPropertySymbols === "function")
10311 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10312 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10313 t[p[i]] = s[p[i]];
10314 }
10315 return t;
10316 };
10317 var block$m = bem("rmd-native-select");
10318 var container = bem("rmd-native-select-container");
10319 /**
10320 * This component is used to render a native `<select>` element with the text
10321 * field theme styles. This component is great to use for native behavior and
10322 * full accessibility.
10323 */
10324 var NativeSelect = React.forwardRef(function NativeSelect(_a, ref) {
10325 var style = _a.style, className = _a.className, labelStyle = _a.labelStyle, labelClassName = _a.labelClassName, selectStyle = _a.selectStyle, selectClassName = _a.selectClassName, propIcon = _a.icon, propTheme = _a.theme, _b = _a.dense, dense = _b === void 0 ? false : _b, _c = _a.inline, inline = _c === void 0 ? false : _c, _d = _a.error, error = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, label = _a.label, propOnBlur = _a.onBlur, propOnFocus = _a.onFocus, propOnChange = _a.onChange, containerRef = _a.containerRef, isLeftAddon = _a.isLeftAddon, isRightAddon = _a.isRightAddon, leftChildren = _a.leftChildren, rightChildren = _a.rightChildren, propUnderlineDirection = _a.underlineDirection, children = _a.children, props = __rest$x(_a, ["style", "className", "labelStyle", "labelClassName", "selectStyle", "selectClassName", "icon", "theme", "dense", "inline", "error", "disabled", "label", "onBlur", "onFocus", "onChange", "containerRef", "isLeftAddon", "isRightAddon", "leftChildren", "rightChildren", "underlineDirection", "children"]);
10326 var id = props.id, value = props.value, defaultValue = props.defaultValue, multiple = props.multiple;
10327 var _f = useFormTheme({
10328 theme: propTheme,
10329 underlineDirection: propUnderlineDirection,
10330 }), theme = _f.theme, underlineDirection = _f.underlineDirection;
10331 var underline = theme === "underline" || theme === "filled";
10332 var icon = useIcon("dropdown", propIcon);
10333 var _g = useFocusState({
10334 onBlur: propOnBlur,
10335 onFocus: propOnFocus,
10336 }), focused = _g[0], onFocus = _g[1], onBlur = _g[2];
10337 var _h = useValuedState({
10338 value: value,
10339 defaultValue: defaultValue,
10340 onChange: propOnChange,
10341 }), valued = _h[0], onChange = _h[1];
10342 return (React__default.createElement(TextFieldContainer, { style: style, className: classnames(container({
10343 multi: multiple,
10344 padded: multiple && label,
10345 }), className), ref: containerRef, theme: theme, error: error, active: focused, label: !!label, dense: dense, inline: inline, disabled: disabled, isLeftAddon: isLeftAddon, isRightAddon: isRightAddon, leftChildren: leftChildren, rightChildren: multiple && rightChildren, underlineDirection: underlineDirection },
10346 React__default.createElement(FloatingLabel, { style: labelStyle, className: classnames(block$m("label"), labelClassName), htmlFor: id, error: error, active: valued && focused, valued: valued, floating: valued || multiple, dense: dense, disabled: disabled }, label),
10347 React__default.createElement("select", __assign$G({}, props, { ref: ref, style: selectStyle, className: classnames(block$m({
10348 icon: icon,
10349 multi: multiple,
10350 "label-underline": label && underline,
10351 "placeholder-underline": !label && underline,
10352 floating: label && theme !== "none",
10353 }), selectClassName), disabled: disabled, onFocus: onFocus, onBlur: onBlur, onChange: onChange }), children),
10354 !multiple && icon && React__default.createElement("span", { className: block$m("icon") }, icon)));
10355 });
10356 {
10357 try {
10358 var PropTypes$z = require("prop-types");
10359 NativeSelect.propTypes = {
10360 id: PropTypes$z.string.isRequired,
10361 style: PropTypes$z.object,
10362 className: PropTypes$z.string,
10363 labelStyle: PropTypes$z.object,
10364 labelClassName: PropTypes$z.string,
10365 selectStyle: PropTypes$z.object,
10366 selectClassName: PropTypes$z.string,
10367 icon: PropTypes$z.node,
10368 value: PropTypes$z.string,
10369 defaultValue: PropTypes$z.oneOfType([
10370 PropTypes$z.string,
10371 PropTypes$z.arrayOf(PropTypes$z.string),
10372 ]),
10373 theme: PropTypes$z.oneOf(["none", "underline", "filled", "outline"]),
10374 dense: PropTypes$z.bool,
10375 error: PropTypes$z.bool,
10376 inline: PropTypes$z.bool,
10377 disabled: PropTypes$z.bool,
10378 underlineDirection: PropTypes$z.oneOf(["left", "center", "right"]),
10379 isLeftAddon: PropTypes$z.bool,
10380 leftChildren: PropTypes$z.node,
10381 rightChildren: PropTypes$z.node,
10382 isRightAddon: PropTypes$z.bool,
10383 multiple: PropTypes$z.bool,
10384 size: PropTypes$z.number,
10385 children: PropTypes$z.node,
10386 label: PropTypes$z.node,
10387 onBlur: PropTypes$z.func,
10388 onFocus: PropTypes$z.func,
10389 onChange: PropTypes$z.func,
10390 containerRef: PropTypes$z.oneOfType([PropTypes$z.func, PropTypes$z.object]),
10391 };
10392 }
10393 catch (e) { }
10394 }
10395
10396 var ENTER = "enter";
10397 var ENTERING$1 = "entering";
10398 var ENTERED$2 = "entered";
10399 var EXIT = "exit";
10400 var EXITING$1 = "exiting";
10401 var EXITED$1 = "exited";
10402 var UNMOUNT = "unmount";
10403 var COLLAPSE_TIMEOUT = {
10404 enter: 250,
10405 exit: 200,
10406 };
10407 var DEFAULT_COLLAPSE_MIN_HEIGHT = 0;
10408 var DEFAULT_COLLAPSE_MIN_PADDING_TOP = 0;
10409 var DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM = 0;
10410 var CROSS_FADE_TIMEOUT = {
10411 enter: 300,
10412 exit: 0,
10413 };
10414 var CROSS_FADE_CLASSNAMES = {
10415 appear: "rmd-cross-fade",
10416 appearActive: "rmd-cross-fade--active",
10417 enter: "rmd-cross-fade",
10418 enterActive: "rmd-cross-fade--active",
10419 };
10420 var SCALE_CLASSNAMES = {
10421 appear: "rmd-transition--scale-enter",
10422 appearActive: "rmd-transition--scale-enter-active",
10423 enter: "rmd-transition--scale-enter",
10424 enterActive: "rmd-transition--scale-enter-active",
10425 enterDone: "",
10426 exit: "rmd-transition--scale-exit",
10427 exitActive: "rmd-transition--scale-exit-active",
10428 };
10429 var SCALE_Y_CLASSNAMES = {
10430 appear: "rmd-transition--scale-y-enter",
10431 appearActive: "rmd-transition--scale-y-enter-active",
10432 enter: "rmd-transition--scale-y-enter",
10433 enterActive: "rmd-transition--scale-y-enter-active",
10434 enterDone: "",
10435 exit: "rmd-transition--scale-y-exit",
10436 exitActive: "rmd-transition--scale-y-exit-active",
10437 };
10438 var SCALE_TIMEOUT = {
10439 enter: 200,
10440 exit: 150,
10441 };
10442
10443 /**
10444 * A small util that will find the max-height, padding-top, and padding-bottom
10445 * for the provided element. This is really used to be able to transition the
10446 * max-height value since `max-height: auto` does not transition. The only way
10447 * to get transition is to change max-height values manually.
10448 *
10449 * @private
10450 */
10451 function getElementSizing(element) {
10452 var maxHeight;
10453 var paddingTop;
10454 var paddingBottom;
10455 if (element) {
10456 maxHeight = element.scrollHeight;
10457 // clone the element (not deep) just to figure out it's padding without the
10458 // inline styles applied
10459 var cloned = element.cloneNode(false);
10460 cloned.style.maxHeight = "";
10461 cloned.style.padding = "";
10462 cloned.style.paddingLeft = element.style.paddingLeft;
10463 cloned.style.paddingRight = element.style.paddingRight;
10464 cloned.style.visibility = "hidden";
10465 var container = element.parentElement || document.body;
10466 container.appendChild(cloned);
10467 var style = window.getComputedStyle(cloned);
10468 if (style.paddingTop) {
10469 paddingTop = parseFloat(style.paddingTop);
10470 }
10471 if (style.paddingBottom) {
10472 paddingBottom = parseFloat(style.paddingBottom);
10473 }
10474 container.removeChild(cloned);
10475 }
10476 return { maxHeight: maxHeight, paddingTop: paddingTop, paddingBottom: paddingBottom };
10477 }
10478
10479 var error = function (part) {
10480 throw new RangeError("Minimum " + (part ? part + " " : "") + "timeout allowed is 0");
10481 };
10482 /**
10483 * @private
10484 */
10485 function getTimeout(timeout, appear) {
10486 var _a, _b, _c;
10487 if (typeof timeout === "number") {
10488 if (timeout < 0) {
10489 error();
10490 }
10491 return {
10492 appear: appear ? timeout : 0,
10493 enter: timeout,
10494 exit: timeout,
10495 };
10496 }
10497 var appearTime = (_a = timeout.appear) !== null && _a !== void 0 ? _a : ((appear && timeout.enter) || 0);
10498 var enter = (_b = timeout.enter) !== null && _b !== void 0 ? _b : 0;
10499 var exit = (_c = timeout.exit) !== null && _c !== void 0 ? _c : 0;
10500 if (appearTime < 0 && typeof timeout.appear === "number") {
10501 error("appear");
10502 }
10503 if (enter < 0) {
10504 error("enter");
10505 }
10506 if (exit < 0) {
10507 error("exit");
10508 }
10509 return {
10510 appear: appearTime,
10511 enter: enter,
10512 exit: exit,
10513 };
10514 }
10515
10516 /**
10517 *
10518 * @private
10519 */
10520 function getNextStage(stage) {
10521 switch (stage) {
10522 case ENTER:
10523 return ENTERING$1;
10524 case ENTERING$1:
10525 return ENTERED$2;
10526 case EXIT:
10527 return EXITING$1;
10528 case EXITING$1:
10529 return EXITED$1;
10530 default:
10531 return stage;
10532 }
10533 }
10534
10535 /**
10536 * Gets the `window.setTimeout` duration that should be used for a given stage.
10537 * This will return `0` for all stagees except for `ENTERING` and `EXITING`.
10538 *
10539 * @private
10540 */
10541 function getTimeoutDuration(stage, appear, enter, exit, appearing) {
10542 if (stage === ENTERING$1) {
10543 return appearing ? appear : enter;
10544 }
10545 if (stage === EXITING$1) {
10546 return exit;
10547 }
10548 return 0;
10549 }
10550
10551 var __assign$H = (undefined && undefined.__assign) || function () {
10552 __assign$H = Object.assign || function(t) {
10553 for (var s, i = 1, n = arguments.length; i < n; i++) {
10554 s = arguments[i];
10555 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10556 t[p] = s[p];
10557 }
10558 return t;
10559 };
10560 return __assign$H.apply(this, arguments);
10561 };
10562 /**
10563 *
10564 * @private
10565 */
10566 var reducer$2 = function (state, action) {
10567 switch (action) {
10568 case ENTER:
10569 case ENTERING$1:
10570 case EXIT:
10571 case EXITING$1:
10572 case EXITED$1:
10573 return __assign$H(__assign$H({}, state), { rendered: true, stage: action });
10574 case ENTERED$2:
10575 return { rendered: true, stage: action, appearing: false };
10576 case UNMOUNT:
10577 return { stage: EXITED$1, rendered: false, appearing: false };
10578 default:
10579 return state;
10580 }
10581 };
10582 /**
10583 *
10584 * @private
10585 */
10586 var INITIAL_STATE = {
10587 appearing: false,
10588 rendered: true,
10589 stage: ENTERED$2,
10590 };
10591 /**
10592 *
10593 * @private
10594 */
10595 var getInitialState = function (transitionIn, temporary, appear) { return function () {
10596 return {
10597 rendered: !temporary || transitionIn,
10598 appearing: appear && transitionIn,
10599 stage: transitionIn && !appear ? ENTERED$2 : EXITED$1,
10600 };
10601 }; };
10602 /**
10603 * This is heavily inspired by the `Transition` component from
10604 * `react-transition-group` since it's really just a hook version of it.
10605 *
10606 * This hook allows you to transition between an enter and exit state with
10607 * defined timeouts, but you'll most likely be looking for the
10608 * `useCSSTransition` instead.
10609 *
10610 * @param options All the options used for the transition.
10611 * @return An object describing the current transition stage and props that
10612 * should be passed to a component.
10613 */
10614 function useTransition(_a) {
10615 var _b = _a.appear, appear = _b === void 0 ? false : _b, _c = _a.repaint, repaint = _c === void 0 ? false : _c, _d = _a.temporary, temporary = _d === void 0 ? false : _d, transitionIn = _a.transitionIn, propTimeout = _a.timeout, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, ref = _a.ref;
10616 var _e = React.useReducer(reducer$2, INITIAL_STATE, getInitialState(transitionIn, temporary, appear)), _f = _e[0], stage = _f.stage, rendered = _f.rendered, appearing = _f.appearing, dispatch = _e[1];
10617 // need to store in mutable ref since these are mostly going to be arrow functions
10618 // and shouldn't cause the transitions to change
10619 var handlers = React.useRef({
10620 onEnter: onEnter,
10621 onEntering: onEntering,
10622 onEntered: onEntered,
10623 onExit: onExit,
10624 onExiting: onExiting,
10625 onExited: onExited,
10626 });
10627 React.useEffect(function () {
10628 handlers.current = {
10629 onEnter: onEnter,
10630 onEntering: onEntering,
10631 onEntered: onEntered,
10632 onExit: onExit,
10633 onExiting: onExiting,
10634 onExited: onExited,
10635 };
10636 });
10637 var timeout = getTimeout(propTimeout, appear);
10638 var nodeRef = React.useRef(null);
10639 var disableEnterExitTransition = React.useRef(!appear || !transitionIn);
10640 // this effect handles the transition from:
10641 // - EXITED -> ENTER
10642 // - ENTERED -> EXIT
10643 // - EXITED -> ENTERED (when enter timeout is 0)
10644 // - ENTERED -> EXITED (when exit timeout is 0)
10645 //
10646 // all the dependencies are ignored except for `transitionIn` since the
10647 // other values changing would actually cause more bugs and this effect
10648 // really doesn't care if they changed.
10649 React.useEffect(function () {
10650 // should never trigger a transition on mount unless both the `appear` and
10651 // `transitionIn` are enabled for the appear transition
10652 if (disableEnterExitTransition.current) {
10653 disableEnterExitTransition.current = false;
10654 return;
10655 }
10656 var duration = 0;
10657 if (transitionIn) {
10658 duration = appearing ? timeout.appear : timeout.enter;
10659 }
10660 else {
10661 duration = timeout.exit;
10662 }
10663 if (duration > 0) {
10664 dispatch(transitionIn ? ENTER : EXIT);
10665 }
10666 else {
10667 dispatch(transitionIn ? ENTERED$2 : EXITED$1);
10668 }
10669 // see comment above about why it's only `transitionIn`
10670 // eslint-disable-next-line react-hooks/exhaustive-deps
10671 }, [transitionIn]);
10672 var isFirstRender = React.useRef(true);
10673 // this effect handles the transitions for:
10674 // - ENTER -> ENTERING
10675 // - ENTERING -> ENTERED
10676 // - EXIT -> EXITING
10677 // - EXITING -> EXIT
10678 React.useEffect(function () {
10679 // need to skip the effects on first render since it should only be called
10680 // after a transition change
10681 if (isFirstRender.current) {
10682 isFirstRender.current = false;
10683 return;
10684 }
10685 var node = nodeRef.current;
10686 if (node) {
10687 if (repaint && stage !== EXITED$1 && stage !== ENTERED$2) {
10688 // force repaint for CSS transitions
10689 // eslint-disable-next-line no-unused-expressions
10690 node.scrollTop;
10691 }
10692 var _a = handlers.current, onEnter_1 = _a.onEnter, onEntering_1 = _a.onEntering, onEntered_1 = _a.onEntered, onExit_1 = _a.onExit, onExiting_1 = _a.onExiting, onExited_1 = _a.onExited;
10693 switch (stage) {
10694 case ENTER:
10695 if (onEnter_1) {
10696 onEnter_1(node, appearing);
10697 }
10698 break;
10699 case ENTERING$1:
10700 if (onEntering_1) {
10701 onEntering_1(node, appearing);
10702 }
10703 break;
10704 case ENTERED$2:
10705 if (onEntered_1) {
10706 onEntered_1(node, appearing);
10707 }
10708 break;
10709 case EXIT:
10710 if (onExit_1) {
10711 onExit_1(node);
10712 }
10713 break;
10714 case EXITING$1:
10715 if (onExiting_1) {
10716 onExiting_1(node);
10717 }
10718 break;
10719 case EXITED$1:
10720 if (onExited_1) {
10721 onExited_1(node);
10722 }
10723 break;
10724 // no default
10725 }
10726 }
10727 var nextStage = getNextStage(stage);
10728 if (stage === nextStage) {
10729 if (stage === EXITED$1 && temporary) {
10730 dispatch(UNMOUNT);
10731 }
10732 return;
10733 }
10734 var duration = getTimeoutDuration(stage, timeout.appear, timeout.enter, timeout.exit, appearing);
10735 if (duration <= 0) {
10736 dispatch(nextStage);
10737 return;
10738 }
10739 var dispatchTimeout = window.setTimeout(function () {
10740 dispatch(nextStage);
10741 }, duration);
10742 return function () {
10743 window.clearTimeout(dispatchTimeout);
10744 };
10745 }, [
10746 appearing,
10747 repaint,
10748 stage,
10749 temporary,
10750 timeout.appear,
10751 timeout.enter,
10752 timeout.exit,
10753 ]);
10754 var refHandler = React.useCallback(function (instance) {
10755 applyRef(instance, ref);
10756 nodeRef.current = instance;
10757 }, [ref]);
10758 return {
10759 ref: refHandler,
10760 stage: stage,
10761 rendered: rendered,
10762 appearing: appearing,
10763 dispatch: dispatch,
10764 };
10765 }
10766
10767 /**
10768 * The `useCollapse` hook is used to transition a child element in and
10769 * out of view by animating it's `max-height`. This means that the child
10770 * must either be an HTMLElement or a component that forwards the `ref`
10771 * to an HTMLElement and applies the `style`, `className`, and `hidden`
10772 * props to an HTMLElement.
10773 *
10774 * Simple Example:
10775 *
10776 * ```tsx
10777 * const Example = () => {
10778 * const [collapsed, setCollapsed] = useState(true);
10779 * const [rendered, transitionProps] = useCollapse(collapsed);
10780 *
10781 * return (
10782 * <>
10783 * <Button onClick={() => setCollapsed(!collapsed)}>Toggle</Button>
10784 * {rendered && (
10785 * <div {...transitionProps}>
10786 * <Text>Stuff that should be animated</Text>
10787 * <div>Whatever content...</div>
10788 * </div>
10789 * )}
10790 * </>
10791 * );
10792 * }
10793 * ```
10794 *
10795 * Note: This **should not be used for `position: absolute` or `position: fixed`
10796 * elements**. Instead, the `ScaleTransition` or just a simple `transform`
10797 * transition should be used instead. Animating `max-height`, `padding-top`, and
10798 * `padding-bottom` is much less performant than `transform` transition since it
10799 * forces the DOM to repaint during the
10800 *
10801 * @param collapsed Boolean if the element is currently collapsed. Changing this
10802 * value will cause the animation to trigger.
10803 * @param options All the additional options available for the collapse
10804 * transition.
10805 * @return An ordered list containing a boolean if the collapse should be
10806 * rendered in the DOM followed by an object of props to pass to the collapsible
10807 * element to handle the transition.
10808 */
10809 function useCollapse(collapsed, _a) {
10810 var _b = _a === void 0 ? {} : _a, className = _b.className, _c = _b.appear, appear = _c === void 0 ? false : _c, _d = _b.timeout, timeout = _d === void 0 ? COLLAPSE_TIMEOUT : _d, onEnter = _b.onEnter, onEntering = _b.onEntering, onEntered = _b.onEntered, onExit = _b.onExit, onExiting = _b.onExiting, onExited = _b.onExited, _e = _b.minHeight, minHeight = _e === void 0 ? DEFAULT_COLLAPSE_MIN_HEIGHT : _e, _f = _b.minPaddingTop, minPaddingTop = _f === void 0 ? DEFAULT_COLLAPSE_MIN_PADDING_TOP : _f, _g = _b.minPaddingBottom, minPaddingBottom = _g === void 0 ? DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM : _g, _h = _b.temporary, temporary = _h === void 0 ? minHeight === 0 &&
10811 minPaddingTop === 0 &&
10812 minPaddingBottom === 0 : _h;
10813 var _j = React.useState(function () {
10814 if (!collapsed) {
10815 return undefined;
10816 }
10817 return {
10818 maxHeight: minHeight,
10819 paddingTop: minPaddingTop,
10820 paddingBottom: minPaddingBottom,
10821 };
10822 }), style = _j[0], setStyle = _j[1];
10823 var _k = useTransition({
10824 appear: appear,
10825 repaint: true,
10826 timeout: timeout,
10827 temporary: temporary,
10828 transitionIn: !collapsed,
10829 onEnter: function (node, isAppearing) {
10830 if (onEnter) {
10831 onEnter(node, isAppearing);
10832 }
10833 setStyle({
10834 maxHeight: minHeight,
10835 paddingTop: minPaddingTop,
10836 paddingBottom: minPaddingBottom,
10837 });
10838 },
10839 onEntering: function (node, isAppearing) {
10840 if (onEntering) {
10841 onEntering(node, isAppearing);
10842 }
10843 var _a = getElementSizing(node), maxHeight = _a.maxHeight, paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;
10844 var defaultedTimeout = getTimeout(timeout, isAppearing);
10845 var duration = isAppearing
10846 ? defaultedTimeout.appear
10847 : defaultedTimeout.enter;
10848 setStyle({
10849 maxHeight: maxHeight,
10850 paddingTop: paddingTop,
10851 paddingBottom: paddingBottom,
10852 transitionDuration: duration + "ms",
10853 });
10854 },
10855 onEntered: function (node, isAppearing) {
10856 if (onEntered) {
10857 onEntered(node, isAppearing);
10858 }
10859 setStyle(undefined);
10860 },
10861 onExit: function (node) {
10862 if (onExit) {
10863 onExit(node);
10864 }
10865 var _a = getElementSizing(node), maxHeight = _a.maxHeight, paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;
10866 setStyle({
10867 maxHeight: maxHeight,
10868 paddingTop: paddingTop,
10869 paddingBottom: paddingBottom,
10870 transitionDuration: getTimeout(timeout, false).exit + "ms",
10871 });
10872 },
10873 onExiting: function (node) {
10874 if (onExiting) {
10875 onExiting(node);
10876 }
10877 setStyle({
10878 maxHeight: minHeight,
10879 paddingTop: minPaddingTop,
10880 paddingBottom: minPaddingBottom,
10881 transitionDuration: getTimeout(timeout, false).exit + "ms",
10882 });
10883 },
10884 onExited: function (node) {
10885 if (onExited) {
10886 onExited(node);
10887 }
10888 setStyle({
10889 maxHeight: minHeight,
10890 paddingTop: minPaddingTop,
10891 paddingBottom: minPaddingBottom,
10892 });
10893 },
10894 }), rendered = _k.rendered, stage = _k.stage, ref = _k.ref;
10895 var entering = stage === ENTER || stage === ENTERING$1;
10896 var exiting = stage === EXIT || stage === EXITING$1;
10897 var collapsable = React.useMemo(function () { return Object.values(getTimeout(timeout, false)).some(function (v) { return v !== 0; }); }, [timeout]);
10898 var hidden = collapsed &&
10899 rendered &&
10900 stage === EXITED$1 &&
10901 !temporary &&
10902 minHeight === 0 &&
10903 minPaddingTop === 0 &&
10904 minPaddingBottom === 0;
10905 return [
10906 rendered,
10907 {
10908 ref: ref,
10909 hidden: hidden,
10910 style: style,
10911 className: classnames({
10912 "rmd-collapse": collapsable,
10913 "rmd-collapse--enter": entering,
10914 "rmd-collapse--leave": exiting,
10915 "rmd-collapse--no-overflow": collapsed || style,
10916 }, className),
10917 },
10918 ];
10919 }
10920
10921 var __assign$I = (undefined && undefined.__assign) || function () {
10922 __assign$I = Object.assign || function(t) {
10923 for (var s, i = 1, n = arguments.length; i < n; i++) {
10924 s = arguments[i];
10925 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10926 t[p] = s[p];
10927 }
10928 return t;
10929 };
10930 return __assign$I.apply(this, arguments);
10931 };
10932 /**
10933 * The `Collapse` component is used to transition a child element in and
10934 * out of view by animating it's `max-height`. This means that the child must
10935 * either be an HTMLElement or a component that forwards the `ref` to an
10936 * HTMLElement and applies the `style`, `className`, and `hidden` props to an
10937 * HTMLElement.
10938 *
10939 * Note: This component **should not be used for `position: absolute` or
10940 * `position: fixed` elements**. Instead, the `ScaleTransition` or just a simple
10941 * `transform` transition should be used instead. Animating `max-height`,
10942 * `padding-top`, and `padding-bottom` is much less performant than `transform`
10943 * transition since it forces DOM repaints.
10944 */
10945 function Collapse(_a) {
10946 var children = _a.children, collapsed = _a.collapsed, className = _a.className, _b = _a.appear, appear = _b === void 0 ? false : _b, _c = _a.timeout, timeout = _c === void 0 ? COLLAPSE_TIMEOUT : _c, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, _d = _a.minHeight, minHeight = _d === void 0 ? DEFAULT_COLLAPSE_MIN_HEIGHT : _d, _e = _a.minPaddingTop, minPaddingTop = _e === void 0 ? DEFAULT_COLLAPSE_MIN_PADDING_TOP : _e, _f = _a.minPaddingBottom, minPaddingBottom = _f === void 0 ? DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM : _f, _g = _a.temporary, temporary = _g === void 0 ? minHeight === 0 && minPaddingTop === 0 && minPaddingBottom === 0 : _g;
10947 var _h = useCollapse(collapsed, {
10948 appear: appear,
10949 temporary: temporary,
10950 className: className,
10951 timeout: timeout,
10952 onEnter: onEnter,
10953 onEntering: onEntering,
10954 onEntered: onEntered,
10955 onExit: onExit,
10956 onExiting: onExiting,
10957 onExited: onExited,
10958 minHeight: minHeight,
10959 minPaddingBottom: minPaddingBottom,
10960 minPaddingTop: minPaddingTop,
10961 }), rendered = _h[0], transitionProps = _h[1];
10962 if (!rendered) {
10963 return null;
10964 }
10965 var child = React.Children.only(children);
10966 var transitionStyle = transitionProps.style;
10967 var childStyle = child.props.style;
10968 return React.cloneElement(child, __assign$I(__assign$I({}, transitionProps), { style: transitionStyle ? __assign$I(__assign$I({}, transitionStyle), childStyle) : childStyle, className: classnames(transitionProps.className, child.props.className) }));
10969 }
10970 {
10971 try {
10972 var PropTypes$A = require("prop-types");
10973 Collapse.propTypes = {
10974 style: PropTypes$A.object,
10975 className: PropTypes$A.string,
10976 collapsed: PropTypes$A.bool.isRequired,
10977 minHeight: PropTypes$A.oneOfType([PropTypes$A.string, PropTypes$A.number]),
10978 minPaddingTop: PropTypes$A.oneOfType([PropTypes$A.string, PropTypes$A.number]),
10979 minPaddingBottom: PropTypes$A.oneOfType([
10980 PropTypes$A.string,
10981 PropTypes$A.number,
10982 ]),
10983 timeout: PropTypes$A.oneOfType([
10984 PropTypes$A.number,
10985 PropTypes$A.shape({
10986 appear: PropTypes$A.number,
10987 enter: PropTypes$A.number,
10988 exit: PropTypes$A.number,
10989 }),
10990 ]),
10991 temporary: PropTypes$A.bool,
10992 children: PropTypes$A.oneOfType([PropTypes$A.func, PropTypes$A.element])
10993 .isRequired,
10994 onEnter: PropTypes$A.func,
10995 onEntering: PropTypes$A.func,
10996 onEntered: PropTypes$A.func,
10997 onExit: PropTypes$A.func,
10998 onExiting: PropTypes$A.func,
10999 onExited: PropTypes$A.func,
11000 };
11001 }
11002 catch (e) { }
11003 }
11004
11005 /**
11006 * Gets an object of al the CSS class names to use for the useCSSTransition
11007 * hook. This will do some nice things like default the `appear` classes to the
11008 * `enter` classes if the provided classNames left the `appear` classes as
11009 * undefined but enabled the `appear` state.
11010 *
11011 * @private
11012 */
11013 function getClassNames(classNames, timeout) {
11014 if (typeof classNames === "string") {
11015 return {
11016 appear: timeout.appear ? classNames + "--appear" : "",
11017 appearActive: timeout.appear ? classNames + "--appear-active" : "",
11018 appearDone: "",
11019 enter: timeout.enter ? classNames + "--enter" : "",
11020 enterActive: timeout.enter ? classNames + "--enter-active" : "",
11021 enterDone: "",
11022 exit: timeout.exit ? classNames + "--exit" : "",
11023 exitActive: timeout.exit ? classNames + "--exit-active" : "",
11024 exitDone: "",
11025 };
11026 }
11027 return defaults(classNames, {
11028 appear: (timeout.appear && classNames.enter) || "",
11029 appearActive: (timeout.appear && classNames.enterActive) || "",
11030 appearDone: (timeout.appear && classNames.enterDone) || "",
11031 enter: "",
11032 enterActive: "",
11033 enterDone: "",
11034 exit: "",
11035 exitActive: "",
11036 exitDone: "",
11037 });
11038 }
11039
11040 /**
11041 * This hook is heavily inspired by the `CSSTransition` component from
11042 * `react-transition-group` since it's really just a hook version for it.
11043 *
11044 * This hook allows you to transition class names for an element for enter and
11045 * exit transitions.
11046 *
11047 * There are two different ways to create an "appear-only"/"on-mount-only"
11048 * transition: use the `onEntered` callback to reset the `transitionIn` to
11049 * false, or manually fire the `ENTERED` action with the returned `dispatch`
11050 * function when it should be fired again.
11051 *
11052 * Example changing `transitionIn` for pathname changes:
11053 * ```ts
11054 * const [transitionIn, setTransitionIn] = useState(true);
11055 * const [rendered, transitionProps] = useCSSTransition({
11056 * appear: true,
11057 * timeout: { enter: 200 },
11058 * transitionIn,
11059 * onEntered: () => setTransitionIn(false),
11060 * });
11061 *
11062 * const prevPathname = useRef(pathname);
11063 * if (pathname !== prevPathname.current) {
11064 * prevPathname.current = pathname;
11065 * setTransitionIn(true)
11066 * }
11067 *
11068 * return (
11069 * <div {...transitionProps}>
11070 * <Switch>
11071 * <Route path="/" component={Home} />
11072 * <Route path="/other" component={Other} />
11073 * </Switch>
11074 * </div>
11075 * );
11076 * ```
11077 *
11078 * Example with `dispatch` for pathname changes:
11079 * ```ts
11080 * const [rendered, transitionProps, dispatch] = useCSSTransition({
11081 * appear: true,
11082 * timeout: { enter: 200 },
11083 * transitionIn: true,
11084 * });
11085 *
11086 * const prevPathname = useRef(pathname);
11087 * if (pathname !== prevPathname.current) {
11088 * prevPathname.current = pathname;
11089 * dispatch(ENTERED);
11090 * }
11091 *
11092 * return (
11093 * <div {...transitionProps}>
11094 * <Switch>
11095 * <Route path="/" component={Home} />
11096 * <Route path="/other" component={Other} />
11097 * </Switch>
11098 * </div>
11099 * );
11100 * ```
11101 *
11102 * @see useCrossFade The `useCrossFade` is a good example of using this hook for
11103 * a custom CSS Transition.
11104 * @param options The transition options
11105 * @return An ordered list of a boolean if the component should be rendered,
11106 * transition props to provide to the transitioning element, a dispatch function
11107 * for triggering the transition manually (should not be used much), and the
11108 * current transition stage.
11109 */
11110 function useCSSTransition(_a) {
11111 var _b = _a.appear, appear = _b === void 0 ? false : _b, _c = _a.temporary, temporary = _c === void 0 ? false : _c, timeout = _a.timeout, transitionIn = _a.transitionIn, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, className = _a.className, propClassNames = _a.classNames, propRef = _a.ref;
11112 var _d = useTransition({
11113 ref: propRef,
11114 appear: appear,
11115 repaint: true,
11116 timeout: timeout,
11117 temporary: temporary,
11118 transitionIn: transitionIn,
11119 onEnter: onEnter,
11120 onEntering: onEntering,
11121 onEntered: onEntered,
11122 onExit: onExit,
11123 onExiting: onExiting,
11124 onExited: onExited,
11125 }), rendered = _d.rendered, stage = _d.stage, ref = _d.ref, appearing = _d.appearing, dispatch = _d.dispatch;
11126 var classNames = getClassNames(propClassNames, getTimeout(timeout, appear));
11127 var isEntering = stage === ENTERING$1;
11128 var isEnter = isEntering || stage === ENTER;
11129 var isEntered = stage === ENTERED$2;
11130 var isExiting = stage === EXITING$1;
11131 var isExit = isExiting || stage === EXIT;
11132 var isExited = stage === EXITED$1;
11133 return [
11134 rendered,
11135 {
11136 ref: ref,
11137 className: classnames(className,
11138 // Note: can't use the object syntax for classNames since it'll fail
11139 // if the same classes are used for different phases since they'd have
11140 // the same key in the object...
11141 appearing && classNames.appear, appearing && isEntering && classNames.appearActive, appearing && isEntered && classNames.appearDone, !appearing && isEnter && classNames.enter, !appearing && isEntering && classNames.enterActive, !appearing && isEntered && classNames.enterDone, isExit && classNames.exit, isExiting && classNames.exitActive, isExited && classNames.exitDone) || undefined,
11142 },
11143 dispatch,
11144 stage,
11145 ];
11146 }
11147
11148 /**
11149 * This is a simple wrapper for the `useCSSTransition` that will allow you to
11150 * trigger cross fade transitions. The default behavior for this hook triggers
11151 * the transition immediately once mounted. This is great if it is being used
11152 * for new data appearing in a list, but not super great for route transitions.
11153 *
11154 * If you want to create a route transition, it's recommended to set the
11155 * `appear` option to `false` and then manually fire the `ENTER` transition from
11156 * the `dispatch` function. Here's a quick example using the `Layout` component
11157 * from `@react-md/layout` and `react-router`.
11158 *
11159 * ```tsx
11160 * import { useLocation, BrowserRouter } from "react-router-dom";
11161 * import { useCrossFade, ENTER } from "@react-md/transition";
11162 *
11163 * const App = () => {
11164 * const { pathname } = useLocation();
11165 * const [, { ref, className }, dispatch] = useCrossFade({
11166 * appear: false,
11167 * });
11168 *
11169 * const prevPathname = useRef(pathname);
11170 * if (pathname !== prevPathname.current) {
11171 * prevPathname.current = pathname;
11172 * dispatch(ENTER);
11173 * }
11174 *
11175 * return (
11176 * <Layout
11177 * {...useLayoutNavigation(navItems, pathname)}
11178 * appBarTitle="My App"
11179 * mainRef={ref}
11180 * mainClassName={className}
11181 * >
11182 * {children}
11183 * </Layout>
11184 * );
11185 * }
11186 * ```
11187 *
11188 * @param options Any additional options and configuration that should be used
11189 * for the transition.
11190 * @return An ordered list of a boolean if the component should be rendered,
11191 * transition props to provide to the transitioning element, a dispatch function
11192 * for triggering the transition manually (should not be used much), and the
11193 * current transition stage.
11194 */
11195 function useCrossFade(_a) {
11196 var _b = _a === void 0 ? {} : _a, _c = _b.appear, appear = _c === void 0 ? false : _c, _d = _b.temporary, temporary = _d === void 0 ? false : _d, _e = _b.transitionIn, transitionIn = _e === void 0 ? true : _e, className = _b.className, onEnter = _b.onEnter, onEntering = _b.onEntering, onEntered = _b.onEntered, onExit = _b.onExit, onExiting = _b.onExiting, onExited = _b.onExited;
11197 return useCSSTransition({
11198 appear: appear,
11199 timeout: CROSS_FADE_TIMEOUT,
11200 classNames: CROSS_FADE_CLASSNAMES,
11201 transitionIn: transitionIn,
11202 className: className,
11203 onEnter: onEnter,
11204 onEntering: onEntering,
11205 onEntered: onEntered,
11206 onExit: onExit,
11207 onExiting: onExiting,
11208 onExited: onExited,
11209 temporary: temporary,
11210 });
11211 }
11212
11213 var __assign$J = (undefined && undefined.__assign) || function () {
11214 __assign$J = Object.assign || function(t) {
11215 for (var s, i = 1, n = arguments.length; i < n; i++) {
11216 s = arguments[i];
11217 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11218 t[p] = s[p];
11219 }
11220 return t;
11221 };
11222 return __assign$J.apply(this, arguments);
11223 };
11224 var __rest$y = (undefined && undefined.__rest) || function (s, e) {
11225 var t = {};
11226 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11227 t[p] = s[p];
11228 if (s != null && typeof Object.getOwnPropertySymbols === "function")
11229 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11230 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11231 t[p[i]] = s[p[i]];
11232 }
11233 return t;
11234 };
11235 /**
11236 * The `Collapse` is really just a convenience wrapper for the `useCrossFade`
11237 * hook that triggers the transition by cloning the `ref` and `className` into
11238 * the `children` of this component.
11239 *
11240 * This transition will only fire on mount and when the `appear` prop is set to
11241 * `true`, so the way to trigger new animations is by changing the `key` for
11242 * this component so it re-mounts. However it is generally not recommended to
11243 * fire this transition on first page load especially when dealing with server
11244 * side rendering. A simple way to work around this is have the `CrossFade` near
11245 * the root of the app and just disable the `appear` prop until the first
11246 * render.
11247 *
11248 * If you want more fine-grain control over the transition, it is recommended to
11249 * use the `useCrossFade` hook instead.
11250 */
11251 var CrossFade = React.forwardRef(function CrossFade(_a, forwardedRef) {
11252 var _b = _a.wrap, wrap = _b === void 0 ? false : _b, _c = _a.appear, appear = _c === void 0 ? true : _c, _d = _a.temporary, temporary = _d === void 0 ? false : _d, propClassName = _a.className, _e = _a.transitionIn, transitionIn = _e === void 0 ? true : _e, children = _a.children, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, props = __rest$y(_a, ["wrap", "appear", "temporary", "className", "transitionIn", "children", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited"]);
11253 var _f = useCrossFade({
11254 ref: forwardedRef,
11255 appear: appear,
11256 className: propClassName,
11257 onEnter: onEnter,
11258 onEntering: onEntering,
11259 onEntered: onEntered,
11260 onExit: onExit,
11261 onExiting: onExiting,
11262 onExited: onExited,
11263 temporary: temporary,
11264 transitionIn: transitionIn,
11265 }), rendered = _f[0], _g = _f[1], ref = _g.ref, className = _g.className;
11266 if (!rendered) {
11267 return null;
11268 }
11269 if (!wrap && React.isValidElement(children)) {
11270 var child = React.Children.only(children);
11271 return React.cloneElement(child, {
11272 ref: ref,
11273 className: classnames(child.props.className, className),
11274 });
11275 }
11276 return (React__default.createElement("div", __assign$J({}, props, { className: className, ref: ref }), children));
11277 });
11278 {
11279 try {
11280 var PropTypes$B = require("prop-types");
11281 CrossFade.propTypes = {
11282 wrap: PropTypes$B.bool,
11283 appear: PropTypes$B.bool,
11284 temporary: PropTypes$B.bool,
11285 style: PropTypes$B.object,
11286 className: PropTypes$B.string,
11287 transitionIn: PropTypes$B.bool,
11288 onEnter: PropTypes$B.func,
11289 onEntering: PropTypes$B.func,
11290 onEntered: PropTypes$B.func,
11291 onExit: PropTypes$B.func,
11292 onExiting: PropTypes$B.func,
11293 onExited: PropTypes$B.func,
11294 children: PropTypes$B.oneOfType([PropTypes$B.node, PropTypes$B.element]),
11295 };
11296 }
11297 catch (e) { }
11298 }
11299
11300 var __assign$K = (undefined && undefined.__assign) || function () {
11301 __assign$K = Object.assign || function(t) {
11302 for (var s, i = 1, n = arguments.length; i < n; i++) {
11303 s = arguments[i];
11304 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11305 t[p] = s[p];
11306 }
11307 return t;
11308 };
11309 return __assign$K.apply(this, arguments);
11310 };
11311 var __rest$z = (undefined && undefined.__rest) || function (s, e) {
11312 var t = {};
11313 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11314 t[p] = s[p];
11315 if (s != null && typeof Object.getOwnPropertySymbols === "function")
11316 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11317 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11318 t[p[i]] = s[p[i]];
11319 }
11320 return t;
11321 };
11322 /**
11323 * This `ScaleTransition` component is used to trigger an animation that
11324 * switches between an opacity of `0` and `1` and using a `transform: scale(0)`
11325 * to `transform: scale(1)`. It is recommended to also manually apply a
11326 * `transform-origin` style or use the `useFixedPositioning` hook to generate
11327 * for you so that the animation starts from a specific point.
11328 *
11329 * Since the default scale animation is X and Y, you can enable the `vertical`
11330 * prop which will update the transition to use `transform: scaleY(0)` to
11331 * `transform: scaleY(1)` instead.
11332 */
11333 function ScaleTransition(_a) {
11334 var visible = _a.visible, children = _a.children, propClassNames = _a.classNames, _b = _a.vertical, vertical = _b === void 0 ? false : _b, _c = _a.timeout, timeout = _c === void 0 ? SCALE_TIMEOUT : _c, _d = _a.portal, portal = _d === void 0 ? false : _d, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, _e = _a.mountOnEnter, mountOnEnter = _e === void 0 ? true : _e, _f = _a.unmountOnExit, unmountOnExit = _f === void 0 ? true : _f, props = __rest$z(_a, ["visible", "children", "classNames", "vertical", "timeout", "portal", "portalInto", "portalIntoId", "mountOnEnter", "unmountOnExit"]);
11335 var classNames = propClassNames;
11336 if (!classNames) {
11337 classNames = vertical ? SCALE_Y_CLASSNAMES : SCALE_CLASSNAMES;
11338 }
11339 return (React__default.createElement(ConditionalPortal, { portal: portal, portalInto: portalInto, portalIntoId: portalIntoId },
11340 React__default.createElement(CSSTransition, __assign$K({}, props, { in: visible, timeout: timeout, classNames: classNames, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit }), children)));
11341 }
11342 {
11343 try {
11344 var PropTypes$C = require("prop-types");
11345 ScaleTransition.propTypes = {
11346 portal: PropTypes$C.bool,
11347 portalInto: PropTypes$C.oneOfType([PropTypes$C.object, PropTypes$C.string]),
11348 portalIntoId: PropTypes$C.string,
11349 mountOnEnter: PropTypes$C.bool,
11350 unmountOnExit: PropTypes$C.bool,
11351 visible: PropTypes$C.bool.isRequired,
11352 vertical: PropTypes$C.bool,
11353 timeout: PropTypes$C.oneOfType([
11354 PropTypes$C.number,
11355 PropTypes$C.shape({
11356 enter: PropTypes$C.number,
11357 exit: PropTypes$C.number,
11358 }),
11359 ]),
11360 classNames: PropTypes$C.oneOfType([
11361 PropTypes$C.string,
11362 PropTypes$C.shape({
11363 appear: PropTypes$C.string,
11364 appearActive: PropTypes$C.string,
11365 enter: PropTypes$C.string,
11366 enterActive: PropTypes$C.string,
11367 enterDone: PropTypes$C.string,
11368 exit: PropTypes$C.string,
11369 exitActive: PropTypes$C.string,
11370 exitDone: PropTypes$C.string,
11371 }),
11372 ]),
11373 children: PropTypes$C.node,
11374 };
11375 }
11376 catch (e) { }
11377 }
11378
11379 var __assign$L = (undefined && undefined.__assign) || function () {
11380 __assign$L = Object.assign || function(t) {
11381 for (var s, i = 1, n = arguments.length; i < n; i++) {
11382 s = arguments[i];
11383 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11384 t[p] = s[p];
11385 }
11386 return t;
11387 };
11388 return __assign$L.apply(this, arguments);
11389 };
11390 function getFixedTo(fixedTo) {
11391 if (!fixedTo) {
11392 return null;
11393 }
11394 var t = typeof fixedTo;
11395 switch (t) {
11396 case "string":
11397 fixedTo = fixedTo;
11398 return (document.getElementById(fixedTo) ||
11399 document.querySelector(fixedTo));
11400 case "function":
11401 return fixedTo();
11402 default:
11403 return fixedTo;
11404 }
11405 }
11406 /**
11407 * This hook is used to automatically handle fixed positioning when an element is used alongside a
11408 * `Transition` from `react-transition-group`. This will provide merged `onEnter`, `onEntering`,
11409 * `onEntered`, and `onExited` handlers to pass down as well as the current style object to apply
11410 * to the element.
11411 *
11412 * Until the element has been removed from the DOM and is visible, the position will automatically
11413 * update when the user scrolls or resizes the screen.
11414 *
11415 * > It is recommended to start the exit animation when that happens though.
11416 */
11417 function useFixedPositioning(_a) {
11418 var onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExited = _a.onExited, fixedTo = _a.fixedTo, getOptions = _a.getOptions, onResize = _a.onResize, onScroll = _a.onScroll, _b = _a.anchor, currentAnchor = _b === void 0 ? {} : _b, initialX = _a.initialX, initialY = _a.initialY, _c = _a.xMargin, xMargin = _c === void 0 ? 0 : _c, _d = _a.vwMargin, vwMargin = _d === void 0 ? 16 : _d, _e = _a.yMargin, yMargin = _e === void 0 ? 0 : _e, _f = _a.vhMargin, vhMargin = _f === void 0 ? 16 : _f, _g = _a.width, width = _g === void 0 ? "auto" : _g, onPositionChange = _a.onPositionChange, _h = _a.transformOrigin, transformOrigin = _h === void 0 ? false : _h, _j = _a.preventOverlap, preventOverlap = _j === void 0 ? false : _j, _k = _a.disableSwapping, disableSwapping = _k === void 0 ? false : _k, _l = _a.disableVHBounds, disableVHBounds = _l === void 0 ? false : _l;
11419 var _m = React.useState(), style = _m[0], setStyle = _m[1];
11420 var _o = React.useState(null), element = _o[0], setElement = _o[1];
11421 var updateStyle = React.useCallback(function (nextElement) {
11422 var node = nextElement !== null && nextElement !== void 0 ? nextElement : element;
11423 if (typeof nextElement !== "undefined") {
11424 setElement(nextElement);
11425 }
11426 if (!node) {
11427 return;
11428 }
11429 var anchor = {
11430 x: currentAnchor.x || "center",
11431 y: currentAnchor.y || "below",
11432 };
11433 var overrides = typeof getOptions === "function" ? getOptions(node) : {};
11434 var opts = __assign$L({ initialX: initialX,
11435 initialY: initialY,
11436 xMargin: xMargin,
11437 vwMargin: vwMargin,
11438 yMargin: yMargin,
11439 vhMargin: vhMargin,
11440 width: width,
11441 transformOrigin: transformOrigin,
11442 preventOverlap: preventOverlap,
11443 disableSwapping: disableSwapping,
11444 disableVHBounds: disableVHBounds,
11445 anchor: anchor, container: getFixedTo(fixedTo), element: node }, overrides);
11446 var _a = getFixedPosition(opts), style = _a.style, actualX = _a.actualX, actualY = _a.actualY;
11447 var actual = { x: actualX, y: actualY };
11448 if (onPositionChange &&
11449 (anchor.x !== actual.x || anchor.y !== actual.y)) {
11450 onPositionChange(anchor, actual);
11451 }
11452 setStyle(style);
11453 }, [
11454 currentAnchor.x,
11455 currentAnchor.y,
11456 disableSwapping,
11457 disableVHBounds,
11458 fixedTo,
11459 getOptions,
11460 initialX,
11461 initialY,
11462 onPositionChange,
11463 preventOverlap,
11464 transformOrigin,
11465 vhMargin,
11466 vwMargin,
11467 width,
11468 xMargin,
11469 yMargin,
11470 element,
11471 ]);
11472 var handleEnter = React.useCallback(function (node, appear) {
11473 if (onEnter) {
11474 onEnter(node, appear);
11475 }
11476 updateStyle(node);
11477 }, [onEnter, updateStyle]);
11478 var handleEntering = React.useCallback(function (node, appear) {
11479 if (onEntering) {
11480 onEntering(node, appear);
11481 }
11482 updateStyle(node);
11483 }, [onEntering, updateStyle]);
11484 var handleEntered = React.useCallback(function (node, appear) {
11485 if (onEntered) {
11486 onEntered(node, appear);
11487 }
11488 updateStyle(node);
11489 }, [onEntered, updateStyle]);
11490 var handleExited = React.useCallback(function (node) {
11491 if (onExited) {
11492 onExited(node);
11493 }
11494 setElement(null);
11495 }, [onExited]);
11496 useResizeListener({
11497 enabled: !!element,
11498 onResize: function (event) {
11499 if (onResize) {
11500 onResize(event);
11501 }
11502 updateStyle();
11503 },
11504 });
11505 useScrollListener({
11506 enabled: !!element,
11507 onScroll: function (event) {
11508 if (onScroll) {
11509 var container = getFixedTo(fixedTo);
11510 var containerRect = container && container.getBoundingClientRect();
11511 var elementRect = element && element.getBoundingClientRect();
11512 var visible = false;
11513 if (containerRect && elementRect) {
11514 var vh = getViewportSize("height");
11515 var vw = getViewportSize("width");
11516 var top_1 = Math.min(elementRect.top, containerRect.top);
11517 var right = Math.max(elementRect.right, containerRect.right);
11518 var bottom = Math.max(elementRect.bottom, containerRect.bottom);
11519 var left = Math.min(elementRect.left, containerRect.left);
11520 visible = bottom >= 0 && top_1 <= vh && right >= 0 && left <= vw;
11521 }
11522 onScroll(event, {
11523 element: element,
11524 fixedTo: container,
11525 visible: visible,
11526 });
11527 }
11528 updateStyle();
11529 },
11530 });
11531 React.useEffect(function () {
11532 updateStyle();
11533 // Need to only update when the initialX and initialY values are changed.
11534 // If this is triggered each time the updateStyle is changed, it causes an
11535 // infinite loop.
11536 // eslint-disable-next-line react-hooks/exhaustive-deps
11537 }, [initialX, initialY]);
11538 return {
11539 style: style,
11540 updateStyle: updateStyle,
11541 onEnter: handleEnter,
11542 onEntering: handleEntering,
11543 onEntered: handleEntered,
11544 onExited: handleExited,
11545 };
11546 }
11547
11548 var __assign$M = (undefined && undefined.__assign) || function () {
11549 __assign$M = Object.assign || function(t) {
11550 for (var s, i = 1, n = arguments.length; i < n; i++) {
11551 s = arguments[i];
11552 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11553 t[p] = s[p];
11554 }
11555 return t;
11556 };
11557 return __assign$M.apply(this, arguments);
11558 };
11559 var __rest$A = (undefined && undefined.__rest) || function (s, e) {
11560 var t = {};
11561 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11562 t[p] = s[p];
11563 if (s != null && typeof Object.getOwnPropertySymbols === "function")
11564 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11565 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11566 t[p[i]] = s[p[i]];
11567 }
11568 return t;
11569 };
11570 var block$n = bem("rmd-list");
11571 /**
11572 * The `List` component creates an unstyled ordered or unordered list that
11573 * should be used with the `ListItem`, `ListItemLink`, and `SimpleListItem`
11574 * components.
11575 */
11576 var List = React.forwardRef(function List(_a, ref) {
11577 var _b = _a.role, role = _b === void 0 ? "none" : _b, _c = _a.dense, dense = _c === void 0 ? false : _c, _d = _a.ordered, ordered = _d === void 0 ? false : _d, _e = _a.horizontal, horizontal = _e === void 0 ? false : _e, className = _a.className, children = _a.children, props = __rest$A(_a, ["role", "dense", "ordered", "horizontal", "className", "children"]);
11578 var Component = (ordered ? "ol" : "ul");
11579 return (React__default.createElement(Component, __assign$M({}, props, { ref: ref, role: role, className: classnames(block$n({ dense: dense, horizontal: horizontal }), className) }), children));
11580 });
11581 {
11582 try {
11583 var PropTypes$D = require("prop-types");
11584 List.propTypes = {
11585 role: PropTypes$D.string,
11586 dense: PropTypes$D.bool,
11587 ordered: PropTypes$D.bool,
11588 className: PropTypes$D.string,
11589 children: PropTypes$D.node,
11590 horizontal: PropTypes$D.bool,
11591 };
11592 }
11593 catch (e) { }
11594 }
11595
11596 /**
11597 * Gets the expected height for the `ListItem` or `SimpleListItem` based on the
11598 * addons and `secondaryText` props.
11599 *
11600 * Conversions:
11601 *
11602 * - height !== "auto" -> height
11603 * - secondaryText or left/right addon is media/media-large -> "extra-large"
11604 * - left/right addon is avatar -> "large"
11605 * - left/right addon is icon -> "medium"
11606 * - no addons and no secondary text -> "normal"
11607 *
11608 * @private
11609 */
11610 function getListItemHeight(_a) {
11611 var _b = _a.height, height = _b === void 0 ? "auto" : _b, leftAddon = _a.leftAddon, _c = _a.leftAddonType, leftAddonType = _c === void 0 ? "icon" : _c, rightAddon = _a.rightAddon, _d = _a.rightAddonType, rightAddonType = _d === void 0 ? "icon" : _d, secondaryText = _a.secondaryText;
11612 if (height !== "auto") {
11613 return height;
11614 }
11615 var isIcon = (leftAddon && leftAddonType === "icon") ||
11616 (rightAddon && rightAddonType === "icon");
11617 var isAvatar = (leftAddon && leftAddonType === "avatar") ||
11618 (rightAddon && rightAddonType === "avatar");
11619 var isGraphic = (leftAddon &&
11620 (leftAddonType === "media" || leftAddonType === "large-media")) ||
11621 (rightAddon &&
11622 (rightAddonType === "media" || rightAddonType === "large-media"));
11623 // secondary text will always be extra large due to the default `line-height`
11624 if (isGraphic || secondaryText) {
11625 return "extra-large";
11626 }
11627 if (isAvatar) {
11628 return "large";
11629 }
11630 if (isIcon) {
11631 return "medium";
11632 }
11633 return "normal";
11634 }
11635
11636 var __assign$N = (undefined && undefined.__assign) || function () {
11637 __assign$N = Object.assign || function(t) {
11638 for (var s, i = 1, n = arguments.length; i < n; i++) {
11639 s = arguments[i];
11640 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11641 t[p] = s[p];
11642 }
11643 return t;
11644 };
11645 return __assign$N.apply(this, arguments);
11646 };
11647 var __rest$B = (undefined && undefined.__rest) || function (s, e) {
11648 var t = {};
11649 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11650 t[p] = s[p];
11651 if (s != null && typeof Object.getOwnPropertySymbols === "function")
11652 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11653 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11654 t[p[i]] = s[p[i]];
11655 }
11656 return t;
11657 };
11658 var base = bem("rmd-list-item");
11659 /**
11660 * The `ListItemAddon` is used to create an addon to the left or right of the
11661 * text/children of a `ListItem`.
11662 */
11663 function ListItemAddon(_a) {
11664 var _b;
11665 var className = _a.className, children = _a.children, addon = _a.addon, _c = _a.addonAfter, addonAfter = _c === void 0 ? false : _c, _d = _a.type, type = _d === void 0 ? "icon" : _d, _e = _a.position, position = _e === void 0 ? "middle" : _e, forceAddonWrap = _a.forceAddonWrap, props = __rest$B(_a, ["className", "children", "addon", "addonAfter", "type", "position", "forceAddonWrap"]);
11666 var isMedia = type === "media" || type === "large-media";
11667 var isAvatar = type === "avatar";
11668 return (React__default.createElement(TextIconSpacing, __assign$N({}, props, { icon: addon, forceIconWrap: forceAddonWrap !== null && forceAddonWrap !== void 0 ? forceAddonWrap : isMedia, className: classnames(base("addon", (_b = {},
11669 _b[position] = position !== "middle",
11670 _b.before = !addonAfter,
11671 _b["avatar-before"] = !addonAfter && isAvatar,
11672 _b.media = isMedia,
11673 _b["media-large"] = type === "large-media",
11674 _b)), className), iconAfter: addonAfter }), children));
11675 }
11676 {
11677 try {
11678 var PropTypes$E = require("prop-types");
11679 ListItemAddon.propTypes = {
11680 className: PropTypes$E.string,
11681 children: PropTypes$E.node,
11682 addon: PropTypes$E.node,
11683 addonAfter: PropTypes$E.bool,
11684 type: PropTypes$E.oneOf(["icon", "avatar", "media", "large-media"]),
11685 position: PropTypes$E.oneOf(["top", "middle", "bottom"]),
11686 forceAddonWrap: PropTypes$E.bool,
11687 };
11688 }
11689 catch (e) { }
11690 }
11691
11692 var block$o = bem("rmd-list-item");
11693 /**
11694 * This component us used to create the one to three lines of text within a
11695 * `ListItem` or `SimpleListItem`.
11696 */
11697 function ListItemText(_a) {
11698 var className = _a.className, secondaryTextClassName = _a.secondaryTextClassName, secondaryText = _a.secondaryText, children = _a.children;
11699 var secondaryContent;
11700 if (secondaryText) {
11701 secondaryContent = (React__default.createElement("span", { className: classnames(block$o("text", { secondary: true }), secondaryTextClassName) }, secondaryText));
11702 }
11703 return (React__default.createElement("span", { className: classnames(block$o("text"), className) },
11704 children,
11705 secondaryContent));
11706 }
11707 {
11708 try {
11709 var PropTypes$F = require("prop-types");
11710 ListItemText.propTypes = {
11711 className: PropTypes$F.string,
11712 secondaryTextClassName: PropTypes$F.string,
11713 secondaryText: PropTypes$F.node,
11714 children: PropTypes$F.node,
11715 };
11716 }
11717 catch (e) { }
11718 }
11719
11720 /**
11721 * The `ListItemChildren` component is used to create a styled list item that
11722 * can have optional addons to the left or right of the children in the form of
11723 * icons, avatars, or media. The `children` can be replaced by the `primaryText`
11724 * and `secondaryText` props to create stacked text spanning two or more lines
11725 * with the default behavior of using `line-clamp` at three lines.
11726 *
11727 * Note: This will return a `React.Fragment` of the children and does not wrap
11728 * in a DOM node for styling. The parent component should normally have
11729 * `display: flex` for the styling to work.
11730 */
11731 function ListItemChildren(_a) {
11732 var textClassName = _a.textClassName, secondaryTextClassName = _a.secondaryTextClassName, textChildren = _a.textChildren, primaryText = _a.primaryText, secondaryText = _a.secondaryText, leftAddon = _a.leftAddon, _b = _a.leftAddonType, leftAddonType = _b === void 0 ? "icon" : _b, _c = _a.leftAddonPosition, leftAddonPosition = _c === void 0 ? "middle" : _c, rightAddon = _a.rightAddon, _d = _a.rightAddonType, rightAddonType = _d === void 0 ? "icon" : _d, _e = _a.rightAddonPosition, rightAddonPosition = _e === void 0 ? "middle" : _e, forceAddonWrap = _a.forceAddonWrap, propChildren = _a.children;
11733 var stringifiedChildren = typeof propChildren === "number" ? "" + propChildren : propChildren;
11734 var children = stringifiedChildren;
11735 if (primaryText || secondaryText || textChildren) {
11736 children = (React__default.createElement(ListItemText, { className: textClassName, secondaryText: secondaryText, secondaryTextClassName: secondaryTextClassName }, (textChildren && children) || primaryText));
11737 }
11738 children = (React__default.createElement(ListItemAddon, { addon: leftAddon, type: leftAddonType, position: leftAddonPosition, forceAddonWrap: forceAddonWrap }, children));
11739 children = (React__default.createElement(ListItemAddon, { addon: rightAddon, addonAfter: true, type: rightAddonType, position: rightAddonPosition, forceAddonWrap: forceAddonWrap }, children));
11740 return (React__default.createElement(React__default.Fragment, null,
11741 children,
11742 (primaryText && stringifiedChildren) || null));
11743 }
11744 {
11745 try {
11746 var PropTypes$G = require("prop-types");
11747 ListItemChildren.propTypes = {
11748 textClassName: PropTypes$G.string,
11749 secondaryTextClassName: PropTypes$G.string,
11750 textChildren: PropTypes$G.bool,
11751 primaryText: PropTypes$G.node,
11752 secondaryText: PropTypes$G.node,
11753 leftAddon: PropTypes$G.node,
11754 leftAddonType: PropTypes$G.oneOf([
11755 "icon",
11756 "avatar",
11757 "media",
11758 "large-media",
11759 ]),
11760 leftAddonPosition: PropTypes$G.oneOf(["top", "middle", "bottom"]),
11761 rightAddon: PropTypes$G.node,
11762 rightAddonType: PropTypes$G.oneOf([
11763 "icon",
11764 "avatar",
11765 "media",
11766 "large-media",
11767 ]),
11768 rightAddonPosition: PropTypes$G.oneOf(["top", "middle", "bottom"]),
11769 forceAddonWrap: PropTypes$G.bool,
11770 children: PropTypes$G.node,
11771 };
11772 }
11773 catch (e) { }
11774 }
11775
11776 var __assign$O = (undefined && undefined.__assign) || function () {
11777 __assign$O = Object.assign || function(t) {
11778 for (var s, i = 1, n = arguments.length; i < n; i++) {
11779 s = arguments[i];
11780 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11781 t[p] = s[p];
11782 }
11783 return t;
11784 };
11785 return __assign$O.apply(this, arguments);
11786 };
11787 var __rest$C = (undefined && undefined.__rest) || function (s, e) {
11788 var t = {};
11789 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11790 t[p] = s[p];
11791 if (s != null && typeof Object.getOwnPropertySymbols === "function")
11792 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11793 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11794 t[p[i]] = s[p[i]];
11795 }
11796 return t;
11797 };
11798 var block$p = bem("rmd-list-item");
11799 /**
11800 * The `SimpleListItem` component is used to create a non-clickable item within
11801 * a `List`. This is really just useful since it allows for the `ListItem`
11802 * styling behavior of left and right icons, avatars, and media.
11803 *
11804 * Note: Even though this component exists, it is recommended to use the
11805 * `ListItemChildren` component instead if you want the "addon" styling/behavior
11806 * since screen readers read `li` items within lists differently.
11807 */
11808 var SimpleListItem = React.forwardRef(function SimpleListItem(_a, ref) {
11809 var _b;
11810 var className = _a.className, textClassName = _a.textClassName, secondaryTextClassName = _a.secondaryTextClassName, textChildren = _a.textChildren, primaryText = _a.primaryText, secondaryText = _a.secondaryText, leftAddon = _a.leftAddon, _c = _a.leftAddonType, leftAddonType = _c === void 0 ? "icon" : _c, _d = _a.leftAddonPosition, leftAddonPosition = _d === void 0 ? "middle" : _d, rightAddon = _a.rightAddon, _e = _a.rightAddonType, rightAddonType = _e === void 0 ? "icon" : _e, _f = _a.rightAddonPosition, rightAddonPosition = _f === void 0 ? "middle" : _f, forceAddonWrap = _a.forceAddonWrap, children = _a.children, _g = _a.height, propHeight = _g === void 0 ? "auto" : _g, _h = _a.threeLines, threeLines = _h === void 0 ? false : _h, _j = _a.clickable, clickable = _j === void 0 ? false : _j, onClick = _a.onClick, _k = _a.disabled, disabled = _k === void 0 ? false : _k, props = __rest$C(_a, ["className", "textClassName", "secondaryTextClassName", "textChildren", "primaryText", "secondaryText", "leftAddon", "leftAddonType", "leftAddonPosition", "rightAddon", "rightAddonType", "rightAddonPosition", "forceAddonWrap", "children", "height", "threeLines", "clickable", "onClick", "disabled"]);
11811 var height = getListItemHeight({
11812 height: propHeight,
11813 leftAddon: leftAddon,
11814 leftAddonType: leftAddonType,
11815 rightAddon: rightAddon,
11816 rightAddonType: rightAddonType,
11817 secondaryText: secondaryText,
11818 });
11819 var ariaDisabled = props["aria-disabled"];
11820 var isDisabled = disabled || ariaDisabled === "true" || ariaDisabled === true;
11821 return (React__default.createElement("li", __assign$O({}, props, { "aria-disabled": isDisabled || undefined, ref: ref, className: classnames(block$p((_b = {},
11822 _b[height] = height !== "auto" && height !== "normal",
11823 _b["three-lines"] = threeLines,
11824 _b.clickable = clickable,
11825 _b.disabled = isDisabled,
11826 _b)), className), onClick: isDisabled ? undefined : onClick }),
11827 React__default.createElement(ListItemChildren, { textClassName: textClassName, secondaryTextClassName: secondaryTextClassName, textChildren: textChildren, primaryText: primaryText, secondaryText: secondaryText, leftAddon: leftAddon, leftAddonType: leftAddonType, leftAddonPosition: leftAddonPosition, rightAddon: rightAddon, rightAddonType: rightAddonType, rightAddonPosition: rightAddonPosition, forceAddonWrap: forceAddonWrap }, children)));
11828 });
11829 {
11830 try {
11831 var PropTypes$H = require("prop-types");
11832 SimpleListItem.propTypes = {
11833 "aria-disabled": PropTypes$H.oneOfType([
11834 PropTypes$H.bool,
11835 PropTypes$H.oneOf(["true", "false"]),
11836 ]),
11837 className: PropTypes$H.string,
11838 disabled: PropTypes$H.bool,
11839 clickable: PropTypes$H.bool,
11840 threeLines: PropTypes$H.bool,
11841 textClassName: PropTypes$H.string,
11842 secondaryTextClassName: PropTypes$H.string,
11843 textChildren: PropTypes$H.bool,
11844 primaryText: PropTypes$H.node,
11845 secondaryText: PropTypes$H.node,
11846 height: PropTypes$H.oneOf([
11847 "auto",
11848 "normal",
11849 "medium",
11850 "large",
11851 "extra-large",
11852 ]),
11853 leftAddon: PropTypes$H.node,
11854 leftAddonType: PropTypes$H.oneOf([
11855 "icon",
11856 "avatar",
11857 "media",
11858 "large-media",
11859 ]),
11860 leftAddonPosition: PropTypes$H.oneOf(["top", "middle", "bottom"]),
11861 rightAddon: PropTypes$H.node,
11862 rightAddonType: PropTypes$H.oneOf([
11863 "icon",
11864 "avatar",
11865 "media",
11866 "large-media",
11867 ]),
11868 rightAddonPosition: PropTypes$H.oneOf(["top", "middle", "bottom"]),
11869 forceAddonWrap: PropTypes$H.bool,
11870 children: PropTypes$H.node,
11871 onClick: PropTypes$H.func,
11872 };
11873 }
11874 catch (e) { }
11875 }
11876
11877 var __assign$P = (undefined && undefined.__assign) || function () {
11878 __assign$P = Object.assign || function(t) {
11879 for (var s, i = 1, n = arguments.length; i < n; i++) {
11880 s = arguments[i];
11881 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11882 t[p] = s[p];
11883 }
11884 return t;
11885 };
11886 return __assign$P.apply(this, arguments);
11887 };
11888 var __rest$D = (undefined && undefined.__rest) || function (s, e) {
11889 var t = {};
11890 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11891 t[p] = s[p];
11892 if (s != null && typeof Object.getOwnPropertySymbols === "function")
11893 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11894 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11895 t[p[i]] = s[p[i]];
11896 }
11897 return t;
11898 };
11899 /**
11900 * The `ListItem` creates a clickable and focusable `<li>` within a `List` that
11901 * can optionally render addons to the left and right of the `children` or text.
11902 */
11903 var ListItem = React.forwardRef(function ListItem(_a, ref) {
11904 var propClassName = _a.className, textClassName = _a.textClassName, secondaryTextClassName = _a.secondaryTextClassName, _b = _a.textChildren, textChildren = _b === void 0 ? true : _b, primaryText = _a.primaryText, secondaryText = _a.secondaryText, children = _a.children, leftAddon = _a.leftAddon, _c = _a.leftAddonType, leftAddonType = _c === void 0 ? "icon" : _c, _d = _a.leftAddonPosition, leftAddonPosition = _d === void 0 ? "middle" : _d, rightAddon = _a.rightAddon, _e = _a.rightAddonType, rightAddonType = _e === void 0 ? "icon" : _e, _f = _a.rightAddonPosition, rightAddonPosition = _f === void 0 ? "middle" : _f, forceAddonWrap = _a.forceAddonWrap, _g = _a.height, propHeight = _g === void 0 ? "auto" : _g, _h = _a.disableSpacebarClick, disableSpacebarClick = _h === void 0 ? false : _h, _j = _a.disableRipple, disableRipple = _j === void 0 ? false : _j, _k = _a.disableProgrammaticRipple, disableProgrammaticRipple = _k === void 0 ? false : _k, _l = _a.disablePressedFallback, disablePressedFallback = _l === void 0 ? false : _l, rippleTimeout = _a.rippleTimeout, rippleClassNames = _a.rippleClassNames, rippleClassName = _a.rippleClassName, rippleContainerClassName = _a.rippleContainerClassName, _m = _a.role, role = _m === void 0 ? "button" : _m, _o = _a.tabIndex, tabIndex = _o === void 0 ? 0 : _o, props = __rest$D(_a, ["className", "textClassName", "secondaryTextClassName", "textChildren", "primaryText", "secondaryText", "children", "leftAddon", "leftAddonType", "leftAddonPosition", "rightAddon", "rightAddonType", "rightAddonPosition", "forceAddonWrap", "height", "disableSpacebarClick", "disableRipple", "disableProgrammaticRipple", "disablePressedFallback", "rippleTimeout", "rippleClassNames", "rippleClassName", "rippleContainerClassName", "role", "tabIndex"]);
11905 var disabled = props.disabled;
11906 var _p = useInteractionStates({
11907 className: propClassName,
11908 handlers: props,
11909 disabled: disabled,
11910 disableRipple: disableRipple,
11911 disableProgrammaticRipple: disableProgrammaticRipple,
11912 rippleTimeout: rippleTimeout,
11913 rippleClassNames: rippleClassNames,
11914 rippleClassName: rippleClassName,
11915 rippleContainerClassName: rippleContainerClassName,
11916 disableSpacebarClick: disableSpacebarClick,
11917 disablePressedFallback: disablePressedFallback,
11918 }), ripples = _p.ripples, className = _p.className, handlers = _p.handlers;
11919 var height = getListItemHeight({
11920 height: propHeight,
11921 leftAddon: leftAddon,
11922 leftAddonType: leftAddonType,
11923 rightAddon: rightAddon,
11924 rightAddonType: rightAddonType,
11925 secondaryText: secondaryText,
11926 });
11927 return (React__default.createElement(SimpleListItem, __assign$P({}, props, handlers, { ref: ref, tabIndex: tabIndex, role: role, className: className, clickable: true, height: height }),
11928 React__default.createElement(ListItemChildren, { textClassName: textClassName, secondaryTextClassName: secondaryTextClassName, textChildren: textChildren, primaryText: primaryText, secondaryText: secondaryText, leftAddon: leftAddon, leftAddonType: leftAddonType, leftAddonPosition: leftAddonPosition, rightAddon: rightAddon, rightAddonType: rightAddonType, rightAddonPosition: rightAddonPosition, forceAddonWrap: forceAddonWrap }, children),
11929 ripples));
11930 });
11931 {
11932 try {
11933 var PropTypes$I = require("prop-types");
11934 ListItem.propTypes = {
11935 role: PropTypes$I.string,
11936 tabIndex: PropTypes$I.number,
11937 height: PropTypes$I.oneOf([
11938 "auto",
11939 "normal",
11940 "medium",
11941 "large",
11942 "extra-large",
11943 ]),
11944 children: PropTypes$I.node,
11945 className: PropTypes$I.string,
11946 textClassName: PropTypes$I.string,
11947 secondaryTextClassName: PropTypes$I.string,
11948 primaryText: PropTypes$I.node,
11949 secondaryText: PropTypes$I.node,
11950 forceAddonWrap: PropTypes$I.bool,
11951 leftAddon: PropTypes$I.node,
11952 leftAddonType: PropTypes$I.oneOf([
11953 "icon",
11954 "avatar",
11955 "media",
11956 "large-media",
11957 ]),
11958 leftAddonPosition: PropTypes$I.oneOf(["top", "middle", "bottom"]),
11959 rightAddon: PropTypes$I.node,
11960 rightAddonType: PropTypes$I.oneOf([
11961 "icon",
11962 "avatar",
11963 "media",
11964 "large-media",
11965 ]),
11966 rightAddonPosition: PropTypes$I.oneOf(["top", "middle", "bottom"]),
11967 disabled: PropTypes$I.bool,
11968 disableRipple: PropTypes$I.bool,
11969 disableProgrammaticRipple: PropTypes$I.bool,
11970 rippleTimeout: PropTypes$I.oneOfType([
11971 PropTypes$I.number,
11972 PropTypes$I.shape({
11973 appear: PropTypes$I.number,
11974 enter: PropTypes$I.number,
11975 exit: PropTypes$I.number,
11976 }),
11977 ]),
11978 rippleClassNames: PropTypes$I.oneOfType([
11979 PropTypes$I.string,
11980 PropTypes$I.shape({
11981 appear: PropTypes$I.string,
11982 appearActive: PropTypes$I.string,
11983 enter: PropTypes$I.string,
11984 enterActive: PropTypes$I.string,
11985 enterDone: PropTypes$I.string,
11986 exit: PropTypes$I.string,
11987 exitActive: PropTypes$I.string,
11988 exitDone: PropTypes$I.string,
11989 }),
11990 ]),
11991 rippleClassName: PropTypes$I.string,
11992 rippleContainerClassName: PropTypes$I.string,
11993 enablePressedAndRipple: PropTypes$I.bool,
11994 disableSpacebarClick: PropTypes$I.bool,
11995 disablePressedFallback: PropTypes$I.bool,
11996 textChildren: PropTypes$I.bool,
11997 };
11998 }
11999 catch (e) { }
12000 }
12001
12002 var __assign$Q = (undefined && undefined.__assign) || function () {
12003 __assign$Q = Object.assign || function(t) {
12004 for (var s, i = 1, n = arguments.length; i < n; i++) {
12005 s = arguments[i];
12006 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12007 t[p] = s[p];
12008 }
12009 return t;
12010 };
12011 return __assign$Q.apply(this, arguments);
12012 };
12013 var __rest$E = (undefined && undefined.__rest) || function (s, e) {
12014 var t = {};
12015 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12016 t[p] = s[p];
12017 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12018 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12019 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12020 t[p[i]] = s[p[i]];
12021 }
12022 return t;
12023 };
12024 /**
12025 * This component is a really bad attempt at creating a `Link` within a `List`
12026 * that has the main `ListItem` styles. It will probably be better to just use
12027 * the `ListItemChildren` within your `Link` component instead.
12028 */
12029 var ListItemLink = React.forwardRef(function ListItemLink(_a, ref) {
12030 var _b;
12031 var propClassName = _a.className, textClassName = _a.textClassName, secondaryTextClassName = _a.secondaryTextClassName, textChildren = _a.textChildren, primaryText = _a.primaryText, secondaryText = _a.secondaryText, children = _a.children, leftAddon = _a.leftAddon, _c = _a.leftAddonType, leftAddonType = _c === void 0 ? "icon" : _c, _d = _a.leftAddonPosition, leftAddonPosition = _d === void 0 ? "middle" : _d, rightAddon = _a.rightAddon, _e = _a.rightAddonType, rightAddonType = _e === void 0 ? "icon" : _e, _f = _a.rightAddonPosition, rightAddonPosition = _f === void 0 ? "middle" : _f, forceAddonWrap = _a.forceAddonWrap, _g = _a.height, propHeight = _g === void 0 ? "auto" : _g, _h = _a.threeLines, threeLines = _h === void 0 ? false : _h, _j = _a.component, Component = _j === void 0 ? "a" : _j, disableSpacebarClick = _a.disableSpacebarClick, disableRipple = _a.disableRipple, disableProgrammaticRipple = _a.disableProgrammaticRipple, disablePressedFallback = _a.disablePressedFallback, rippleTimeout = _a.rippleTimeout, rippleClassNames = _a.rippleClassNames, rippleClassName = _a.rippleClassName, rippleContainerClassName = _a.rippleContainerClassName, props = __rest$E(_a, ["className", "textClassName", "secondaryTextClassName", "textChildren", "primaryText", "secondaryText", "children", "leftAddon", "leftAddonType", "leftAddonPosition", "rightAddon", "rightAddonType", "rightAddonPosition", "forceAddonWrap", "height", "threeLines", "component", "disableSpacebarClick", "disableRipple", "disableProgrammaticRipple", "disablePressedFallback", "rippleTimeout", "rippleClassNames", "rippleClassName", "rippleContainerClassName"]);
12032 var height = getListItemHeight({
12033 height: propHeight,
12034 leftAddon: leftAddon,
12035 leftAddonType: leftAddonType,
12036 rightAddon: rightAddon,
12037 rightAddonType: rightAddonType,
12038 secondaryText: secondaryText,
12039 });
12040 var _k = useInteractionStates({
12041 className: propClassName,
12042 handlers: props,
12043 disableRipple: disableRipple,
12044 disableProgrammaticRipple: disableProgrammaticRipple,
12045 rippleTimeout: rippleTimeout,
12046 rippleClassNames: rippleClassNames,
12047 rippleClassName: rippleClassName,
12048 rippleContainerClassName: rippleContainerClassName,
12049 disableSpacebarClick: disableSpacebarClick,
12050 disablePressedFallback: disablePressedFallback,
12051 }), ripples = _k.ripples, className = _k.className, handlers = _k.handlers;
12052 return (React__default.createElement(Component, __assign$Q({}, props, handlers, { ref: ref, className: classnames("rmd-list-item rmd-list-item--clickable rmd-list-item--link", (_b = {},
12053 _b["rmd-list-item--" + height] = height !== "auto" && height !== "normal",
12054 _b["rmd-list-item--three-lines"] = !!secondaryText && threeLines,
12055 _b), className) }),
12056 React__default.createElement(ListItemChildren, { textClassName: textClassName, secondaryTextClassName: secondaryTextClassName, textChildren: textChildren, primaryText: primaryText, secondaryText: secondaryText, leftAddon: leftAddon, leftAddonType: leftAddonType, leftAddonPosition: leftAddonPosition, rightAddon: rightAddon, rightAddonType: rightAddonType, rightAddonPosition: rightAddonPosition, forceAddonWrap: forceAddonWrap }, children),
12057 ripples));
12058 });
12059 {
12060 ListItemLink.displayName = "ListItemLink";
12061 try {
12062 var PropTypes$J = require("prop-types");
12063 ListItemLink.propTypes = {
12064 component: PropTypes$J.oneOfType([
12065 PropTypes$J.string,
12066 PropTypes$J.func,
12067 PropTypes$J.object,
12068 ]),
12069 height: PropTypes$J.oneOf([
12070 "auto",
12071 "normal",
12072 "medium",
12073 "large",
12074 "extra-large",
12075 ]),
12076 children: PropTypes$J.node,
12077 className: PropTypes$J.string,
12078 textClassName: PropTypes$J.string,
12079 secondaryTextClassName: PropTypes$J.string,
12080 primaryText: PropTypes$J.node,
12081 secondaryText: PropTypes$J.node,
12082 forceAddonWrap: PropTypes$J.bool,
12083 leftAddon: PropTypes$J.node,
12084 leftAddonType: PropTypes$J.oneOf([
12085 "icon",
12086 "avatar",
12087 "media",
12088 "large-media",
12089 ]),
12090 leftAddonPosition: PropTypes$J.oneOf(["top", "middle", "bottom"]),
12091 rightAddon: PropTypes$J.node,
12092 rightAddonType: PropTypes$J.oneOf([
12093 "icon",
12094 "avatar",
12095 "media",
12096 "large-media",
12097 ]),
12098 rightAddonPosition: PropTypes$J.oneOf(["top", "middle", "bottom"]),
12099 disabled: PropTypes$J.bool,
12100 disableRipple: PropTypes$J.bool,
12101 disableProgrammaticRipple: PropTypes$J.bool,
12102 rippleTimeout: PropTypes$J.oneOfType([
12103 PropTypes$J.number,
12104 PropTypes$J.shape({
12105 appear: PropTypes$J.number,
12106 enter: PropTypes$J.number,
12107 exit: PropTypes$J.number,
12108 }),
12109 ]),
12110 rippleClassNames: PropTypes$J.oneOfType([
12111 PropTypes$J.string,
12112 PropTypes$J.shape({
12113 appear: PropTypes$J.string,
12114 appearActive: PropTypes$J.string,
12115 enter: PropTypes$J.string,
12116 enterActive: PropTypes$J.string,
12117 enterDone: PropTypes$J.string,
12118 exit: PropTypes$J.string,
12119 exitActive: PropTypes$J.string,
12120 exitDone: PropTypes$J.string,
12121 }),
12122 ]),
12123 rippleClassName: PropTypes$J.string,
12124 rippleContainerClassName: PropTypes$J.string,
12125 enablePressedAndRipple: PropTypes$J.bool,
12126 disableSpacebarClick: PropTypes$J.bool,
12127 disablePressedFallback: PropTypes$J.bool,
12128 textChildren: PropTypes$J.bool,
12129 threeLines: PropTypes$J.bool,
12130 };
12131 }
12132 catch (e) { }
12133 }
12134
12135 var __assign$R = (undefined && undefined.__assign) || function () {
12136 __assign$R = Object.assign || function(t) {
12137 for (var s, i = 1, n = arguments.length; i < n; i++) {
12138 s = arguments[i];
12139 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12140 t[p] = s[p];
12141 }
12142 return t;
12143 };
12144 return __assign$R.apply(this, arguments);
12145 };
12146 var __rest$F = (undefined && undefined.__rest) || function (s, e) {
12147 var t = {};
12148 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12149 t[p] = s[p];
12150 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12151 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12152 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12153 t[p[i]] = s[p[i]];
12154 }
12155 return t;
12156 };
12157 var block$q = bem("rmd-list-subheader");
12158 /**
12159 * This is a simple component that will render a `<li>` with the subheader
12160 * typography styles. It also supports an `inset` variant that adds some spacing
12161 * to the left of the text to align with other `ListItem` that have left addons.
12162 */
12163 var ListSubheader = React.forwardRef(function ListSubheader(_a, ref) {
12164 var className = _a.className, _b = _a.inset, inset = _b === void 0 ? false : _b, props = __rest$F(_a, ["className", "inset"]);
12165 return (React__default.createElement("li", __assign$R({}, props, { ref: ref, className: classnames(block$q({ inset: inset }), className) })));
12166 });
12167 {
12168 try {
12169 var PropTypes$K = require("prop-types");
12170 ListSubheader.propTypes = {
12171 className: PropTypes$K.string,
12172 inset: PropTypes$K.bool,
12173 children: PropTypes$K.node,
12174 };
12175 }
12176 catch (e) { }
12177 }
12178
12179 var __assign$S = (undefined && undefined.__assign) || function () {
12180 __assign$S = Object.assign || function(t) {
12181 for (var s, i = 1, n = arguments.length; i < n; i++) {
12182 s = arguments[i];
12183 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12184 t[p] = s[p];
12185 }
12186 return t;
12187 };
12188 return __assign$S.apply(this, arguments);
12189 };
12190 var __rest$G = (undefined && undefined.__rest) || function (s, e) {
12191 var t = {};
12192 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12193 t[p] = s[p];
12194 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12195 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12196 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12197 t[p[i]] = s[p[i]];
12198 }
12199 return t;
12200 };
12201 var block$r = bem("rmd-option");
12202 /**
12203 * The Option component is a simple wrapper for the `SimpleListItem` that adds
12204 * some required a11y for behaving as the `option` role.
12205 */
12206 var Option = React.forwardRef(function Option(_a, ref) {
12207 var className = _a.className, _b = _a.selected, selected = _b === void 0 ? false : _b, focused = _a.focused, children = _a.children, _c = _a.textChildren, textChildren = _c === void 0 ? true : _c, props = __rest$G(_a, ["className", "selected", "focused", "children", "textChildren"]);
12208 return (React__default.createElement(SimpleListItem, __assign$S({}, props, { ref: ref, role: "option", "aria-selected": selected || undefined, clickable: true, className: classnames(block$r({
12209 selected: selected,
12210 focused: focused,
12211 }), className), textChildren: textChildren }), children));
12212 });
12213 {
12214 try {
12215 var PropTypes$L = require("prop-types");
12216 Option.propTypes = {
12217 className: PropTypes$L.string,
12218 focused: PropTypes$L.bool.isRequired,
12219 selected: PropTypes$L.bool,
12220 children: PropTypes$L.node,
12221 textChildren: PropTypes$L.bool,
12222 };
12223 }
12224 catch (e) { }
12225 }
12226
12227 /**
12228 * A type guard that simply checks if the option is considered an object of list
12229 * item props.
12230 *
12231 * @param option The option to check
12232 * @return true if the option is considered a object of list item props and will
12233 * ensure that the option is typed as ListboxOptionProps
12234 * @private
12235 */
12236 function isListboxOptionProps(option) {
12237 return (option !== "" && option !== 0 && !!option && typeof option === "object");
12238 }
12239 /**
12240 * The default implementation to check if an option is disabled. It will just
12241 * check if the option is an object and if it has the disabled prop enabled.
12242 *
12243 * @param option The option to check
12244 * @return true if the option is disabled
12245 * @private
12246 */
12247 function defaultIsOptionDisabled(option) {
12248 return isListboxOptionProps(option) && !!option.disabled;
12249 }
12250 /**
12251 * The default way to generate a "unique" id for each option within the listbox
12252 * by concatenating the current index with a base id.
12253 *
12254 * Note: The index will be incremented by 1 so the ids start from 1 instead of
12255 * 0. This is so that it matches how paginated results work with `aria-posinset`
12256 * + `aria-setsize`.
12257 *
12258 * @param baseId The base id of the listbox.
12259 * @param index The current index of the option
12260 * @return a "unique" id for the option
12261 */
12262 function getOptionId(baseId, index) {
12263 return baseId + "-option-" + (index + 1);
12264 }
12265 /**
12266 * A function that will get the label for an option. The default behavior is to
12267 * check if the option is an object. If it is, it'll use the `labelKey` property
12268 * and fallback to the `children` property. If it is anything else, the option
12269 * itself will be returned.
12270 *
12271 * This is used in both the select's button element to show the current value as
12272 * well as rendering each option within the listbox component.
12273 *
12274 * @param option The option that should be converted into a renderable label
12275 * element.
12276 * @param labelKey The object key to use to extract the label from an option
12277 * object.
12278 * @return a renderable label to display.
12279 */
12280 function getOptionLabel(option, labelKey) {
12281 if (isListboxOptionProps(option)) {
12282 if (typeof option.children !== "undefined") {
12283 return option.children;
12284 }
12285 var label = option[labelKey];
12286 return typeof label === "undefined" ? null : label;
12287 }
12288 return option;
12289 }
12290 /**
12291 * A function that will get the display value for the `Select` field based on
12292 * the current selected option. The default behavior will be to return null if
12293 * an option is not currently selected so the placeholder text can be shown
12294 * instead. If there is an option selected, it will:
12295 * - get the option's label using the general `getOptionLabel` util
12296 * - check if includeLeft is enabled and the option is an object with
12297 * `leftAddon`
12298 * - if there is a `leftAddon`, use the `TextIconSpacing` of
12299 * the label + the icon or avatar.
12300 *
12301 * @param option The option to get a display label for
12302 * @param labelKey The key to use to extract a label from the option when it is
12303 * an object
12304 * @param includeLeft Boolean if a `leftAddon` should be added with
12305 * `TextIconSpacing` to the result.
12306 * @return A renderable node to display in a `Select` field.
12307 */
12308 function getDisplayLabel(option, labelKey, includeLeft) {
12309 if (!option) {
12310 return null;
12311 }
12312 var label = getOptionLabel(option, labelKey);
12313 if (!includeLeft || !isListboxOptionProps(option)) {
12314 return label;
12315 }
12316 var leftAddon = option.leftAddon;
12317 return React.createElement(TextIconSpacing, { icon: leftAddon }, label);
12318 }
12319
12320 var __assign$T = (undefined && undefined.__assign) || function () {
12321 __assign$T = Object.assign || function(t) {
12322 for (var s, i = 1, n = arguments.length; i < n; i++) {
12323 s = arguments[i];
12324 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12325 t[p] = s[p];
12326 }
12327 return t;
12328 };
12329 return __assign$T.apply(this, arguments);
12330 };
12331 var __rest$H = (undefined && undefined.__rest) || function (s, e) {
12332 var t = {};
12333 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12334 t[p] = s[p];
12335 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12336 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12337 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12338 t[p[i]] = s[p[i]];
12339 }
12340 return t;
12341 };
12342 var block$s = bem("rmd-listbox");
12343 var warned;
12344 /**
12345 * This component is used to render the list part of a `<select>` element with
12346 * built-in accessibility and the ability to add custom styles. This should
12347 * probably not be used much outside of `react-md` itself and the `Select`
12348 * component, but I'm planning on adding support for an inline listbox at some
12349 * point.
12350 */
12351 var Listbox = React.forwardRef(function Listbox(_a, ref) {
12352 var className = _a.className, _b = _a.visible, visible = _b === void 0 ? true : _b, _c = _a.temporary, temporary = _c === void 0 ? false : _c, _d = _a.labelKey, labelKey = _d === void 0 ? "label" : _d, _e = _a.valueKey, valueKey = _e === void 0 ? "value" : _e, _f = _a.getOptionId, getOptionId$1 = _f === void 0 ? getOptionId : _f, _g = _a.getOptionLabel, getOptionLabel$1 = _g === void 0 ? getOptionLabel : _g, _h = _a.getOptionValue, getOptionValue = _h === void 0 ? DEFAULT_GET_ITEM_VALUE : _h, _j = _a.isOptionDisabled, isOptionDisabled = _j === void 0 ? defaultIsOptionDisabled : _j, _k = _a.disableMovementChange, disableMovementChange = _k === void 0 ? false : _k, onFocus = _a.onFocus, propOnKeyDown = _a.onKeyDown, name = _a.name, options = _a.options, value = _a.value, onChange = _a.onChange, propTabIndex = _a.tabIndex, portal = _a.portal, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, onRequestClose = _a.onRequestClose, timeout = _a.timeout, readOnly = _a.readOnly, classNames = _a.classNames, mountOnEnter = _a.mountOnEnter, unmountOnExit = _a.unmountOnExit, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, props = __rest$H(_a, ["className", "visible", "temporary", "labelKey", "valueKey", "getOptionId", "getOptionLabel", "getOptionValue", "isOptionDisabled", "disableMovementChange", "onFocus", "onKeyDown", "name", "options", "value", "onChange", "tabIndex", "portal", "portalInto", "portalIntoId", "onRequestClose", "timeout", "readOnly", "classNames", "mountOnEnter", "unmountOnExit", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited"]);
12353 var id = props.id;
12354 var tabIndex = propTabIndex;
12355 if (temporary) {
12356 tabIndex = -1;
12357 }
12358 else if (typeof propTabIndex === "undefined") {
12359 tabIndex = 0;
12360 }
12361 /**
12362 * Gets the current index of the option that has the same value as the
12363 * provided prop value.
12364 */
12365 var getIndex = React.useCallback(function () {
12366 return options.findIndex(function (option) { return value === getOptionValue(option, valueKey); });
12367 }, [getOptionValue, options, value, valueKey]);
12368 /**
12369 * Conditionally calls the onChange callback with the new value and option if
12370 * the value has changed. This will be called when:
12371 * - the user presses the enter or space key while "focusing" an option
12372 * - the user keyboard navigates to a new option while the
12373 * `disableMovementChange` prop is `false`
12374 * - the user clicks the option with a mouse or touch
12375 */
12376 var handleChange = React.useCallback(function (index) {
12377 if (readOnly) {
12378 return;
12379 }
12380 var option = options[index];
12381 if (!option || isOptionDisabled(option)) {
12382 return;
12383 }
12384 var optionValue = getOptionValue(option, valueKey);
12385 if (value !== optionValue) {
12386 onChange(optionValue, options[index], {
12387 id: id,
12388 name: name,
12389 value: value,
12390 valueKey: valueKey,
12391 options: options,
12392 });
12393 }
12394 }, [
12395 getOptionValue,
12396 id,
12397 isOptionDisabled,
12398 name,
12399 onChange,
12400 options,
12401 readOnly,
12402 value,
12403 valueKey,
12404 ]);
12405 var handleKeyboardClick = React.useCallback(function (focusedIndex) {
12406 handleChange(focusedIndex);
12407 if (temporary && onRequestClose) {
12408 onRequestClose();
12409 }
12410 }, [handleChange, onRequestClose, temporary]);
12411 var _l = useActiveDescendantMovement(__assign$T(__assign$T({}, VERTICAL_LISTBOX), { defaultFocusedIndex: getIndex, items: options, baseId: id, valueKey: labelKey, getId: getOptionId$1, getItemValue: function (option, key) {
12412 if (!isListboxOptionProps(option)) {
12413 return "" + option;
12414 }
12415 var search = option[key];
12416 if (typeof search === "number" || typeof search === "string") {
12417 return "" + search;
12418 }
12419 {
12420 if (!warned) {
12421 warned = new Set();
12422 }
12423 if (!warned.has(id)) {
12424 /* eslint-disable no-console */
12425 console.warn("A listbox with an id of \"" + id + "\" has an option that does not have a searchable label string. " +
12426 "Users will be unable to use the typeahead feature in the Listbox component until this is fixed. " +
12427 "To fix this warning, you can use the `labelKey` prop on the `Listbox`/`Select` component to point " +
12428 "to a string on the following option:", option);
12429 warned.add(id);
12430 }
12431 }
12432 return "";
12433 },
12434 onChange: function (data) {
12435 if (disableMovementChange) {
12436 return;
12437 }
12438 handleChange(data.index);
12439 }, onEnter: handleKeyboardClick, onSpace: handleKeyboardClick, onKeyDown: function (event) {
12440 if (propOnKeyDown) {
12441 propOnKeyDown(event);
12442 }
12443 switch (event.key) {
12444 case "Tab":
12445 case "Escape":
12446 if (event.key === "Escape") {
12447 event.stopPropagation();
12448 }
12449 if (temporary && onRequestClose) {
12450 onRequestClose();
12451 }
12452 break;
12453 // no default
12454 }
12455 } })), activeId = _l.activeId, itemRefs = _l.itemRefs, onKeyDown = _l.onKeyDown, focusedIndex = _l.focusedIndex, setFocusedIndex = _l.setFocusedIndex;
12456 var prevVisible = React.useRef(visible);
12457 if (visible !== prevVisible.current) {
12458 prevVisible.current = visible;
12459 // whenever it gains visibility, try to set the focused index to the
12460 // current active value
12461 if (visible) {
12462 setFocusedIndex(getIndex());
12463 }
12464 }
12465 var handleFocus = React.useCallback(function (event) {
12466 if (onFocus) {
12467 onFocus(event);
12468 }
12469 var item = itemRefs[focusedIndex] && itemRefs[focusedIndex].current;
12470 if (item) {
12471 scrollIntoView(event.currentTarget, item);
12472 }
12473 }, [focusedIndex, itemRefs, onFocus]);
12474 return (React__default.createElement(ScaleTransition, { portal: portal, portalInto: portalInto, portalIntoId: portalIntoId, visible: !temporary || visible, vertical: true, timeout: timeout, classNames: classNames, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited },
12475 React__default.createElement(List, __assign$T({}, props, { "aria-activedescendant": activeId, ref: ref, role: "listbox", tabIndex: tabIndex, className: classnames(block$s({ temporary: temporary }), className), onFocus: handleFocus, onKeyDown: onKeyDown }), options.map(function (option, i) {
12476 var optionId = getOptionId$1(id, i);
12477 var optionValue = getOptionValue(option, valueKey);
12478 var optionLabel = getOptionLabel$1(option, labelKey);
12479 var optionProps;
12480 if (isListboxOptionProps(option)) {
12481 optionProps = omit(option, [labelKey, valueKey]);
12482 }
12483 var disabled = isOptionDisabled(option);
12484 var onClick;
12485 if (!readOnly && !disabled) {
12486 onClick = function () {
12487 handleChange(i);
12488 setFocusedIndex(i);
12489 };
12490 }
12491 return (React__default.createElement(Option, __assign$T({ key: optionValue, id: optionId, disabled: disabled }, optionProps, { ref: itemRefs[i], focused: optionId === activeId, selected: value === optionValue, onClick: onClick }), optionLabel));
12492 }))));
12493 });
12494 {
12495 try {
12496 var PropTypes$M = require("prop-types");
12497 Listbox.propTypes = {
12498 id: PropTypes$M.string.isRequired,
12499 value: PropTypes$M.string.isRequired,
12500 onChange: PropTypes$M.func.isRequired,
12501 className: PropTypes$M.string,
12502 labelKey: PropTypes$M.string,
12503 valueKey: PropTypes$M.string,
12504 getOptionId: PropTypes$M.func,
12505 getOptionLabel: PropTypes$M.func,
12506 getOptionValue: PropTypes$M.func,
12507 isOptionDisabled: PropTypes$M.func,
12508 visible: PropTypes$M.bool,
12509 temporary: PropTypes$M.bool,
12510 onRequestClose: PropTypes$M.func,
12511 disableMovementChange: PropTypes$M.bool,
12512 timeout: PropTypes$M.oneOfType([
12513 PropTypes$M.number,
12514 PropTypes$M.shape({
12515 enter: PropTypes$M.number,
12516 exit: PropTypes$M.number,
12517 }),
12518 ]),
12519 classNames: PropTypes$M.oneOfType([
12520 PropTypes$M.string,
12521 PropTypes$M.shape({
12522 appear: PropTypes$M.string,
12523 appearActive: PropTypes$M.string,
12524 enter: PropTypes$M.string,
12525 enterActive: PropTypes$M.string,
12526 enterDone: PropTypes$M.string,
12527 exit: PropTypes$M.string,
12528 exitActive: PropTypes$M.string,
12529 exitDone: PropTypes$M.string,
12530 }),
12531 ]),
12532 readOnly: PropTypes$M.bool,
12533 mountOnEnter: PropTypes$M.bool,
12534 unmountOnExit: PropTypes$M.bool,
12535 onEnter: PropTypes$M.func,
12536 onEntering: PropTypes$M.func,
12537 onEntered: PropTypes$M.func,
12538 onExit: PropTypes$M.func,
12539 onExiting: PropTypes$M.func,
12540 onExited: PropTypes$M.func,
12541 portal: PropTypes$M.bool,
12542 portalInto: PropTypes$M.oneOfType([PropTypes$M.object, PropTypes$M.string]),
12543 portalIntoId: PropTypes$M.string,
12544 tabIndex: PropTypes$M.number,
12545 onFocus: PropTypes$M.func,
12546 onKeyDown: PropTypes$M.func,
12547 name: PropTypes$M.string,
12548 options: PropTypes$M.arrayOf(PropTypes$M.oneOfType([
12549 PropTypes$M.string,
12550 PropTypes$M.number,
12551 PropTypes$M.object,
12552 ])).isRequired,
12553 };
12554 }
12555 catch (e) { }
12556 }
12557
12558 var __assign$U = (undefined && undefined.__assign) || function () {
12559 __assign$U = Object.assign || function(t) {
12560 for (var s, i = 1, n = arguments.length; i < n; i++) {
12561 s = arguments[i];
12562 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12563 t[p] = s[p];
12564 }
12565 return t;
12566 };
12567 return __assign$U.apply(this, arguments);
12568 };
12569 var __rest$I = (undefined && undefined.__rest) || function (s, e) {
12570 var t = {};
12571 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12572 t[p] = s[p];
12573 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12574 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12575 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12576 t[p[i]] = s[p[i]];
12577 }
12578 return t;
12579 };
12580 var block$t = bem("rmd-select");
12581 /**
12582 * This component is an accessible version of the `<select>` element that allows
12583 * for some more custom styles by using the `@react-md/list` package to render
12584 * the list of options.
12585 *
12586 * The `Select` component **must be controlled** with a `value` and `onChange`
12587 * handler.
12588 *
12589 * Note: Since this is not a native `<select>` component, the current value will
12590 * be rendered in an `<input type="hidden" />` element so that the value can be
12591 * sent along in forms. It is highly recommended to always provide a `name` prop
12592 * so this value is sent.
12593 */
12594 var Select = React.forwardRef(function Select(_a, forwardedRef) {
12595 var onBlur = _a.onBlur, onFocus = _a.onFocus, onKeyDown = _a.onKeyDown, onClick = _a.onClick, className = _a.className, label = _a.label, labelStyle = _a.labelStyle, labelClassName = _a.labelClassName, displayLabelStyle = _a.displayLabelStyle, displayLabelClassName = _a.displayLabelClassName, listboxStyle = _a.listboxStyle, listboxClassName = _a.listboxClassName, _b = _a.anchor, anchor = _b === void 0 ? BELOW_CENTER_ANCHOR : _b, propTheme = _a.theme, _c = _a.dense, dense = _c === void 0 ? false : _c, _d = _a.inline, inline = _d === void 0 ? false : _d, _e = _a.error, error = _e === void 0 ? false : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.isLeftAddon, isLeftAddon = _g === void 0 ? true : _g, _h = _a.isRightAddon, isRightAddon = _h === void 0 ? true : _h, propUnderlineDirection = _a.underlineDirection, _j = _a.listboxWidth, listboxWidth = _j === void 0 ? "equal" : _j, _k = _a.portal, portal = _k === void 0 ? true : _k, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, name = _a.name, options = _a.options, _l = _a.labelKey, labelKey = _l === void 0 ? "label" : _l, _m = _a.valueKey, valueKey = _m === void 0 ? "value" : _m, _o = _a.getOptionId, getOptionId$1 = _o === void 0 ? getOptionId : _o, _p = _a.getOptionLabel, getOptionLabel$1 = _p === void 0 ? getOptionLabel : _p, _q = _a.getOptionValue, getOptionValue = _q === void 0 ? DEFAULT_GET_ITEM_VALUE : _q, _r = _a.getDisplayLabel, getDisplayLabel$1 = _r === void 0 ? getDisplayLabel : _r, _s = _a.isOptionDisabled, isOptionDisabled = _s === void 0 ? defaultIsOptionDisabled : _s, _t = _a.disableLeftAddon, disableLeftAddon = _t === void 0 ? false : _t, _u = _a.disableMovementChange, disableMovementChange = _u === void 0 ? false : _u, _v = _a.closeOnResize, closeOnResize = _v === void 0 ? false : _v, _w = _a.closeOnScroll, closeOnScroll = _w === void 0 ? false : _w, readOnly = _a.readOnly, placeholder = _a.placeholder, value = _a.value, onChange = _a.onChange, propRightChildren = _a.rightChildren, props = __rest$I(_a, ["onBlur", "onFocus", "onKeyDown", "onClick", "className", "label", "labelStyle", "labelClassName", "displayLabelStyle", "displayLabelClassName", "listboxStyle", "listboxClassName", "anchor", "theme", "dense", "inline", "error", "disabled", "isLeftAddon", "isRightAddon", "underlineDirection", "listboxWidth", "portal", "portalInto", "portalIntoId", "name", "options", "labelKey", "valueKey", "getOptionId", "getOptionLabel", "getOptionValue", "getDisplayLabel", "isOptionDisabled", "disableLeftAddon", "disableMovementChange", "closeOnResize", "closeOnScroll", "readOnly", "placeholder", "value", "onChange", "rightChildren"]);
12596 var id = props.id;
12597 var rightChildren = useIcon("dropdown", propRightChildren);
12598 var _x = useFormTheme({
12599 theme: propTheme,
12600 underlineDirection: propUnderlineDirection,
12601 }), theme = _x.theme, underlineDirection = _x.underlineDirection;
12602 var valued = typeof value === "number" || !!value;
12603 var displayValue = React.useMemo(function () {
12604 var currentOption = options.find(function (option) { return getOptionValue(option, valueKey) === value; }) ||
12605 null;
12606 return getDisplayLabel$1(currentOption, labelKey, !disableLeftAddon);
12607 }, [
12608 options,
12609 getDisplayLabel$1,
12610 labelKey,
12611 disableLeftAddon,
12612 getOptionValue,
12613 valueKey,
12614 value,
12615 ]);
12616 var _y = useToggle(false), visible = _y[0], show = _y[1], hide = _y[2];
12617 var _z = useFocusState({ onBlur: onBlur, onFocus: onFocus }), focused = _z[0], handleFocus = _z[1], handleBlur = _z[2];
12618 var handleKeyDown = React.useCallback(function (event) {
12619 if (onKeyDown) {
12620 onKeyDown(event);
12621 }
12622 if (disabled) {
12623 return;
12624 }
12625 switch (event.key) {
12626 case " ":
12627 case "ArrowUp":
12628 case "ArrowDown":
12629 // prevent page scroll
12630 event.preventDefault();
12631 show();
12632 break;
12633 case "Enter": {
12634 var form = event.currentTarget.closest("form");
12635 if (form) {
12636 // the default behavior of pressing the "Enter" key on a form
12637 // control (input, textarea, select) is to submit a form, so that's
12638 // what this is attempting to polyfill. Unfortunately, using the
12639 // form.submit() ignores any `onSubmit` handlers like
12640 // event.preventDefault() so to work around that, try to first find
12641 // a submit button and click that instead. If there isn't a submit
12642 // button as a child of the form, try to find a submit button that
12643 // has the form attribute set to this current form's id.
12644 var submit = form.querySelector('[type="submit"]');
12645 if (!submit && form.id) {
12646 submit = document.querySelector("[type=\"submit\"][form=\"" + form.id + "\"]");
12647 }
12648 if (submit) {
12649 submit.click();
12650 }
12651 }
12652 break;
12653 }
12654 // no default
12655 }
12656 }, [onKeyDown, disabled, show]);
12657 var selectRef = React.useRef(null);
12658 var ref = React.useCallback(function (instance) {
12659 applyRef(instance, forwardedRef);
12660 selectRef.current = instance;
12661 }, [forwardedRef]);
12662 useCloseOnOutsideClick({
12663 enabled: visible,
12664 element: selectRef.current,
12665 onOutsideClick: hide,
12666 });
12667 var _0 = useFixedPositioning({
12668 fixedTo: function () { return selectRef.current; },
12669 anchor: anchor,
12670 onScroll: closeOnScroll ? hide : undefined,
12671 onResize: closeOnResize ? hide : undefined,
12672 transformOrigin: true,
12673 width: listboxWidth,
12674 onEntering: function (node) {
12675 // can't do onEnter since the positioning styles haven't been applied to the
12676 // dom node at this time. this means the list is the last element in the DOM
12677 // when portalled, which causes the page to scroll to the end. Moving it to
12678 // onEntering will ensure the styles have been applied and won't cause page
12679 // scrolling
12680 node.focus();
12681 },
12682 }), fixedStyle = _0.style, onEnter = _0.onEnter, onEntering = _0.onEntering, onEntered = _0.onEntered, onExited = _0.onExited;
12683 var handleClick = React.useCallback(function (event) {
12684 if (onClick) {
12685 onClick(event);
12686 }
12687 show();
12688 }, [onClick, show]);
12689 var handleKeyboardClose = React.useCallback(function () {
12690 hide();
12691 if (selectRef.current) {
12692 selectRef.current.focus();
12693 }
12694 }, [hide]);
12695 var labelId = id + "-label";
12696 var valueId = id + "-value";
12697 var listboxId = id + "-listbox";
12698 var displayValueId = id + "-display-value";
12699 return (React__default.createElement(React__default.Fragment, null,
12700 React__default.createElement(TextFieldContainer, __assign$U({}, props, { "aria-haspopup": "listbox", "aria-disabled": disabled || undefined, ref: ref, role: "button", tabIndex: disabled ? undefined : 0, label: !!label, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: disabled ? undefined : handleKeyDown, onClick: disabled ? undefined : handleClick, theme: theme, error: error, active: focused || visible, inline: inline, disabled: disabled, underlineDirection: underlineDirection, isLeftAddon: isLeftAddon, isRightAddon: isRightAddon, rightChildren: rightChildren, className: classnames(block$t({ disabled: disabled }), className) }),
12701 React__default.createElement(FloatingLabel, { id: labelId, style: labelStyle, className: classnames(block$t("label"), labelClassName), htmlFor: id, error: error, active: valued && (focused || visible), valued: valued, floating: focused || valued || visible, dense: dense, disabled: disabled, component: "span" }, label),
12702 React__default.createElement("span", { id: displayValueId, style: displayLabelStyle, className: classnames(block$t("value", {
12703 disabled: disabled,
12704 readonly: readOnly,
12705 placeholder: !valued && placeholder,
12706 "placeholder-active": !valued && placeholder && (focused || visible),
12707 }), displayLabelClassName) }, displayValue || (!valued && placeholder)),
12708 React__default.createElement("input", { id: valueId, type: "hidden", name: name, value: value })),
12709 React__default.createElement(Listbox, { id: listboxId, "aria-labelledby": id, style: __assign$U(__assign$U({}, fixedStyle), listboxStyle), className: listboxClassName, name: name, portal: portal, portalInto: portalInto, portalIntoId: portalIntoId, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExited: onExited, value: value, onChange: onChange, visible: visible, temporary: true, onRequestClose: handleKeyboardClose, options: options, labelKey: labelKey, valueKey: valueKey, getOptionId: getOptionId$1, getOptionLabel: getOptionLabel$1, getOptionValue: getOptionValue, isOptionDisabled: isOptionDisabled, disableMovementChange: disableMovementChange })));
12710 });
12711 {
12712 try {
12713 var PropTypes$N = require("prop-types");
12714 Select.propTypes = {
12715 id: PropTypes$N.string.isRequired,
12716 style: PropTypes$N.object,
12717 className: PropTypes$N.string,
12718 labelStyle: PropTypes$N.object,
12719 labelClassName: PropTypes$N.string,
12720 listboxStyle: PropTypes$N.object,
12721 listboxClassName: PropTypes$N.string,
12722 displayLabelStyle: PropTypes$N.object,
12723 displayLabelClassName: PropTypes$N.string,
12724 label: PropTypes$N.node,
12725 portal: PropTypes$N.bool,
12726 portalInto: PropTypes$N.oneOfType([
12727 PropTypes$N.string,
12728 PropTypes$N.object,
12729 PropTypes$N.func,
12730 ]),
12731 portalIntoId: PropTypes$N.string,
12732 labelKey: PropTypes$N.string,
12733 valueKey: PropTypes$N.string,
12734 getOptionId: PropTypes$N.func,
12735 getOptionLabel: PropTypes$N.func,
12736 getOptionValue: PropTypes$N.func,
12737 getDisplayLabel: PropTypes$N.func,
12738 isOptionDisabled: PropTypes$N.func,
12739 disableLeftAddon: PropTypes$N.bool,
12740 disableMovementChange: PropTypes$N.bool,
12741 theme: PropTypes$N.oneOf(["none", "underline", "filled", "outline"]),
12742 dense: PropTypes$N.bool,
12743 error: PropTypes$N.bool,
12744 inline: PropTypes$N.bool,
12745 readOnly: PropTypes$N.bool,
12746 disabled: PropTypes$N.bool,
12747 placeholder: PropTypes$N.node,
12748 underlineDirection: PropTypes$N.oneOf(["left", "center", "right"]),
12749 leftChildren: PropTypes$N.node,
12750 rightChildren: PropTypes$N.node,
12751 isLeftAddon: PropTypes$N.bool,
12752 isRightAddon: PropTypes$N.bool,
12753 closeOnResize: PropTypes$N.bool,
12754 closeOnScroll: PropTypes$N.bool,
12755 anchor: PropTypes$N.shape({
12756 x: PropTypes$N.oneOf([
12757 "inner-left",
12758 "inner-right",
12759 "center",
12760 "left",
12761 "right",
12762 ]),
12763 y: PropTypes$N.oneOf(["above", "below", "center", "top", "bottom"]),
12764 }),
12765 listboxWidth: PropTypes$N.oneOf(["equal", "min", "auto"]),
12766 name: PropTypes$N.string,
12767 options: PropTypes$N.arrayOf(PropTypes$N.oneOfType([
12768 PropTypes$N.string,
12769 PropTypes$N.number,
12770 PropTypes$N.object,
12771 ])).isRequired,
12772 onBlur: PropTypes$N.func,
12773 onFocus: PropTypes$N.func,
12774 onKeyDown: PropTypes$N.func,
12775 onClick: PropTypes$N.func,
12776 value: PropTypes$N.string.isRequired,
12777 onChange: PropTypes$N.func.isRequired,
12778 };
12779 }
12780 catch (e) { }
12781 }
12782
12783 var __assign$V = (undefined && undefined.__assign) || function () {
12784 __assign$V = Object.assign || function(t) {
12785 for (var s, i = 1, n = arguments.length; i < n; i++) {
12786 s = arguments[i];
12787 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12788 t[p] = s[p];
12789 }
12790 return t;
12791 };
12792 return __assign$V.apply(this, arguments);
12793 };
12794 var __rest$J = (undefined && undefined.__rest) || function (s, e) {
12795 var t = {};
12796 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12797 t[p] = s[p];
12798 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12799 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12800 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12801 t[p[i]] = s[p[i]];
12802 }
12803 return t;
12804 };
12805 var block$u = bem("rmd-text-field");
12806 var SPECIAL_TYPES = [
12807 "date",
12808 "time",
12809 "datetime-local",
12810 "month",
12811 "week",
12812 "color",
12813 ];
12814 /**
12815 * The text field is a wrapper of the `<input type="text" />` component with
12816 * some nice default themes. It can also be used to render other text input
12817 * types with _some_ support.
12818 */
12819 var TextField = React.forwardRef(function TextField(_a, ref) {
12820 var style = _a.style, className = _a.className, inputStyle = _a.inputStyle, inputClassName = _a.inputClassName, label = _a.label, labelStyle = _a.labelStyle, labelClassName = _a.labelClassName, _b = _a.type, type = _b === void 0 ? "text" : _b, propTheme = _a.theme, _c = _a.dense, dense = _c === void 0 ? false : _c, _d = _a.inline, inline = _d === void 0 ? false : _d, _e = _a.error, error = _e === void 0 ? false : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, propOnBlur = _a.onBlur, propOnFocus = _a.onFocus, propOnChange = _a.onChange, containerRef = _a.containerRef, _g = _a.isLeftAddon, isLeftAddon = _g === void 0 ? true : _g, _h = _a.isRightAddon, isRightAddon = _h === void 0 ? true : _h, leftChildren = _a.leftChildren, rightChildren = _a.rightChildren, propUnderlineDirection = _a.underlineDirection, containerProps = _a.containerProps, props = __rest$J(_a, ["style", "className", "inputStyle", "inputClassName", "label", "labelStyle", "labelClassName", "type", "theme", "dense", "inline", "error", "disabled", "onBlur", "onFocus", "onChange", "containerRef", "isLeftAddon", "isRightAddon", "leftChildren", "rightChildren", "underlineDirection", "containerProps"]);
12821 var id = props.id, value = props.value, defaultValue = props.defaultValue;
12822 var _j = useFocusState({
12823 onBlur: propOnBlur,
12824 onFocus: propOnFocus,
12825 }), focused = _j[0], onFocus = _j[1], onBlur = _j[2];
12826 var _k = useValuedState({
12827 value: value,
12828 defaultValue: defaultValue,
12829 onChange: propOnChange,
12830 }), valued = _k[0], onChange = _k[1];
12831 var _l = useFormTheme({
12832 theme: propTheme,
12833 underlineDirection: propUnderlineDirection,
12834 }), theme = _l.theme, underlineDirection = _l.underlineDirection;
12835 return (React__default.createElement(TextFieldContainer, __assign$V({}, containerProps, { style: style, className: className, ref: containerRef, theme: theme, error: error, active: focused, label: !!label, dense: dense, inline: inline, disabled: disabled, isLeftAddon: isLeftAddon, isRightAddon: isRightAddon, leftChildren: leftChildren, rightChildren: rightChildren, underlineDirection: underlineDirection }),
12836 React__default.createElement(FloatingLabel, { style: labelStyle, className: labelClassName, htmlFor: id, error: error, active: focused, floating: focused || valued || SPECIAL_TYPES.includes(type), valued: valued, dense: dense, disabled: disabled }, label),
12837 React__default.createElement("input", __assign$V({}, props, { ref: ref, type: type, disabled: disabled, onFocus: onFocus, onBlur: onBlur, onChange: onChange, style: inputStyle, className: classnames(block$u({
12838 floating: label && theme !== "none",
12839 }), inputClassName) }))));
12840 });
12841 {
12842 try {
12843 var PropTypes$O = require("prop-types");
12844 TextField.propTypes = {
12845 id: PropTypes$O.string.isRequired,
12846 type: PropTypes$O.oneOf([
12847 "text",
12848 "password",
12849 "number",
12850 "tel",
12851 "email",
12852 "date",
12853 "time",
12854 "datetime-local",
12855 "month",
12856 "week",
12857 "url",
12858 "color",
12859 ]),
12860 style: PropTypes$O.object,
12861 className: PropTypes$O.string,
12862 inputStyle: PropTypes$O.object,
12863 inputClassName: PropTypes$O.string,
12864 labelStyle: PropTypes$O.object,
12865 labelClassName: PropTypes$O.string,
12866 label: PropTypes$O.node,
12867 value: PropTypes$O.string,
12868 defaultValue: PropTypes$O.string,
12869 theme: PropTypes$O.oneOf(["none", "underline", "filled", "outline"]),
12870 dense: PropTypes$O.bool,
12871 error: PropTypes$O.bool,
12872 inline: PropTypes$O.bool,
12873 disabled: PropTypes$O.bool,
12874 placeholder: PropTypes$O.string,
12875 underlineDirection: PropTypes$O.oneOf(["left", "center", "right"]),
12876 leftChildren: PropTypes$O.node,
12877 rightChildren: PropTypes$O.node,
12878 isLeftAddon: PropTypes$O.bool,
12879 isRightAddon: PropTypes$O.bool,
12880 onBlur: PropTypes$O.func,
12881 onFocus: PropTypes$O.func,
12882 onChange: PropTypes$O.func,
12883 containerRef: PropTypes$O.oneOfType([PropTypes$O.func, PropTypes$O.object]),
12884 containerProps: PropTypes$O.object,
12885 };
12886 }
12887 catch (e) { }
12888 }
12889
12890 var __assign$W = (undefined && undefined.__assign) || function () {
12891 __assign$W = Object.assign || function(t) {
12892 for (var s, i = 1, n = arguments.length; i < n; i++) {
12893 s = arguments[i];
12894 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12895 t[p] = s[p];
12896 }
12897 return t;
12898 };
12899 return __assign$W.apply(this, arguments);
12900 };
12901 var __rest$K = (undefined && undefined.__rest) || function (s, e) {
12902 var t = {};
12903 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12904 t[p] = s[p];
12905 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12906 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12907 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12908 t[p[i]] = s[p[i]];
12909 }
12910 return t;
12911 };
12912 var block$v = bem("rmd-password");
12913 function isConfigurableIcon(icon) {
12914 return !!icon && !React.isValidElement(icon);
12915 }
12916 /**
12917 * This component is a simple wrapper of the `TextField` that can only be
12918 * rendered for password inputs. There is built-in functionality to be able to
12919 * temporarily show the password's value by swapping the `type` to `"text"`.
12920 */
12921 var Password = React.forwardRef(function Password(_a, ref) {
12922 var className = _a.className, inputClassName = _a.inputClassName, propVisibilityIcon = _a.visibilityIcon, visibilityStyle = _a.visibilityStyle, visibilityClassName = _a.visibilityClassName, _b = _a.visibilityLabel, visibilityLabel = _b === void 0 ? "Show password" : _b, onVisibilityClick = _a.onVisibilityClick, getVisibilityIcon = _a.getVisibilityIcon, _c = _a.disableVisibility, disableVisibility = _c === void 0 ? false : _c, props = __rest$K(_a, ["className", "inputClassName", "visibilityIcon", "visibilityStyle", "visibilityClassName", "visibilityLabel", "onVisibilityClick", "getVisibilityIcon", "disableVisibility"]);
12923 var id = props.id;
12924 var _d = React.useState("password"), type = _d[0], setType = _d[1];
12925 var toggle = React.useCallback(function (event) {
12926 if (onVisibilityClick) {
12927 onVisibilityClick(event);
12928 }
12929 setType(function (prevType) { return (prevType === "password" ? "text" : "password"); });
12930 }, [onVisibilityClick]);
12931 var visible = type === "text";
12932 var visibilityIcon = useIcon("password", propVisibilityIcon);
12933 if (isConfigurableIcon(propVisibilityIcon)) {
12934 visibilityIcon = visible
12935 ? propVisibilityIcon.visible
12936 : propVisibilityIcon.invisible;
12937 }
12938 return (React__default.createElement(TextField, __assign$W({}, props, { className: classnames(block$v({ offset: !disableVisibility }), className), inputClassName: classnames(block$v("input", { offset: !disableVisibility }), inputClassName), ref: ref, type: type, isRightAddon: false, rightChildren: !disableVisibility && (React__default.createElement(Button, { id: id + "-password-toggle", "aria-label": visibilityLabel, "aria-pressed": visible, buttonType: "icon", onClick: toggle, style: visibilityStyle, className: classnames(block$v("toggle"), visibilityClassName) }, typeof getVisibilityIcon === "function"
12939 ? getVisibilityIcon(type)
12940 : visibilityIcon)) })));
12941 });
12942 {
12943 try {
12944 var PropTypes$P = require("prop-types");
12945 Password.propTypes = {
12946 id: PropTypes$P.string.isRequired,
12947 className: PropTypes$P.string,
12948 inputClassName: PropTypes$P.string,
12949 visibilityIcon: PropTypes$P.oneOfType([
12950 PropTypes$P.node,
12951 PropTypes$P.shape({
12952 visible: PropTypes$P.node,
12953 invisible: PropTypes$P.node,
12954 }),
12955 ]),
12956 visibilityStyle: PropTypes$P.object,
12957 visibilityClassName: PropTypes$P.string,
12958 visibilityLabel: PropTypes$P.string,
12959 disableVisibility: PropTypes$P.bool,
12960 onVisibilityClick: PropTypes$P.func,
12961 getVisibilityIcon: PropTypes$P.func,
12962 };
12963 }
12964 catch (e) { }
12965 }
12966
12967 var __assign$X = (undefined && undefined.__assign) || function () {
12968 __assign$X = Object.assign || function(t) {
12969 for (var s, i = 1, n = arguments.length; i < n; i++) {
12970 s = arguments[i];
12971 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12972 t[p] = s[p];
12973 }
12974 return t;
12975 };
12976 return __assign$X.apply(this, arguments);
12977 };
12978 var __rest$L = (undefined && undefined.__rest) || function (s, e) {
12979 var t = {};
12980 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12981 t[p] = s[p];
12982 if (s != null && typeof Object.getOwnPropertySymbols === "function")
12983 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12984 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12985 t[p[i]] = s[p[i]];
12986 }
12987 return t;
12988 };
12989 var block$w = bem("rmd-textarea");
12990 var container$1 = bem("rmd-textarea-container");
12991 var PADDING_VARIABLES = "var(--rmd-form-text-padding-top, 0px) + var(--rmd-form-textarea-padding, 0px)";
12992 // this is the default of 1.5rem line-height in the styles
12993 var DEFAULT_LINE_HEIGHT = "24";
12994 var TextArea = React.forwardRef(function TextArea(_a, forwardedRef) {
12995 var style = _a.style, className = _a.className, areaStyle = _a.areaStyle, areaClassName = _a.areaClassName, containerRef = _a.containerRef, label = _a.label, labelStyle = _a.labelStyle, labelClassName = _a.labelClassName, _b = _a.rows, rows = _b === void 0 ? 2 : _b, _c = _a.maxRows, maxRows = _c === void 0 ? -1 : _c, _d = _a.resize, resize = _d === void 0 ? "auto" : _d, propTheme = _a.theme, _e = _a.dense, dense = _e === void 0 ? false : _e, _f = _a.inline, propInline = _f === void 0 ? false : _f, _g = _a.error, error = _g === void 0 ? false : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.animate, animate = _j === void 0 ? true : _j, _k = _a.isLeftAddon, isLeftAddon = _k === void 0 ? true : _k, _l = _a.isRightAddon, isRightAddon = _l === void 0 ? true : _l, propUnderlineDirection = _a.underlineDirection, propOnBlur = _a.onBlur, propOnFocus = _a.onFocus, propOnChange = _a.onChange, leftChildren = _a.leftChildren, rightChildren = _a.rightChildren, props = __rest$L(_a, ["style", "className", "areaStyle", "areaClassName", "containerRef", "label", "labelStyle", "labelClassName", "rows", "maxRows", "resize", "theme", "dense", "inline", "error", "disabled", "animate", "isLeftAddon", "isRightAddon", "underlineDirection", "onBlur", "onFocus", "onChange", "leftChildren", "rightChildren"]);
12996 var id = props.id, value = props.value, defaultValue = props.defaultValue;
12997 var _m = useFormTheme({
12998 theme: propTheme,
12999 underlineDirection: propUnderlineDirection,
13000 }), theme = _m.theme, underlineDirection = _m.underlineDirection;
13001 var _o = useFocusState({
13002 onBlur: propOnBlur,
13003 onFocus: propOnFocus,
13004 }), focused = _o[0], onFocus = _o[1], onBlur = _o[2];
13005 var _p = React.useState(), height = _p[0], setHeight = _p[1];
13006 if (resize !== "auto" && typeof height === "number") {
13007 setHeight(undefined);
13008 }
13009 var _q = React.useState(null), mask = _q[0], setMask = _q[1];
13010 var _r = React.useState(false), scrollable = _r[0], setScrollable = _r[1];
13011 var updateHeight = function () {
13012 if (!mask) {
13013 return;
13014 }
13015 var nextHeight = mask.scrollHeight;
13016 if (maxRows > 0) {
13017 var lineHeight = parseFloat(window.getComputedStyle(mask).lineHeight || DEFAULT_LINE_HEIGHT);
13018 var maxHeight = maxRows * lineHeight;
13019 nextHeight = Math.min(maxHeight, nextHeight);
13020 // only want the textarea to be scrollable if there's a limit on the rows
13021 // since it'll flash the scrollbar on most OS during the height transition
13022 if (nextHeight === maxHeight && !scrollable) {
13023 setScrollable(true);
13024 }
13025 else if (nextHeight !== maxHeight && scrollable) {
13026 setScrollable(false);
13027 }
13028 }
13029 if (height !== nextHeight) {
13030 setHeight(nextHeight);
13031 }
13032 };
13033 // the window can be resized while there is text inside the textarea so need to
13034 // recalculate the height when the width changes as well.
13035 useResizeObserver({
13036 disableHeight: true,
13037 target: mask,
13038 onResize: updateHeight,
13039 });
13040 var _s = useValuedState({
13041 value: value,
13042 defaultValue: defaultValue,
13043 onChange: function (event) {
13044 if (propOnChange) {
13045 propOnChange(event);
13046 }
13047 if (!mask || resize !== "auto") {
13048 return;
13049 }
13050 // to get the height transition to work, you have to set the height on:
13051 // - the main container element (including padding) that has the height
13052 // transition enabled
13053 // - a child div wrapper (without padding) that has the height transition
13054 // enabled
13055 // - the textarea element (without padding) and without a height transition
13056 //
13057 // if it isn't done this way, the height transition will look weird since
13058 // the text will be fixed to the bottom of the area and more text at the top
13059 // will become visible as the height transition completes. applying the
13060 // transition on the two parent elements work because:
13061 // - the height is set immediately on the text field so it expands to show all
13062 // the text
13063 // - the height is correctly applied to both parent elements, but their height
13064 // haven't fully been adjusted due to the animation
13065 // - the parent divs have overflow visible by default, so the textarea's text
13066 // will expand past the boundaries of the divs and not cause the upwards
13067 // animation weirdness.
13068 mask.value = event.currentTarget.value;
13069 updateHeight();
13070 },
13071 }), valued = _s[0], onChange = _s[1];
13072 var areaRef = React.useRef(null);
13073 var refHandler = React.useCallback(function (instance) {
13074 applyRef(instance, forwardedRef);
13075 areaRef.current = instance;
13076 }, [forwardedRef]);
13077 // the container element adds some padding so that the content can scroll and
13078 // not be covered by the floating label. unfortunately, this means that the entire
13079 // container is no longer clickable to focus the input. This is used to add that
13080 // functionality back.
13081 var handleClick = React.useCallback(function (event) {
13082 if (areaRef.current && event.target === event.currentTarget) {
13083 areaRef.current.focus();
13084 }
13085 }, []);
13086 var area = (React__default.createElement("textarea", __assign$X({}, props, { ref: refHandler, rows: rows, disabled: disabled, onFocus: onFocus, onBlur: onBlur, onChange: onChange, style: __assign$X(__assign$X({}, areaStyle), { height: height }), className: classnames(block$w({
13087 scrollable: scrollable || resize === "none",
13088 floating: label && theme !== "none",
13089 rh: resize === "horizontal",
13090 rv: resize === "vertical",
13091 rn: resize === "auto" || resize === "none",
13092 }), areaClassName) })));
13093 var children = area;
13094 if (resize === "auto") {
13095 children = (React__default.createElement("div", { style: { height: height }, className: container$1("inner", { animate: animate }) },
13096 area,
13097 React__default.createElement("textarea", { "aria-hidden": true, defaultValue: value || defaultValue, id: id + "-mask", ref: setMask, readOnly: true, rows: rows, tabIndex: -1, style: areaStyle, className: classnames(block$w({
13098 rn: true,
13099 mask: true,
13100 floating: label && theme !== "none",
13101 }), areaClassName) })));
13102 }
13103 var inline = propInline;
13104 if (resize === "horizontal" || resize === "both") {
13105 // have to force it inline or else you won't be able to resize
13106 // it horizontally.
13107 inline = true;
13108 }
13109 return (React__default.createElement(TextFieldContainer, { style: __assign$X(__assign$X({}, style), { height: height
13110 ? "calc(" + PADDING_VARIABLES + " + " + height + "px)"
13111 : undefined }), className: classnames(container$1({
13112 animate: animate && resize === "auto",
13113 cursor: !disabled,
13114 }), className), ref: containerRef, theme: theme, error: error, active: focused, label: !!label, dense: dense, inline: inline, disabled: disabled, isLeftAddon: isLeftAddon, isRightAddon: isRightAddon, leftChildren: leftChildren, rightChildren: rightChildren, underlineDirection: underlineDirection, onClick: !disabled ? handleClick : undefined },
13115 React__default.createElement(FloatingLabel, { style: labelStyle, className: labelClassName, htmlFor: id, error: error, active: focused, floating: focused || valued, valued: valued, dense: dense, disabled: disabled }, label),
13116 children));
13117 });
13118 {
13119 try {
13120 var PropTypes$Q = require("prop-types");
13121 TextArea.propTypes = {
13122 id: PropTypes$Q.string.isRequired,
13123 style: PropTypes$Q.object,
13124 className: PropTypes$Q.string,
13125 areaStyle: PropTypes$Q.object,
13126 areaClassName: PropTypes$Q.string,
13127 labelStyle: PropTypes$Q.object,
13128 labelClassName: PropTypes$Q.string,
13129 label: PropTypes$Q.node,
13130 value: PropTypes$Q.string,
13131 defaultValue: PropTypes$Q.string,
13132 theme: PropTypes$Q.oneOf(["none", "underline", "filled", "outline"]),
13133 dense: PropTypes$Q.bool,
13134 error: PropTypes$Q.bool,
13135 inline: PropTypes$Q.bool,
13136 disabled: PropTypes$Q.bool,
13137 placeholder: PropTypes$Q.string,
13138 underlineDirection: PropTypes$Q.oneOf(["left", "center", "right"]),
13139 leftChildren: PropTypes$Q.node,
13140 rightChildren: PropTypes$Q.node,
13141 isLeftAddon: PropTypes$Q.bool,
13142 isRightAddon: PropTypes$Q.bool,
13143 animate: PropTypes$Q.bool,
13144 rows: PropTypes$Q.number,
13145 maxRows: PropTypes$Q.number,
13146 resize: PropTypes$Q.oneOf([
13147 "none",
13148 "auto",
13149 "horizontal",
13150 "vertical",
13151 "both",
13152 ]),
13153 containerRef: PropTypes$Q.oneOfType([PropTypes$Q.func, PropTypes$Q.object]),
13154 onBlur: PropTypes$Q.func,
13155 onFocus: PropTypes$Q.func,
13156 onChange: PropTypes$Q.func,
13157 };
13158 }
13159 catch (e) { }
13160 }
13161
13162 var __assign$Y = (undefined && undefined.__assign) || function () {
13163 __assign$Y = Object.assign || function(t) {
13164 for (var s, i = 1, n = arguments.length; i < n; i++) {
13165 s = arguments[i];
13166 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13167 t[p] = s[p];
13168 }
13169 return t;
13170 };
13171 return __assign$Y.apply(this, arguments);
13172 };
13173 var __rest$M = (undefined && undefined.__rest) || function (s, e) {
13174 var t = {};
13175 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13176 t[p] = s[p];
13177 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13178 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13179 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13180 t[p[i]] = s[p[i]];
13181 }
13182 return t;
13183 };
13184 var block$x = bem("rmd-form-message");
13185 /**
13186 * The `FormMessage` component is used to create additional helper messages or
13187 * error messages and generally placed below the related `TextField`. If a
13188 * `length` (of the `value`) and `maxLength` are provided, a counter will also
13189 * be displayed to the right of the `children`.
13190 *
13191 * This component can also be used to create form-level validation messages by
13192 * setting the `role` prop to `"alert"`.
13193 */
13194 var FormMessage = React.forwardRef(function FormMessage(_a, ref) {
13195 var _b;
13196 var id = _a.id, role = _a.role, className = _a.className, counterStyle = _a.counterStyle, counterClassName = _a.counterClassName, messageStyle = _a.messageStyle, messageClassName = _a.messageClassName, _c = _a.error, error = _c === void 0 ? false : _c, _d = _a.disableWrap, disableWrap = _d === void 0 ? false : _d, propTheme = _a.theme, children = _a.children, length = _a.length, maxLength = _a.maxLength, props = __rest$M(_a, ["id", "role", "className", "counterStyle", "counterClassName", "messageStyle", "messageClassName", "error", "disableWrap", "theme", "children", "length", "maxLength"]);
13197 var theme = useFormTheme({ theme: propTheme }).theme;
13198 var message = children;
13199 if (!disableWrap && children) {
13200 message = (React__default.createElement("p", { id: id + "-message", style: messageStyle, className: classnames(block$x("message"), messageClassName) }, children));
13201 }
13202 return (React__default.createElement("div", __assign$Y({}, props, { id: id, ref: ref, "aria-live": role !== "alert" ? "polite" : undefined, role: role, className: classnames(block$x((_b = {
13203 error: error
13204 },
13205 _b[theme] = theme !== "none",
13206 _b)), className) }),
13207 message,
13208 typeof length === "number" && typeof maxLength === "number" && (React__default.createElement("span", { id: id + "-counter", style: counterStyle, className: classnames(block$x("counter"), counterClassName) }, length + " / " + maxLength))));
13209 });
13210 {
13211 try {
13212 var PropTypes$R = require("prop-types");
13213 FormMessage.propTypes = {
13214 id: PropTypes$R.string.isRequired,
13215 role: PropTypes$R.oneOf(["alert"]),
13216 className: PropTypes$R.string,
13217 messageStyle: PropTypes$R.object,
13218 messageClassName: PropTypes$R.string,
13219 counterStyle: PropTypes$R.object,
13220 counterClassName: PropTypes$R.string,
13221 error: PropTypes$R.bool,
13222 length: PropTypes$R.number,
13223 maxLength: PropTypes$R.number,
13224 disableWrap: PropTypes$R.bool,
13225 children: PropTypes$R.node,
13226 theme: PropTypes$R.oneOf(["none", "underline", "filled", "outline"]),
13227 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13228 // @ts-ignore
13229 _counterValidator: function (props, _propName, component) {
13230 var length = props.length, maxLength = props.maxLength;
13231 var lengthType = typeof length;
13232 var maxLengthType = typeof length;
13233 if (lengthType === maxLengthType) {
13234 return null;
13235 }
13236 return new Error("Both the `length` and `maxLength` props are required to be defined " +
13237 ("and a number to create a counter in the `" + component + " component, but ") +
13238 ("received `length: " + length + "` and `maxLength: " + maxLength + "`"));
13239 },
13240 };
13241 }
13242 catch (e) { }
13243 }
13244
13245 var __assign$Z = (undefined && undefined.__assign) || function () {
13246 __assign$Z = Object.assign || function(t) {
13247 for (var s, i = 1, n = arguments.length; i < n; i++) {
13248 s = arguments[i];
13249 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13250 t[p] = s[p];
13251 }
13252 return t;
13253 };
13254 return __assign$Z.apply(this, arguments);
13255 };
13256 var __rest$N = (undefined && undefined.__rest) || function (s, e) {
13257 var t = {};
13258 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13259 t[p] = s[p];
13260 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13261 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13262 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13263 t[p[i]] = s[p[i]];
13264 }
13265 return t;
13266 };
13267 var block$y = bem("rmd-toggle-container");
13268 /**
13269 * The `ToggleContainer` component should generally be used around a
13270 * custom `"checkbox"`, `"radio"`, or `"switch"` component to help with
13271 * additional styles. This is mostly an internal component so I'm not
13272 * sure useful it will be though.
13273 */
13274 var ToggleContainer = React.forwardRef(function ToggleContainer(_a, ref) {
13275 var className = _a.className, _b = _a.inline, inline = _b === void 0 ? false : _b, _c = _a.stacked, stacked = _c === void 0 ? false : _c, children = _a.children, props = __rest$N(_a, ["className", "inline", "stacked", "children"]);
13276 return (React__default.createElement("div", __assign$Z({}, props, { ref: ref, className: classnames(block$y({ stacked: stacked, inline: inline }), className) }), children));
13277 });
13278 {
13279 try {
13280 var PropTypes$S = require("prop-types");
13281 ToggleContainer.propTypes = {
13282 inline: PropTypes$S.bool,
13283 stacked: PropTypes$S.bool,
13284 className: PropTypes$S.string,
13285 children: PropTypes$S.node,
13286 };
13287 }
13288 catch (e) { }
13289 }
13290
13291 var __assign$_ = (undefined && undefined.__assign) || function () {
13292 __assign$_ = Object.assign || function(t) {
13293 for (var s, i = 1, n = arguments.length; i < n; i++) {
13294 s = arguments[i];
13295 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13296 t[p] = s[p];
13297 }
13298 return t;
13299 };
13300 return __assign$_.apply(this, arguments);
13301 };
13302 var __rest$O = (undefined && undefined.__rest) || function (s, e) {
13303 var t = {};
13304 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13305 t[p] = s[p];
13306 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13307 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13308 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13309 t[p[i]] = s[p[i]];
13310 }
13311 return t;
13312 };
13313 var block$z = bem("rmd-toggle");
13314 var InputToggle = React.forwardRef(function InputToggle(allProps, ref) {
13315 var _a = allProps, style = _a.style, className = _a.className, iconStyle = _a.iconStyle, iconClassName = _a.iconClassName, toggleStyle = _a.toggleStyle, propToggleClassName = _a.toggleClassName, icon = _a.icon, propOnFocus = _a.onFocus, propOnBlur = _a.onBlur, _b = _a.error, error = _b === void 0 ? false : _b, _c = _a.inline, inline = _c === void 0 ? false : _c, _d = _a.stacked, stacked = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, label = _a.label, labelStyle = _a.labelStyle, labelClassName = _a.labelClassName, labelDisabled = _a.labelDisabled, _f = _a.iconAfter, iconAfter = _f === void 0 ? false : _f, _g = _a.disableIconOverlay, disableIconOverlay = _g === void 0 ? false : _g, disableRipple = _a.disableRipple, disableProgrammaticRipple = _a.disableProgrammaticRipple, rippleTimeout = _a.rippleTimeout, rippleClassNames = _a.rippleClassNames, children = _a.children, indeterminate = _a.indeterminate, props = __rest$O(_a, ["style", "className", "iconStyle", "iconClassName", "toggleStyle", "toggleClassName", "icon", "onFocus", "onBlur", "error", "inline", "stacked", "disabled", "label", "labelStyle", "labelClassName", "labelDisabled", "iconAfter", "disableIconOverlay", "disableRipple", "disableProgrammaticRipple", "rippleTimeout", "rippleClassNames", "children", "indeterminate"]);
13316 var id = props.id, type = props.type;
13317 var _h = useInteractionStates({
13318 handlers: props,
13319 disabled: disabled,
13320 className: propToggleClassName,
13321 disableRipple: disableRipple,
13322 disableProgrammaticRipple: disableProgrammaticRipple,
13323 rippleTimeout: rippleTimeout,
13324 rippleClassNames: rippleClassNames,
13325 }), ripples = _h.ripples, handlers = _h.handlers, toggleClassName = _h.className;
13326 var _j = useFocusState({
13327 onFocus: propOnFocus,
13328 onBlur: propOnBlur,
13329 }), focused = _j[0], onFocus = _j[1], onBlur = _j[2];
13330 var labelEl = (React__default.createElement(Label, { style: labelStyle, className: labelClassName, htmlFor: id, error: error, disabled: typeof labelDisabled === "boolean" ? labelDisabled : disabled }, label));
13331 return (React__default.createElement(ToggleContainer, { style: style, className: className, inline: inline, stacked: stacked },
13332 iconAfter && labelEl,
13333 React__default.createElement("span", { style: toggleStyle, className: classnames(block$z({
13334 focused: focused,
13335 disabled: disabled,
13336 }), toggleClassName) },
13337 React__default.createElement("input", __assign$_({}, props, handlers, { ref: ref, disabled: disabled, onFocus: onFocus, onBlur: onBlur, className: block$z("input") })),
13338 React__default.createElement("span", { style: iconStyle, className: classnames(block$z("icon", {
13339 circle: !disableIconOverlay && type === "radio",
13340 disabled: disabled,
13341 overlay: !disableIconOverlay,
13342 indeterminate: indeterminate,
13343 }), iconClassName) }, icon),
13344 ripples,
13345 children),
13346 !iconAfter && labelEl));
13347 });
13348 {
13349 try {
13350 var PropTypes$T = require("prop-types");
13351 InputToggle.propTypes = {
13352 id: PropTypes$T.string.isRequired,
13353 style: PropTypes$T.object,
13354 className: PropTypes$T.string,
13355 type: PropTypes$T.oneOf(["radio", "checkbox"]).isRequired,
13356 icon: PropTypes$T.node,
13357 iconStyle: PropTypes$T.object,
13358 iconClassName: PropTypes$T.string,
13359 toggleStyle: PropTypes$T.object,
13360 toggleClassName: PropTypes$T.string,
13361 error: PropTypes$T.bool,
13362 label: PropTypes$T.node,
13363 labelStyle: PropTypes$T.object,
13364 labelClassName: PropTypes$T.string,
13365 labelDisabled: PropTypes$T.bool,
13366 inline: PropTypes$T.bool,
13367 stacked: PropTypes$T.bool,
13368 disabled: PropTypes$T.bool,
13369 iconAfter: PropTypes$T.bool,
13370 onBlur: PropTypes$T.func,
13371 onFocus: PropTypes$T.func,
13372 disableIconOverlay: PropTypes$T.bool,
13373 disableRipple: PropTypes$T.bool,
13374 disableProgrammaticRipple: PropTypes$T.bool,
13375 rippleTimeout: PropTypes$T.oneOfType([
13376 PropTypes$T.number,
13377 PropTypes$T.shape({
13378 appear: PropTypes$T.number,
13379 enter: PropTypes$T.number,
13380 exit: PropTypes$T.number,
13381 }),
13382 ]),
13383 rippleClassNames: PropTypes$T.oneOfType([
13384 PropTypes$T.string,
13385 PropTypes$T.shape({
13386 appear: PropTypes$T.string,
13387 appearActive: PropTypes$T.string,
13388 enter: PropTypes$T.string,
13389 enterActive: PropTypes$T.string,
13390 enterDone: PropTypes$T.string,
13391 exit: PropTypes$T.string,
13392 exitActive: PropTypes$T.string,
13393 exitDone: PropTypes$T.string,
13394 }),
13395 ]),
13396 children: PropTypes$T.node,
13397 indeterminate: PropTypes$T.bool,
13398 };
13399 }
13400 catch (e) { }
13401 }
13402
13403 var __assign$$ = (undefined && undefined.__assign) || function () {
13404 __assign$$ = Object.assign || function(t) {
13405 for (var s, i = 1, n = arguments.length; i < n; i++) {
13406 s = arguments[i];
13407 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13408 t[p] = s[p];
13409 }
13410 return t;
13411 };
13412 return __assign$$.apply(this, arguments);
13413 };
13414 var __rest$P = (undefined && undefined.__rest) || function (s, e) {
13415 var t = {};
13416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13417 t[p] = s[p];
13418 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13419 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13420 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13421 t[p[i]] = s[p[i]];
13422 }
13423 return t;
13424 };
13425 /**
13426 * The `Checkbox` component is just a wrapper for the `InputToggle` that
13427 * defaults to reasonable defaults for a checkbox input.
13428 */
13429 var Checkbox = React.forwardRef(function Checkbox(_a, ref) {
13430 var propIcon = _a.icon, _b = _a.indeterminate, indeterminate = _b === void 0 ? false : _b, props = __rest$P(_a, ["icon", "indeterminate"]);
13431 var icon = useIcon("checkbox", propIcon);
13432 return (React__default.createElement(InputToggle, __assign$$({}, props, { icon: icon, ref: ref, type: "checkbox", indeterminate: indeterminate })));
13433 });
13434 {
13435 try {
13436 var PropTypes$U = require("prop-types");
13437 Checkbox.propTypes = {
13438 indeterminate: PropTypes$U.bool,
13439 icon: PropTypes$U.node,
13440 };
13441 }
13442 catch (e) { }
13443 }
13444
13445 var __assign$10 = (undefined && undefined.__assign) || function () {
13446 __assign$10 = Object.assign || function(t) {
13447 for (var s, i = 1, n = arguments.length; i < n; i++) {
13448 s = arguments[i];
13449 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13450 t[p] = s[p];
13451 }
13452 return t;
13453 };
13454 return __assign$10.apply(this, arguments);
13455 };
13456 var __rest$Q = (undefined && undefined.__rest) || function (s, e) {
13457 var t = {};
13458 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13459 t[p] = s[p];
13460 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13461 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13462 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13463 t[p[i]] = s[p[i]];
13464 }
13465 return t;
13466 };
13467 /**
13468 * The `Radio` component is just a wrapper for the `InputToggle` that
13469 * defaults to reasonable defaults for a radio input.
13470 */
13471 var Radio = React.forwardRef(function Radio(_a, ref) {
13472 var propIcon = _a.icon, props = __rest$Q(_a, ["icon"]);
13473 var icon = useIcon("radio", propIcon);
13474 return React__default.createElement(InputToggle, __assign$10({}, props, { icon: icon, ref: ref, type: "radio" }));
13475 });
13476 {
13477 try {
13478 var PropTypes$V = require("prop-types");
13479 Radio.propTypes = {
13480 id: PropTypes$V.string.isRequired,
13481 name: PropTypes$V.string,
13482 icon: PropTypes$V.node,
13483 value: PropTypes$V.oneOfType([
13484 PropTypes$V.arrayOf(PropTypes$V.string),
13485 PropTypes$V.string,
13486 PropTypes$V.number,
13487 ]).isRequired,
13488 };
13489 }
13490 catch (e) { }
13491 }
13492
13493 var __assign$11 = (undefined && undefined.__assign) || function () {
13494 __assign$11 = Object.assign || function(t) {
13495 for (var s, i = 1, n = arguments.length; i < n; i++) {
13496 s = arguments[i];
13497 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13498 t[p] = s[p];
13499 }
13500 return t;
13501 };
13502 return __assign$11.apply(this, arguments);
13503 };
13504 var __rest$R = (undefined && undefined.__rest) || function (s, e) {
13505 var t = {};
13506 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13507 t[p] = s[p];
13508 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13509 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13510 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13511 t[p[i]] = s[p[i]];
13512 }
13513 return t;
13514 };
13515 var block$A = bem("rmd-switch");
13516 var Switch = React.forwardRef(function Switch(_a, ref) {
13517 var style = _a.style, className = _a.className, ballStyle = _a.ballStyle, ballClassName = _a.ballClassName, trackStyle = _a.trackStyle, trackClassName = _a.trackClassName, label = _a.label, labelStyle = _a.labelStyle, labelClassName = _a.labelClassName, labelDisabled = _a.labelDisabled, _b = _a.error, error = _b === void 0 ? false : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.stacked, stacked = _d === void 0 ? false : _d, _e = _a.inline, inline = _e === void 0 ? false : _e, _f = _a.iconAfter, iconAfter = _f === void 0 ? false : _f, children = _a.children, props = __rest$R(_a, ["style", "className", "ballStyle", "ballClassName", "trackStyle", "trackClassName", "label", "labelStyle", "labelClassName", "labelDisabled", "error", "disabled", "stacked", "inline", "iconAfter", "children"]);
13518 var id = props.id;
13519 return (React__default.createElement(ToggleContainer, { style: style, className: classnames("rmd-switch-container", className), inline: inline, stacked: stacked },
13520 React__default.createElement(TextIconSpacing, { icon: React__default.createElement(Label, { style: labelStyle, className: labelClassName, htmlFor: id, error: error, disabled: typeof labelDisabled === "boolean" ? labelDisabled : disabled }, label), iconAfter: !iconAfter },
13521 React__default.createElement("span", { style: trackStyle, className: classnames(block$A(), trackClassName) },
13522 React__default.createElement("input", __assign$11({}, props, { ref: ref, type: "checkbox", className: classnames(block$A("input")), disabled: disabled })),
13523 React__default.createElement("label", { htmlFor: id, "aria-hidden": true, style: ballStyle, className: classnames(block$A("ball"), ballClassName) }, children)))));
13524 });
13525 {
13526 try {
13527 var PropTypes$W = require("prop-types");
13528 Switch.propTypes = {
13529 id: PropTypes$W.string.isRequired,
13530 style: PropTypes$W.object,
13531 className: PropTypes$W.string,
13532 ballStyle: PropTypes$W.object,
13533 ballClassName: PropTypes$W.string,
13534 trackStyle: PropTypes$W.object,
13535 trackClassName: PropTypes$W.string,
13536 label: PropTypes$W.node,
13537 labelStyle: PropTypes$W.object,
13538 labelClassName: PropTypes$W.string,
13539 labelDisabled: PropTypes$W.bool,
13540 error: PropTypes$W.bool,
13541 inline: PropTypes$W.bool,
13542 disabled: PropTypes$W.bool,
13543 stacked: PropTypes$W.bool,
13544 iconAfter: PropTypes$W.bool,
13545 children: PropTypes$W.node,
13546 };
13547 }
13548 catch (e) { }
13549 }
13550
13551 /**
13552 * Gets the current progress based on the min, max, and current value.
13553 *
13554 * @param min the min progress value
13555 * @param max the max progress value
13556 * @param value the current value for the progress bar
13557 * @return the progress as a percentage or undefined if there was no value
13558 * provided
13559 */
13560 function getProgress(min, max, value) {
13561 if (min >= max) {
13562 throw new RangeError("A progress range must have the min value less than the max value");
13563 }
13564 if (typeof value !== "number") {
13565 return undefined;
13566 }
13567 if (value > max || value < min) {
13568 throw new RangeError("A progress value must be between the min and max values");
13569 }
13570 var absMin = Math.abs(min);
13571 var absMax = Math.abs(max);
13572 var absValue = Math.abs(value);
13573 var trueMin = Math.min(absMin, absMax);
13574 var trueMax = Math.max(absMin, absMax);
13575 return Math.max(0, Math.min(1, absValue / (trueMax - trueMin)));
13576 }
13577
13578 var __assign$12 = (undefined && undefined.__assign) || function () {
13579 __assign$12 = Object.assign || function(t) {
13580 for (var s, i = 1, n = arguments.length; i < n; i++) {
13581 s = arguments[i];
13582 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13583 t[p] = s[p];
13584 }
13585 return t;
13586 };
13587 return __assign$12.apply(this, arguments);
13588 };
13589 var __rest$S = (undefined && undefined.__rest) || function (s, e) {
13590 var t = {};
13591 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13592 t[p] = s[p];
13593 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13594 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13595 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13596 t[p[i]] = s[p[i]];
13597 }
13598 return t;
13599 };
13600 var block$B = bem("rmd-linear-progress");
13601 var LinearProgress = React.forwardRef(function LinearProgress(_a, ref) {
13602 var propStyle = _a.style, className = _a.className, propBarStyle = _a.barStyle, barClassName = _a.barClassName, _b = _a.min, min = _b === void 0 ? 0 : _b, _c = _a.max, max = _c === void 0 ? 100 : _c, value = _a.value, _d = _a.reverse, reverse = _d === void 0 ? false : _d, _e = _a.animate, animate = _e === void 0 ? true : _e, _f = _a.vertical, vertical = _f === void 0 ? false : _f, _g = _a.verticalHeight, verticalHeight = _g === void 0 ? 240 : _g, props = __rest$S(_a, ["style", "className", "barStyle", "barClassName", "min", "max", "value", "reverse", "animate", "vertical", "verticalHeight"]);
13603 var style = React.useMemo(function () {
13604 if (!vertical || verticalHeight === null) {
13605 return propStyle;
13606 }
13607 return __assign$12(__assign$12({}, propStyle), { height: verticalHeight });
13608 }, [propStyle, vertical, verticalHeight]);
13609 var progress = getProgress(min, max, value);
13610 var barStyle = React.useMemo(function () {
13611 var _a;
13612 if (typeof progress !== "number") {
13613 return propBarStyle;
13614 }
13615 var key = vertical ? "height" : "width";
13616 return __assign$12(__assign$12({}, propBarStyle), (_a = {}, _a[key] = progress * 100 + "%", _a));
13617 }, [progress, propBarStyle, vertical]);
13618 var determinate = typeof progress === "number";
13619 var indeterminate = !determinate;
13620 return (React__default.createElement("span", __assign$12({}, props, { ref: ref, style: style, role: "progressbar", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, className: classnames(block$B({
13621 vertical: vertical,
13622 determinate: determinate,
13623 indeterminate: indeterminate,
13624 }), className) }),
13625 React__default.createElement("span", { style: barStyle, className: classnames(block$B("bar", {
13626 vertical: vertical,
13627 "vertical-reverse": vertical && reverse,
13628 horizontal: !vertical,
13629 "horizontal-reverse": !vertical && reverse,
13630 animate: animate && determinate,
13631 determinate: determinate,
13632 indeterminate: indeterminate,
13633 "determinate-reverse": determinate && reverse && !vertical,
13634 "determinate-vertical-reverse": determinate && reverse && vertical,
13635 "indeterminate-reverse": indeterminate && reverse && !vertical,
13636 "indeterminate-vertical": indeterminate && vertical,
13637 "indeterminate-vertical-reverse": indeterminate && reverse && vertical,
13638 }), barClassName) })));
13639 });
13640 {
13641 try {
13642 var PropTypes$X = require("prop-types");
13643 LinearProgress.propTypes = {
13644 id: PropTypes$X.string.isRequired,
13645 style: PropTypes$X.object,
13646 className: PropTypes$X.string,
13647 min: PropTypes$X.number,
13648 max: PropTypes$X.number,
13649 value: PropTypes$X.number,
13650 animate: PropTypes$X.bool,
13651 barStyle: PropTypes$X.object,
13652 barClassName: PropTypes$X.string,
13653 reverse: PropTypes$X.bool,
13654 vertical: PropTypes$X.bool,
13655 verticalHeight: PropTypes$X.number,
13656 };
13657 }
13658 catch (e) { }
13659 }
13660
13661 var __assign$13 = (undefined && undefined.__assign) || function () {
13662 __assign$13 = Object.assign || function(t) {
13663 for (var s, i = 1, n = arguments.length; i < n; i++) {
13664 s = arguments[i];
13665 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13666 t[p] = s[p];
13667 }
13668 return t;
13669 };
13670 return __assign$13.apply(this, arguments);
13671 };
13672 var __rest$T = (undefined && undefined.__rest) || function (s, e) {
13673 var t = {};
13674 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13675 t[p] = s[p];
13676 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13677 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13678 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13679 t[p[i]] = s[p[i]];
13680 }
13681 return t;
13682 };
13683 var block$C = bem("rmd-circular-progress");
13684 var CircularProgress = React.forwardRef(function CircularProgress(_a, ref) {
13685 var className = _a.className, propSvgStyle = _a.svgStyle, svgClassName = _a.svgClassName, propCircleStyle = _a.circleStyle, circleClassName = _a.circleClassName, value = _a.value, _b = _a.min, min = _b === void 0 ? 0 : _b, _c = _a.max, max = _c === void 0 ? 100 : _c, _d = _a.radius, radius = _d === void 0 ? 30 : _d, _e = _a.center, center = _e === void 0 ? 33 : _e, _f = _a.viewBox, viewBox = _f === void 0 ? "0 0 66 66" : _f, _g = _a.dashoffset, dashoffset = _g === void 0 ? 187 : _g, _h = _a.animate, animate = _h === void 0 ? true : _h, _j = _a.centered, centered = _j === void 0 ? true : _j, _k = _a.maxRotation, maxRotation = _k === void 0 ? 360 * 1.75 : _k, props = __rest$T(_a, ["className", "svgStyle", "svgClassName", "circleStyle", "circleClassName", "value", "min", "max", "radius", "center", "viewBox", "dashoffset", "animate", "centered", "maxRotation"]);
13686 var progress = getProgress(min, max, value);
13687 var svgStyle = React.useMemo(function () {
13688 if (typeof progress !== "number") {
13689 return propSvgStyle;
13690 }
13691 var transform = propSvgStyle && propSvgStyle.transform;
13692 if (maxRotation > 0) {
13693 var rotate = "rotate(" + maxRotation * progress + "deg)";
13694 transform = "" + rotate + (transform ? " " + transform : "");
13695 }
13696 return __assign$13(__assign$13({}, propSvgStyle), { WebkitTransform: transform, MozTransform: transform, transform: transform });
13697 }, [progress, maxRotation, propSvgStyle]);
13698 var circleStyle = React.useMemo(function () {
13699 if (typeof progress !== "number") {
13700 return propCircleStyle;
13701 }
13702 return __assign$13(__assign$13({}, propCircleStyle), { strokeDashoffset: dashoffset - dashoffset * progress });
13703 }, [progress, propCircleStyle, dashoffset]);
13704 var determinate = typeof progress === "number";
13705 var indeterminate = !determinate;
13706 return (React__default.createElement("span", __assign$13({}, props, { ref: ref, role: "progressbar", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, className: classnames(block$C({ centered: centered }), className) }),
13707 React__default.createElement("svg", { style: svgStyle, className: classnames(block$C("svg", {
13708 animate: animate && determinate,
13709 determinate: determinate,
13710 indeterminate: indeterminate,
13711 }), svgClassName), viewBox: viewBox },
13712 React__default.createElement("circle", { style: circleStyle, className: classnames(block$C("circle", {
13713 animate: animate && determinate,
13714 determinate: determinate,
13715 indeterminate: indeterminate,
13716 }), circleClassName), r: radius, cx: center, cy: center }))));
13717 });
13718 {
13719 try {
13720 var PropTypes$Y = require("prop-types");
13721 CircularProgress.propTypes = {
13722 id: PropTypes$Y.string.isRequired,
13723 className: PropTypes$Y.string,
13724 min: PropTypes$Y.number,
13725 max: PropTypes$Y.number,
13726 value: PropTypes$Y.number,
13727 animate: PropTypes$Y.bool,
13728 svgStyle: PropTypes$Y.object,
13729 svgClassName: PropTypes$Y.string,
13730 circleStyle: PropTypes$Y.object,
13731 circleClassName: PropTypes$Y.string,
13732 radius: PropTypes$Y.number,
13733 center: PropTypes$Y.number,
13734 centered: PropTypes$Y.bool,
13735 maxRotation: PropTypes$Y.number,
13736 dashoffset: PropTypes$Y.number,
13737 viewBox: PropTypes$Y.string,
13738 };
13739 }
13740 catch (e) { }
13741 }
13742
13743 /**
13744 * An extremely simple util that can be used to get the required a11y props for
13745 * another component that relies on a progress component.
13746 *
13747 * @param progressId The id for the progress bar
13748 * @param progressing Boolean if the progress bar is visible and progressing
13749 */
13750 function getProgressA11y(progressId, progressing) {
13751 if (!progressing) {
13752 return undefined;
13753 }
13754 return {
13755 "aria-busy": true,
13756 "aria-describedby": progressId,
13757 };
13758 }
13759
13760 var __assign$14 = (undefined && undefined.__assign) || function () {
13761 __assign$14 = Object.assign || function(t) {
13762 for (var s, i = 1, n = arguments.length; i < n; i++) {
13763 s = arguments[i];
13764 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13765 t[p] = s[p];
13766 }
13767 return t;
13768 };
13769 return __assign$14.apply(this, arguments);
13770 };
13771 var __rest$U = (undefined && undefined.__rest) || function (s, e) {
13772 var t = {};
13773 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13774 t[p] = s[p];
13775 if (s != null && typeof Object.getOwnPropertySymbols === "function")
13776 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13777 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13778 t[p[i]] = s[p[i]];
13779 }
13780 return t;
13781 };
13782 // this is used while the loading state is enabled to "disable" the switch
13783 // toggle. If we disable the entire switch, keyboard focus is lost which is not
13784 // desired.
13785 var noop$2 = function () { };
13786 /**
13787 * This component will create an async switch that will show a loading indicator
13788 * and prevent the switch from being toggled while the loading state is true.
13789 */
13790 var AsyncSwitch = React.forwardRef(function AsyncSwitch(_a, ref) {
13791 var id = _a.id, disabled = _a.disabled, className = _a.className, progressStyle = _a.progressStyle, progressClassName = _a.progressClassName, loading = _a.loading, onChange = _a.onChange, props = __rest$U(_a, ["id", "disabled", "className", "progressStyle", "progressClassName", "loading", "onChange"]);
13792 var progressId = id + "-loading";
13793 return (React__default.createElement(Switch, __assign$14({}, props, getProgressA11y(progressId, loading), { id: id, ref: ref, disabled: disabled, className: classnames("rmd-switch--async", className), labelDisabled: disabled || false, onChange: loading ? noop$2 : onChange }), loading && (React__default.createElement(CircularProgress, { id: progressId, style: progressStyle, className: classnames("rmd-switch__progress", progressClassName), centered: false }))));
13794 });
13795
13796 /**
13797 * A small hook that can be used for controlling the state of a single Checkbox
13798 * component.
13799 *
13800 * @param defaultChecked Boolean if the input should be checked by default.
13801 * Changing this value will not update the state after initial render.
13802 * @param onChange An optional change event handler to also call when the
13803 * checked state changes.
13804 * @return a list containing the checked state, a change event handler, and then
13805 * a manual set checked action.
13806 */
13807 function useChecked(defaultChecked, onChange) {
13808 var _a = React.useState(defaultChecked), checked = _a[0], setChecked = _a[1];
13809 var handleChange = React.useCallback(function (event) {
13810 if (onChange) {
13811 onChange(event);
13812 }
13813 setChecked(event.currentTarget.checked);
13814 }, [onChange]);
13815 return [checked, handleChange, setChecked];
13816 }
13817
13818 /**
13819 * This hook can be used to control the state of a radio group or a select
13820 * element.
13821 *
13822 * @param defaultValue The default value. If you want the user to specifically
13823 * choose a value, set this to the empty string.
13824 * @param onChange An optional change event handler to also call when the change
13825 * event is triggered.
13826 * @return a list containing the current value, a change event handler, and then
13827 * a manual value setter.
13828 */
13829 function useChoice(defaultValue, onChange) {
13830 var _a = React.useState(defaultValue), value = _a[0], setValue = _a[1];
13831 var handleChange = React.useCallback(function (event) {
13832 if (onChange) {
13833 onChange(event);
13834 }
13835 setValue(event.currentTarget.value);
13836 }, [onChange]);
13837 return [value, handleChange, setValue];
13838 }
13839
13840 /**
13841 * This is a simple hook that will allow you to "strongly" type a `Select`
13842 * component's value since the `onChange` handler only returns a `string`.
13843 *
13844 * @param defaultValue The default value to use
13845 * @return an ordered list containing the current value followed by the dispatch
13846 * function to update the state.
13847 */
13848 function useSelectState(defaultValue) {
13849 var _a = React.useState(defaultValue), value = _a[0], setValue = _a[1];
13850 var setTypedValue = React.useCallback(function (nextValue) {
13851 setValue(nextValue);
13852 }, []);
13853 return [value, setTypedValue];
13854 }
13855
13856 /**
13857 * This hook allows you to toggle the state of multiple checkboxes in a single
13858 * place along with an indeterminate checkbox that can check/uncheck all
13859 * checkboxes at once.
13860 *
13861 * ### Examples:
13862 *
13863 * #### Simple value list with labels lookup:
13864 *
13865 * ```tsx
13866 * const values = ["a", "b", "c", "d"];
13867 * const LABELS = { a: "Label 1", b: "Label 2", c: "Label 3", d: "Label 4" };
13868 * const { getProps, rootProps } = useIndeterminateChecked(values);
13869 *
13870 * return (
13871 * <>
13872 * <Checkbox id="root-checkbox" {...rootProps} label="Root Checkbox" />
13873 * {values.map((value, i) => (
13874 * <Checkbox
13875 * id={`child-checkbox-${i + 1}`}
13876 * label={LABELS[value]}
13877 * {...getProps(value)}
13878 * />
13879 * ))}
13880 * </>
13881 * );
13882 * ```
13883 *
13884 * #### Fetch Data From Server and check first result
13885 * ```tsx
13886 * interface ServerFetchedData {
13887 * id: Guid;
13888 * name: string;
13889 * }
13890 *
13891 *
13892 * const [data, setData] = useState<ServerFetchedData[]>([]);
13893 * const { getProps, rootProps, setCheckedValues } = useIndeterminateChecked(
13894 * data.map(({ id }) => id),
13895 * );
13896 *
13897 * useEffect(() => {
13898 * let cancelled = false;
13899 * (async function load() {
13900 * const response = await fetch("/my-api");
13901 * const json = await response.json();
13902 * if (!cancelled) {
13903 * // pretend validation and sanity checks
13904 * setData(json as ServerFetchedData[]);
13905 * setCheckedValues(json[0].id);
13906 * }
13907 * })();
13908
13909 * return () => {
13910 * cancelled = true;
13911 * };
13912 * }, []);
13913 *
13914 * return (
13915 * <>
13916 * <Checkbox id="root-checkbox" {...rootProps} label="Root Checkbox" />
13917 * {data.map(({ id, name }, i) => (
13918 * <Checkbox
13919 * id={`child-checkbox-${i + 1}`}
13920 * label={name}
13921 * {...getProps(id)}
13922 * />
13923 * ))}
13924 * </>
13925 * );
13926 * ```
13927 *
13928 * @param values All the checkbox values that the indeterminate checkbox can
13929 * control. The values will **need** to be unique as they are passed to each
13930 * checkbox to determine if it is checked or not. This will directly map to
13931 * the `value` attribute for each checkbox.
13932 * @param defaultCheckedValues An optional list of all the values that are
13933 * checked on first render. Changing this value will not update the checked
13934 * values.
13935 * @param onChange An optional function to call whenever the checked values list
13936 * updates that will provide the next list of all the checked values. This isn't
13937 * a super helpful prop since this hook will always return the checked values
13938 * anyways.
13939 * @return An object containing a function to get the props for each controlled
13940 * checkbox, the props for the root indeterminate checkbox, a list of all the
13941 * checked values, and a general `setCheckboxValues` function from `useState` if
13942 * the list of values can be changed from external sources as well.
13943 */
13944 function useIndeterminateChecked(values, defaultCheckedValues, onChange) {
13945 if (defaultCheckedValues === void 0) { defaultCheckedValues = []; }
13946 var _a = React.useState(defaultCheckedValues), checkedValues = _a[0], setCheckedValues = _a[1];
13947 var checked = checkedValues.length > 0;
13948 var indeterminate = checked && checkedValues.length < values.length;
13949 var updateCheckedValues = function (values) {
13950 if (onChange) {
13951 onChange(values);
13952 }
13953 setCheckedValues(values);
13954 };
13955 var rootProps = {
13956 "aria-checked": indeterminate ? "mixed" : undefined,
13957 checked: checked,
13958 indeterminate: indeterminate,
13959 onChange: function () {
13960 return updateCheckedValues(checkedValues.length === 0 || indeterminate ? values : []);
13961 },
13962 };
13963 var getProps = function (value) { return ({
13964 value: value,
13965 checked: checkedValues.includes(value),
13966 onChange: function () {
13967 var i = checkedValues.indexOf(value);
13968 var nextChecked = checkedValues.slice();
13969 if (i === -1) {
13970 nextChecked.push(value);
13971 }
13972 else {
13973 nextChecked.splice(i, 1);
13974 }
13975 updateCheckedValues(nextChecked);
13976 },
13977 }); };
13978 return {
13979 getProps: getProps,
13980 rootProps: rootProps,
13981 checkedValues: checkedValues,
13982 setCheckedValues: setCheckedValues,
13983 };
13984 }
13985
13986 /**
13987 * The `HighlightedResult` component can be used to bold specific letters
13988 * within the `children` if the `children` is a string.
13989 */
13990 var HighlightedResult = function (_a) {
13991 var propId = _a.id, style = _a.style, className = _a.className, _b = _a.enabled, enabled = _b === void 0 ? true : _b, value = _a.value, children = _a.children, _c = _a.repeatable, repeatable = _c === void 0 ? false : _c, _d = _a.index, index = _d === void 0 ? 0 : _d;
13992 if (!enabled || !value || typeof children !== "string") {
13993 return React__default.createElement(React__default.Fragment, null, children);
13994 }
13995 var i = children.toLowerCase().indexOf(value.toLowerCase());
13996 if (i === -1) {
13997 return React__default.createElement(React__default.Fragment, null, children);
13998 }
13999 var end = i + value.length;
14000 var id = propId;
14001 if (id && index > 0) {
14002 id = id + "-" + index;
14003 }
14004 return (React__default.createElement(React__default.Fragment, null,
14005 i > 0 && children.substring(0, i),
14006 React__default.createElement("span", { id: id, style: style, className: classnames("rmd-typography--bold", className) }, children.substring(i, end)),
14007 end < children.length && (React__default.createElement(HighlightedResult, { style: style, className: className, value: value, enabled: enabled && repeatable, repeatable: repeatable, index: index + 1 }, children.substring(end)))));
14008 };
14009 {
14010 try {
14011 var PropTypes$Z = require("prop-types");
14012 HighlightedResult.propTypes = {
14013 id: PropTypes$Z.string,
14014 index: PropTypes$Z.number,
14015 value: PropTypes$Z.string.isRequired,
14016 style: PropTypes$Z.object,
14017 className: PropTypes$Z.string,
14018 children: PropTypes$Z.node,
14019 enabled: PropTypes$Z.bool,
14020 repeatable: PropTypes$Z.bool,
14021 };
14022 }
14023 catch (e) { }
14024 }
14025
14026 /**
14027 * Generates an id for each result in the autocomplete's listbox.
14028 *
14029 * @param id The listbox's id
14030 * @param index The index of the result in the list
14031 * @return an id string
14032 */
14033 function getResultId(id, index) {
14034 return id + "-result-" + (index + 1);
14035 }
14036 /**
14037 * Gets a renderable label for each result in the autocomplete's listbox. This
14038 * will be applied as the `children` for the `Option` element.
14039 *
14040 * @param datum The current result datum to get a label for
14041 * @param labelKey The key to extract a label from if the datum is an object
14042 * @param query The current search query. This is useful if you want to
14043 * implement text "highlighting" (bold) of all the letters that match in the
14044 * item.
14045 * @return a renderable node to display
14046 */
14047 function getResultLabel(datum, labelKey, _query) {
14048 if (typeof datum === "string") {
14049 return datum;
14050 }
14051 var label = datum[labelKey];
14052 return datum.children || (typeof label === "undefined" ? null : label);
14053 }
14054 /**
14055 * Gets a value string from each result that can be searched.
14056 *
14057 * @param datum The current result datum that should have a string extracted
14058 * @param valueKey The key to use to extract a string value from if the datum is
14059 * an object
14060 * @return a searchable string.
14061 */
14062 function getResultValue(datum, valueKey) {
14063 if (typeof datum === "string") {
14064 return datum;
14065 }
14066 var value = datum[valueKey];
14067 if (
14068 typeof value !== "string" &&
14069 typeof value !== "number") {
14070 throw new Error("Unable to extract a result value string");
14071 }
14072 return "" + value;
14073 }
14074 /**
14075 * This is used to disable filtering and just return the data list immediately.
14076 * Useful when the filtering is done somewhere else like a server/API
14077 * @private
14078 */
14079 var noFilter = function (_, data) { return data; };
14080 /**
14081 * Gets the filter function to use within the Autocomplete based on the provided
14082 * filter prop
14083 *
14084 * @private
14085 */
14086 function getFilterFunction(filter) {
14087 if (typeof filter === "function") {
14088 return filter;
14089 }
14090 switch (filter) {
14091 case "fuzzy":
14092 return fuzzyFilter;
14093 case "case-insensitive":
14094 return caseInsensitiveFilter;
14095 case "none":
14096 return noFilter;
14097 default:
14098 {
14099 throw new Error("Invalid filter function: \"" + filter + "\". Supported values are: \"fuzzy\", \"case-insenitive\", \"none\", or a custom function.");
14100 }
14101 }
14102 }
14103 /**
14104 * This is an extremely simple type guard that is useful when using the
14105 * `onAutoComplete` handler since I'm terrible at typescript types. This will
14106 * ensure that if the result is an object, it will match the provided data type
14107 * of your data list.
14108 *
14109 * Example:
14110 *
14111 * ```ts
14112 * interface Example {
14113 * name: string;
14114 * value: string;
14115 * }
14116 *
14117 *
14118 * const [example, setExample] = useState<Example | null>(null);
14119 * const onAutoComplete = useCallback<AuoCompleteHandler>((_name, example) => {
14120 * if (isResultOf<Example>(example)) {
14121 * setExample(example);
14122 * }
14123 * }, [])
14124 * ```
14125 *
14126 * @param datum The result data to type guard against.
14127 */
14128 function isResultOf(datum) {
14129 return !!datum && typeof datum === "object";
14130 }
14131
14132 var __assign$15 = (undefined && undefined.__assign) || function () {
14133 __assign$15 = Object.assign || function(t) {
14134 for (var s, i = 1, n = arguments.length; i < n; i++) {
14135 s = arguments[i];
14136 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14137 t[p] = s[p];
14138 }
14139 return t;
14140 };
14141 return __assign$15.apply(this, arguments);
14142 };
14143 /**
14144 * This hook handles all the autocomplete's "logic" and behavior.
14145 *
14146 * @private
14147 */
14148 function useAutoComplete(_a) {
14149 var _b;
14150 var suggestionsId = _a.suggestionsId, data = _a.data, propValue = _a.propValue, _c = _a.defaultValue, defaultValue = _c === void 0 ? "" : _c, filterFn = _a.filter, filterOptions = _a.filterOptions, filterOnNoValue = _a.filterOnNoValue, valueKey = _a.valueKey, getResultId = _a.getResultId, getResultValue = _a.getResultValue, onBlur = _a.onBlur, onFocus = _a.onFocus, onClick = _a.onClick, onChange = _a.onChange, onKeyDown = _a.onKeyDown, forwardedRef = _a.forwardedRef, onAutoComplete = _a.onAutoComplete, clearOnAutoComplete = _a.clearOnAutoComplete, anchor = _a.anchor, xMargin = _a.xMargin, yMargin = _a.yMargin, vwMargin = _a.vwMargin, vhMargin = _a.vhMargin, transformOrigin = _a.transformOrigin, listboxWidth = _a.listboxWidth, listboxStyle = _a.listboxStyle, preventOverlap = _a.preventOverlap, disableSwapping = _a.disableSwapping, disableVHBounds = _a.disableVHBounds, closeOnResize = _a.closeOnResize, closeOnScroll = _a.closeOnScroll, propDisableShowOnFocus = _a.disableShowOnFocus, isListAutocomplete = _a.isListAutocomplete, isInlineAutocomplete = _a.isInlineAutocomplete;
14151 var inputRef = React.useRef(null);
14152 var ref = React.useCallback(function (instance) {
14153 applyRef(instance, forwardedRef);
14154 inputRef.current = instance;
14155 }, [forwardedRef]);
14156 var filter = getFilterFunction(filterFn);
14157 var _d = React.useState(function () {
14158 var _a;
14159 var options = __assign$15(__assign$15({}, filterOptions), { valueKey: valueKey, getItemValue: getResultValue, startsWith: (_a = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.startsWith) !== null && _a !== void 0 ? _a : isInlineAutocomplete });
14160 var value = propValue !== null && propValue !== void 0 ? propValue : defaultValue;
14161 var filteredData = filterOnNoValue || value ? filter(value, data, options) : data;
14162 var match = value;
14163 if (isInlineAutocomplete && filteredData.length) {
14164 match = getResultValue(filteredData[0], valueKey);
14165 }
14166 return {
14167 value: value,
14168 match: match,
14169 filteredData: filteredData,
14170 };
14171 }), _e = _d[0], stateValue = _e.value, match = _e.match, stateFilteredData = _e.filteredData, setState = _d[1];
14172 var filteredData = filterFn === "none" ? data : stateFilteredData;
14173 var startsWith = (_b = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.startsWith) !== null && _b !== void 0 ? _b : isInlineAutocomplete;
14174 var value = propValue !== null && propValue !== void 0 ? propValue : stateValue;
14175 var setValue = React.useCallback(function (nextValue) {
14176 var isBackspace = value.length > nextValue.length ||
14177 (!!match && value.length === nextValue.length);
14178 var filtered = data;
14179 if (nextValue || filterOnNoValue) {
14180 var options = __assign$15(__assign$15({}, filterOptions), { valueKey: valueKey, getItemValue: getResultValue, startsWith: startsWith });
14181 filtered = filter(nextValue, data, options);
14182 }
14183 var nextMatch = nextValue;
14184 if (isInlineAutocomplete && filtered.length && !isBackspace) {
14185 nextMatch = getResultValue(filtered[0], valueKey);
14186 var input = inputRef.current;
14187 if (input && !isBackspace) {
14188 input.value = nextMatch;
14189 input.setSelectionRange(nextValue.length, nextMatch.length);
14190 }
14191 }
14192 setState({ value: nextValue, match: nextMatch, filteredData: filtered });
14193 }, [
14194 data,
14195 filter,
14196 filterOnNoValue,
14197 filterOptions,
14198 isInlineAutocomplete,
14199 getResultValue,
14200 value,
14201 match,
14202 startsWith,
14203 valueKey,
14204 ]);
14205 // this is really just a hacky way to make sure that once a value has been
14206 // autocompleted, the menu doesn't immediately re-appear due to the hook below
14207 // for showing when the value/ filtered data list change
14208 var autocompleted = React.useRef(false);
14209 var handleChange = React.useCallback(function (event) {
14210 if (onChange) {
14211 onChange(event);
14212 }
14213 autocompleted.current = false;
14214 setValue(event.currentTarget.value);
14215 }, [setValue, onChange]);
14216 var _f = useToggle(false), visible = _f[0], show = _f[1], hide = _f[2];
14217 var isTouch = useIsUserInteractionMode("touch");
14218 var disableShowOnFocus = propDisableShowOnFocus !== null && propDisableShowOnFocus !== void 0 ? propDisableShowOnFocus : isTouch;
14219 var focused = React.useRef(false);
14220 var handleBlur = React.useCallback(function (event) {
14221 if (onBlur) {
14222 onBlur(event);
14223 }
14224 focused.current = false;
14225 }, [onBlur]);
14226 var handleFocus = React.useCallback(function (event) {
14227 if (onFocus) {
14228 onFocus(event);
14229 }
14230 if (disableShowOnFocus) {
14231 return;
14232 }
14233 focused.current = true;
14234 if (isListAutocomplete && filteredData.length) {
14235 show();
14236 }
14237 }, [filteredData, isListAutocomplete, onFocus, show, disableShowOnFocus]);
14238 var handleClick = React.useCallback(function (event) {
14239 if (onClick) {
14240 onClick(event);
14241 }
14242 // since click events also trigger focus events right beforehand, want to
14243 // skip the first click handler and require a second click to show it.
14244 // this is why the focused.current isn't set onFocus for
14245 // disableShowOnFocus
14246 if (disableShowOnFocus && !focused.current) {
14247 focused.current = true;
14248 return;
14249 }
14250 if (isListAutocomplete && filteredData.length) {
14251 show();
14252 }
14253 }, [disableShowOnFocus, filteredData.length, isListAutocomplete, onClick, show]);
14254 var handleAutoComplete = React.useCallback(function (index) {
14255 var result = filteredData[index];
14256 var resultValue = getResultValue(result, valueKey);
14257 if (onAutoComplete) {
14258 onAutoComplete({
14259 value: resultValue,
14260 index: index,
14261 result: result,
14262 dataIndex: data.findIndex(function (datum) { return getResultValue(datum, valueKey) === resultValue; }),
14263 filteredData: filteredData,
14264 });
14265 }
14266 setValue(clearOnAutoComplete ? "" : resultValue);
14267 autocompleted.current = true;
14268 }, [
14269 clearOnAutoComplete,
14270 data,
14271 filteredData,
14272 getResultValue,
14273 onAutoComplete,
14274 valueKey,
14275 setValue,
14276 ]);
14277 var listboxRef = React.useRef(null);
14278 var _g = useActiveDescendantMovement(__assign$15(__assign$15({}, VERTICAL_COMBOBOX), { getId: getResultId, items: filteredData, baseId: suggestionsId, onChange: function (_a, itemRefs) {
14279 var index = _a.index, items = _a.items, target = _a.target;
14280 // the default scroll into view behavior for aria-activedescendant
14281 // movement won't work here since the "target" element will actually be
14282 // the input element instead of the listbox. So need to implement the
14283 // scroll into view behavior manually from the listbox instead.
14284 var item = itemRefs[index] && itemRefs[index].current;
14285 var listbox = listboxRef.current;
14286 if (item && listbox && listbox.scrollHeight > listbox.offsetHeight) {
14287 scrollIntoView(listbox, item);
14288 }
14289 if (!isInlineAutocomplete) {
14290 return;
14291 }
14292 var nextMatch = getResultValue(items[index], valueKey);
14293 target.value = nextMatch;
14294 target.setSelectionRange(0, nextMatch.length);
14295 setState(function (prevState) { return (__assign$15(__assign$15({}, prevState), { value: nextMatch, match: nextMatch })); });
14296 },
14297 onKeyDown: function (event) {
14298 if (onKeyDown) {
14299 onKeyDown(event);
14300 }
14301 var input = event.currentTarget;
14302 switch (event.key) {
14303 case "ArrowDown":
14304 if (isListAutocomplete &&
14305 event.altKey &&
14306 !visible &&
14307 filteredData.length) {
14308 // don't want the cursor to move if there is text
14309 event.preventDefault();
14310 event.stopPropagation();
14311 show();
14312 setFocusedIndex(-1);
14313 }
14314 break;
14315 case "ArrowUp":
14316 if (isListAutocomplete && event.altKey && visible) {
14317 // don't want the cursor to move if there is text
14318 event.preventDefault();
14319 event.stopPropagation();
14320 hide();
14321 }
14322 break;
14323 case "Tab":
14324 event.stopPropagation();
14325 hide();
14326 break;
14327 case "ArrowRight":
14328 if (isInlineAutocomplete &&
14329 input.selectionStart !== input.selectionEnd) {
14330 var index = focusedIndex !== -1 ? focusedIndex : 0;
14331 hide();
14332 handleAutoComplete(index);
14333 }
14334 break;
14335 case "Enter":
14336 if (visible && focusedIndex >= 0) {
14337 event.stopPropagation();
14338 handleAutoComplete(focusedIndex);
14339 hide();
14340 }
14341 break;
14342 case "Escape":
14343 if (visible) {
14344 event.stopPropagation();
14345 hide();
14346 }
14347 else if (value) {
14348 event.stopPropagation();
14349 setValue("");
14350 }
14351 break;
14352 // no default
14353 }
14354 } })), activeId = _g.activeId, itemRefs = _g.itemRefs, handleKeyDown = _g.onKeyDown, focusedIndex = _g.focusedIndex, setFocusedIndex = _g.setFocusedIndex;
14355 useCloseOnOutsideClick({
14356 enabled: visible,
14357 element: inputRef.current,
14358 onOutsideClick: hide,
14359 });
14360 var _h = useFixedPositioning({
14361 fixedTo: function () { return inputRef.current; },
14362 anchor: anchor,
14363 onScroll: function (_event, _a) {
14364 var visible = _a.visible;
14365 if (closeOnScroll || !visible) {
14366 hide();
14367 }
14368 },
14369 onResize: closeOnResize ? hide : undefined,
14370 width: listboxWidth,
14371 xMargin: xMargin,
14372 yMargin: yMargin,
14373 vwMargin: vwMargin,
14374 vhMargin: vhMargin,
14375 transformOrigin: transformOrigin,
14376 preventOverlap: preventOverlap,
14377 disableSwapping: disableSwapping,
14378 disableVHBounds: disableVHBounds,
14379 }), style = _h.style, onEnter = _h.onEnter, onEntering = _h.onEntering, onEntered = _h.onEntered, onExited = _h.onExited, updateStyle = _h.updateStyle;
14380 React.useEffect(function () {
14381 if (!focused.current || autocompleted.current) {
14382 return;
14383 }
14384 if (filteredData.length && !visible && value.length && isListAutocomplete) {
14385 show();
14386 }
14387 else if (!filteredData.length && visible) {
14388 hide();
14389 }
14390 // this effect is just for toggling the visibility states as needed if the
14391 // value or filter data list changes
14392 // eslint-disable-next-line react-hooks/exhaustive-deps
14393 }, [filteredData, value]);
14394 React.useEffect(function () {
14395 if (!visible) {
14396 setFocusedIndex(-1);
14397 return;
14398 }
14399 updateStyle();
14400 // only want to trigger on data changes and setFocusedIndex shouldn't change
14401 // anyways
14402 // eslint-disable-next-line react-hooks/exhaustive-deps
14403 }, [visible, filteredData]);
14404 return {
14405 ref: ref,
14406 value: value,
14407 match: match,
14408 visible: visible,
14409 activeId: activeId,
14410 itemRefs: itemRefs,
14411 filteredData: filteredData,
14412 fixedStyle: __assign$15(__assign$15({}, style), listboxStyle),
14413 transitionHooks: {
14414 onEnter: onEnter,
14415 onEntering: onEntering,
14416 onEntered: onEntered,
14417 onExited: onExited,
14418 },
14419 listboxRef: listboxRef,
14420 handleBlur: handleBlur,
14421 handleFocus: handleFocus,
14422 handleClick: handleClick,
14423 handleChange: handleChange,
14424 handleKeyDown: handleKeyDown,
14425 handleAutoComplete: handleAutoComplete,
14426 };
14427 }
14428
14429 var __assign$16 = (undefined && undefined.__assign) || function () {
14430 __assign$16 = Object.assign || function(t) {
14431 for (var s, i = 1, n = arguments.length; i < n; i++) {
14432 s = arguments[i];
14433 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14434 t[p] = s[p];
14435 }
14436 return t;
14437 };
14438 return __assign$16.apply(this, arguments);
14439 };
14440 var __rest$V = (undefined && undefined.__rest) || function (s, e) {
14441 var t = {};
14442 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14443 t[p] = s[p];
14444 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14445 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14446 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14447 t[p[i]] = s[p[i]];
14448 }
14449 return t;
14450 };
14451 var __spreadArrays$3 = (undefined && undefined.__spreadArrays) || function () {
14452 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
14453 for (var r = Array(s), k = 0, i = 0; i < il; i++)
14454 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
14455 r[k] = a[j];
14456 return r;
14457 };
14458 var block$D = bem("rmd-autocomplate");
14459 var listbox = bem("rmd-listbox");
14460 var DEFAULT_FILTER_OPTIONS = {
14461 trim: true,
14462 ignoreWhitespace: true,
14463 };
14464 var EMPTY_LIST = [];
14465 /**
14466 * An AutoComplete is an accessible combobox widget that allows for real-time
14467 * suggestions as the user types.
14468 */
14469 var AutoComplete = React.forwardRef(function AutoComplete(_a, forwardedRef) {
14470 var _b = _a.autoComplete, autoComplete = _b === void 0 ? "list" : _b, data = _a.data, _c = _a.filter, filter = _c === void 0 ? "case-insensitive" : _c, _d = _a.filterOptions, filterOptions = _d === void 0 ? DEFAULT_FILTER_OPTIONS : _d, _e = _a.filterOnNoValue, filterOnNoValue = _e === void 0 ? false : _e, className = _a.className, onBlur = _a.onBlur, onFocus = _a.onFocus, onClick = _a.onClick, onKeyDown = _a.onKeyDown, onChange = _a.onChange, containerProps = _a.containerProps, _f = _a.portal, portal = _f === void 0 ? false : _f, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, listboxStyle = _a.listboxStyle, listboxClassName = _a.listboxClassName, onAutoComplete = _a.onAutoComplete, _g = _a.clearOnAutoComplete, clearOnAutoComplete = _g === void 0 ? false : _g, _h = _a.labelKey, labelKey = _h === void 0 ? "label" : _h, _j = _a.valueKey, valueKey = _j === void 0 ? "value" : _j, _k = _a.getResultId, getResultId$1 = _k === void 0 ? getResultId : _k, _l = _a.getResultLabel, getResultLabel$1 = _l === void 0 ? getResultLabel : _l, _m = _a.getResultValue, getResultValue$1 = _m === void 0 ? getResultValue : _m, _o = _a.highlight, highlight = _o === void 0 ? false : _o, _p = _a.highlightReapeating, highlightReapeating = _p === void 0 ? false : _p, highlightStyle = _a.highlightStyle, highlightClassName = _a.highlightClassName, _q = _a.anchor, anchor = _q === void 0 ? BELOW_CENTER_ANCHOR : _q, _r = _a.listboxWidth, listboxWidth = _r === void 0 ? "equal" : _r, _s = _a.xMargin, xMargin = _s === void 0 ? 0 : _s, _t = _a.yMargin, yMargin = _t === void 0 ? 0 : _t, _u = _a.vwMargin, vwMargin = _u === void 0 ? 16 : _u, _v = _a.vhMargin, vhMargin = _v === void 0 ? 16 : _v, _w = _a.transformOrigin, transformOrigin = _w === void 0 ? true : _w, _x = _a.preventOverlap, preventOverlap = _x === void 0 ? true : _x, _y = _a.disableVHBounds, disableVHBounds = _y === void 0 ? false : _y, _z = _a.disableSwapping, disableSwapping = _z === void 0 ? true : _z, disableShowOnFocus = _a.disableShowOnFocus, _0 = _a.closeOnResize, closeOnResize = _0 === void 0 ? false : _0, _1 = _a.closeOnScroll, closeOnScroll = _1 === void 0 ? false : _1, _2 = _a.omitKeys, omitKeys = _2 === void 0 ? EMPTY_LIST : _2, propValue = _a.value, defaultValue = _a.defaultValue, beforeResultsChildren = _a.beforeResultsChildren, afterResultsChildren = _a.afterResultsChildren, props = __rest$V(_a, ["autoComplete", "data", "filter", "filterOptions", "filterOnNoValue", "className", "onBlur", "onFocus", "onClick", "onKeyDown", "onChange", "containerProps", "portal", "portalInto", "portalIntoId", "listboxStyle", "listboxClassName", "onAutoComplete", "clearOnAutoComplete", "labelKey", "valueKey", "getResultId", "getResultLabel", "getResultValue", "highlight", "highlightReapeating", "highlightStyle", "highlightClassName", "anchor", "listboxWidth", "xMargin", "yMargin", "vwMargin", "vhMargin", "transformOrigin", "preventOverlap", "disableVHBounds", "disableSwapping", "disableShowOnFocus", "closeOnResize", "closeOnScroll", "omitKeys", "value", "defaultValue", "beforeResultsChildren", "afterResultsChildren"]);
14471 var id = props.id;
14472 var comboboxId = id + "-combobox";
14473 var suggestionsId = id + "-listbox";
14474 var isListAutocomplete = autoComplete === "list" || autoComplete === "both";
14475 var isInlineAutocomplete = autoComplete === "inline" || autoComplete === "both";
14476 var _3 = useAutoComplete({
14477 suggestionsId: suggestionsId,
14478 defaultValue: defaultValue,
14479 data: data,
14480 filter: filter,
14481 filterOptions: filterOptions,
14482 filterOnNoValue: filterOnNoValue,
14483 valueKey: valueKey,
14484 getResultId: getResultId$1,
14485 getResultValue: getResultValue$1,
14486 onBlur: onBlur,
14487 onFocus: onFocus,
14488 onClick: onClick,
14489 onChange: onChange,
14490 onKeyDown: onKeyDown,
14491 forwardedRef: forwardedRef,
14492 onAutoComplete: onAutoComplete,
14493 clearOnAutoComplete: clearOnAutoComplete,
14494 isListAutocomplete: isListAutocomplete,
14495 isInlineAutocomplete: isInlineAutocomplete,
14496 anchor: anchor,
14497 xMargin: xMargin,
14498 yMargin: yMargin,
14499 vwMargin: vwMargin,
14500 vhMargin: vhMargin,
14501 transformOrigin: transformOrigin,
14502 listboxWidth: listboxWidth,
14503 listboxStyle: listboxStyle,
14504 preventOverlap: preventOverlap,
14505 disableSwapping: disableSwapping,
14506 disableVHBounds: disableVHBounds,
14507 closeOnResize: closeOnResize,
14508 closeOnScroll: closeOnScroll,
14509 disableShowOnFocus: disableShowOnFocus,
14510 }), ref = _3.ref, match = _3.match, value = _3.value, visible = _3.visible, activeId = _3.activeId, itemRefs = _3.itemRefs, filteredData = _3.filteredData, listboxRef = _3.listboxRef, fixedStyle = _3.fixedStyle, transitionHooks = _3.transitionHooks, handleBlur = _3.handleBlur, handleFocus = _3.handleFocus, handleClick = _3.handleClick, handleChange = _3.handleChange, handleKeyDown = _3.handleKeyDown, handleAutoComplete = _3.handleAutoComplete;
14511 return (React__default.createElement(React__default.Fragment, null,
14512 React__default.createElement(TextField, __assign$16({}, props, { "aria-autocomplete": autoComplete, "aria-controls": comboboxId, "aria-activedescendant": activeId, autoComplete: "off", value: propValue !== null && propValue !== void 0 ? propValue : match, onBlur: handleBlur, onFocus: handleFocus, onClick: handleClick, onKeyDown: handleKeyDown, onChange: handleChange, ref: ref, className: classnames(block$D(), className), containerProps: __assign$16(__assign$16({}, containerProps), { "aria-haspopup": "listbox", "aria-owns": suggestionsId, "aria-expanded": visible, id: comboboxId, role: "combobox" }) })),
14513 React__default.createElement(ScaleTransition, __assign$16({ portal: portal, portalInto: portalInto, portalIntoId: portalIntoId, vertical: true, visible: visible }, transitionHooks),
14514 React__default.createElement(List, { id: suggestionsId, role: "listbox", ref: listboxRef, style: fixedStyle, className: classnames(listbox({ temporary: true }), listboxClassName) },
14515 beforeResultsChildren,
14516 filteredData.map(function (datum, i) {
14517 var resultId = getResultId$1(suggestionsId, i);
14518 var optionProps;
14519 if (isListboxOptionProps(datum)) {
14520 optionProps = omit(datum, __spreadArrays$3([labelKey, valueKey], omitKeys));
14521 }
14522 return (React__default.createElement(Option, __assign$16({ key: resultId }, optionProps, { id: resultId, selected: false, focused: resultId === activeId, ref: itemRefs[i], onClick: function () { return handleAutoComplete(i); } }),
14523 React__default.createElement(HighlightedResult, { id: resultId + "-match", style: highlightStyle, className: highlightClassName, value: propValue !== null && propValue !== void 0 ? propValue : value, enabled: highlight, repeatable: highlightReapeating }, getResultLabel$1(datum, labelKey, value))));
14524 }),
14525 afterResultsChildren))));
14526 });
14527 {
14528 try {
14529 var PropTypes$_ = require("prop-types");
14530 AutoComplete.propTypes = {
14531 id: PropTypes$_.string.isRequired,
14532 data: PropTypes$_.arrayOf(PropTypes$_.oneOfType([PropTypes$_.string, PropTypes$_.object])).isRequired,
14533 filter: PropTypes$_.oneOfType([
14534 PropTypes$_.oneOf(["none", "fuzzy", "case-insensitive"]),
14535 PropTypes$_.func,
14536 ]),
14537 filterOptions: PropTypes$_.object,
14538 filterOnNoValue: PropTypes$_.bool,
14539 labelKey: PropTypes$_.string,
14540 valueKey: PropTypes$_.string,
14541 getResultId: PropTypes$_.func,
14542 getResultLabel: PropTypes$_.func,
14543 getResultValue: PropTypes$_.func,
14544 highlight: PropTypes$_.bool,
14545 autoComplete: PropTypes$_.oneOf(["none", "inline", "list", "both"]),
14546 onAutoComplete: PropTypes$_.func,
14547 clearOnAutoComplete: PropTypes$_.bool,
14548 portal: PropTypes$_.bool,
14549 portalInto: PropTypes$_.oneOfType([
14550 PropTypes$_.func,
14551 PropTypes$_.string,
14552 PropTypes$_.object,
14553 ]),
14554 portalIntoId: PropTypes$_.string,
14555 anchor: PropTypes$_.shape({
14556 x: PropTypes$_.oneOf([
14557 "inner-left",
14558 "inner-right",
14559 "center",
14560 "left",
14561 "right",
14562 ]),
14563 y: PropTypes$_.oneOf(["above", "below", "center", "top", "bottom"]),
14564 }),
14565 listboxWidth: PropTypes$_.oneOf(["auto", "equal", "min"]),
14566 vwMargin: PropTypes$_.number,
14567 vhMargin: PropTypes$_.number,
14568 xMargin: PropTypes$_.number,
14569 yMargin: PropTypes$_.number,
14570 transformOrigin: PropTypes$_.bool,
14571 preventOverlap: PropTypes$_.bool,
14572 disableSwapping: PropTypes$_.bool,
14573 disableVHBounds: PropTypes$_.bool,
14574 closeOnResize: PropTypes$_.bool,
14575 closeOnScroll: PropTypes$_.bool,
14576 style: PropTypes$_.object,
14577 className: PropTypes$_.string,
14578 inputStyle: PropTypes$_.object,
14579 inputClassName: PropTypes$_.string,
14580 labelStyle: PropTypes$_.object,
14581 labelClassName: PropTypes$_.string,
14582 label: PropTypes$_.node,
14583 theme: PropTypes$_.oneOf(["none", "underline", "filled", "outline"]),
14584 dense: PropTypes$_.bool,
14585 error: PropTypes$_.bool,
14586 inline: PropTypes$_.bool,
14587 disabled: PropTypes$_.bool,
14588 placeholder: PropTypes$_.string,
14589 underlineDirection: PropTypes$_.oneOf(["left", "center", "right"]),
14590 leftChildren: PropTypes$_.node,
14591 rightChildren: PropTypes$_.node,
14592 isLeftAddon: PropTypes$_.bool,
14593 isRightAddon: PropTypes$_.bool,
14594 onBlur: PropTypes$_.func,
14595 onFocus: PropTypes$_.func,
14596 onClick: PropTypes$_.func,
14597 onKeyDown: PropTypes$_.func,
14598 onChange: PropTypes$_.func,
14599 containerProps: PropTypes$_.object,
14600 listboxStyle: PropTypes$_.object,
14601 listboxClassName: PropTypes$_.string,
14602 highlightReapeating: PropTypes$_.bool,
14603 highlightStyle: PropTypes$_.object,
14604 highlightClassName: PropTypes$_.string,
14605 disableShowOnFocus: PropTypes$_.bool,
14606 omitKeys: PropTypes$_.arrayOf(PropTypes$_.string),
14607 value: PropTypes$_.string,
14608 defaultValue: PropTypes$_.string,
14609 beforeResultsChildren: PropTypes$_.node,
14610 afterResultsChildren: PropTypes$_.node,
14611 };
14612 }
14613 catch (e) { }
14614 }
14615
14616 var __assign$17 = (undefined && undefined.__assign) || function () {
14617 __assign$17 = Object.assign || function(t) {
14618 for (var s, i = 1, n = arguments.length; i < n; i++) {
14619 s = arguments[i];
14620 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14621 t[p] = s[p];
14622 }
14623 return t;
14624 };
14625 return __assign$17.apply(this, arguments);
14626 };
14627 var __rest$W = (undefined && undefined.__rest) || function (s, e) {
14628 var t = {};
14629 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14630 t[p] = s[p];
14631 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14632 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14633 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14634 t[p[i]] = s[p[i]];
14635 }
14636 return t;
14637 };
14638 var block$E = bem("rmd-avatar");
14639 /**
14640 * An `Avatar` is generally used to represent objects or people within your app.
14641 * The avatar can consist of an image, an icon, or some text to display. When
14642 * the avatar is not an image, different themes can be applied to make the
14643 * avatar more unique.
14644 */
14645 var Avatar = React.forwardRef(function Avatar(_a, ref) {
14646 var _b;
14647 var className = _a.className, children = _a.children, src = _a.src, _c = _a.alt, alt = _c === void 0 ? "" : _c, _d = _a.color, color = _d === void 0 ? "" : _d, props = __rest$W(_a, ["className", "children", "src", "alt", "color"]);
14648 var img;
14649 if (src) {
14650 img = React__default.createElement("img", { src: src, alt: alt, className: block$E("image") });
14651 }
14652 return (React__default.createElement("span", __assign$17({}, props, { ref: ref, className: classnames(block$E((_b = {}, _b[color] = color, _b)), className) }),
14653 img,
14654 children));
14655 });
14656 {
14657 try {
14658 var PropTypes$$ = require("prop-types");
14659 Avatar.propTypes = {
14660 alt: PropTypes$$.string,
14661 src: PropTypes$$.string,
14662 color: PropTypes$$.string,
14663 className: PropTypes$$.string,
14664 children: PropTypes$$.node,
14665 };
14666 }
14667 catch (e) { }
14668 }
14669
14670 /**
14671 * A small util to check if the badge is considered empty.
14672 *
14673 * @private
14674 */
14675 function isEmpty(children, disableNullOnZero) {
14676 return (!disableNullOnZero &&
14677 (children === 0 || children === "0" || children === null));
14678 }
14679
14680 var __assign$18 = (undefined && undefined.__assign) || function () {
14681 __assign$18 = Object.assign || function(t) {
14682 for (var s, i = 1, n = arguments.length; i < n; i++) {
14683 s = arguments[i];
14684 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14685 t[p] = s[p];
14686 }
14687 return t;
14688 };
14689 return __assign$18.apply(this, arguments);
14690 };
14691 var __rest$X = (undefined && undefined.__rest) || function (s, e) {
14692 var t = {};
14693 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14694 t[p] = s[p];
14695 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14696 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14697 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14698 t[p[i]] = s[p[i]];
14699 }
14700 return t;
14701 };
14702 var block$F = bem("rmd-badge");
14703 /**
14704 * This component is generally used for displaying notifications with a count
14705 * relative to another element with the `BadgeContainer` component. However, it
14706 * can be used by itself to display any subpplementary content if needed.
14707 */
14708 var Badge = React.forwardRef(function Badge(_a, ref) {
14709 var _b;
14710 var className = _a.className, _c = _a.theme, theme = _c === void 0 ? "default" : _c, _d = _a.children, children = _d === void 0 ? null : _d, _e = _a.disableNullOnZero, disableNullOnZero = _e === void 0 ? false : _e, props = __rest$X(_a, ["className", "theme", "children", "disableNullOnZero"]);
14711 if (isEmpty(children, disableNullOnZero)) {
14712 return null;
14713 }
14714 return (React__default.createElement("span", __assign$18({}, props, { ref: ref, className: classnames(block$F((_b = {}, _b[theme] = theme !== "clear", _b)), className) }), children));
14715 });
14716 {
14717 try {
14718 var PropTypes$10 = require("prop-types");
14719 Badge.propTypes = {
14720 id: PropTypes$10.string.isRequired,
14721 theme: PropTypes$10.oneOf(["primary", "secondary", "default", "clear"]),
14722 className: PropTypes$10.string,
14723 children: PropTypes$10.node,
14724 disableNullOnZero: PropTypes$10.bool,
14725 };
14726 }
14727 catch (e) { }
14728 }
14729
14730 var __assign$19 = (undefined && undefined.__assign) || function () {
14731 __assign$19 = Object.assign || function(t) {
14732 for (var s, i = 1, n = arguments.length; i < n; i++) {
14733 s = arguments[i];
14734 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14735 t[p] = s[p];
14736 }
14737 return t;
14738 };
14739 return __assign$19.apply(this, arguments);
14740 };
14741 var __rest$Y = (undefined && undefined.__rest) || function (s, e) {
14742 var t = {};
14743 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14744 t[p] = s[p];
14745 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14746 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14747 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14748 t[p[i]] = s[p[i]];
14749 }
14750 return t;
14751 };
14752 var block$G = bem("rmd-badge-container");
14753 /**
14754 * This is a really simple component that will just allow you to position a
14755 * badge relative to another component.
14756 */
14757 var BadgeContainer = React.forwardRef(function BadgeContainer(_a, ref) {
14758 var className = _a.className, children = _a.children, props = __rest$Y(_a, ["className", "children"]);
14759 return (React__default.createElement("span", __assign$19({}, props, { className: classnames(block$G(), className), ref: ref }), children));
14760 });
14761
14762 var __assign$1a = (undefined && undefined.__assign) || function () {
14763 __assign$1a = Object.assign || function(t) {
14764 for (var s, i = 1, n = arguments.length; i < n; i++) {
14765 s = arguments[i];
14766 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14767 t[p] = s[p];
14768 }
14769 return t;
14770 };
14771 return __assign$1a.apply(this, arguments);
14772 };
14773 var __rest$Z = (undefined && undefined.__rest) || function (s, e) {
14774 var t = {};
14775 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14776 t[p] = s[p];
14777 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14778 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14779 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14780 t[p[i]] = s[p[i]];
14781 }
14782 return t;
14783 };
14784 /**
14785 * This is a small wrapper for the `Button` component that will automatically
14786 * apply the `aria-describedby` attribute when it has been "badged". It also
14787 * adds some reasonable defaults for the most common use-case for badges:
14788 * notifications.
14789 */
14790 var BadgedButton = React.forwardRef(function BadgedButton(_a, ref) {
14791 var _b = _a["aria-label"], ariaLabel = _b === void 0 ? "Notifications" : _b, badgeStyle = _a.badgeStyle, badgeClassName = _a.badgeClassName, badgeRef = _a.badgeRef, propBadgeId = _a.badgeId, propButtonChildren = _a.buttonChildren, _c = _a.buttonType, buttonType = _c === void 0 ? "icon" : _c, badgeTheme = _a.badgeTheme, _d = _a.children, children = _d === void 0 ? null : _d, _e = _a.disableNullOnZero, disableNullOnZero = _e === void 0 ? false : _e, propDescribedBy = _a["aria-describedby"], props = __rest$Z(_a, ["aria-label", "badgeStyle", "badgeClassName", "badgeRef", "badgeId", "buttonChildren", "buttonType", "badgeTheme", "children", "disableNullOnZero", "aria-describedby"]);
14792 var id = props.id;
14793 var buttonChildren = useIcon("notification", propButtonChildren);
14794 var badgeId = propBadgeId || "";
14795 if (!badgeId && id) {
14796 badgeId = id + "-badge";
14797 }
14798 var describedBy = propDescribedBy;
14799 if (!isEmpty(children, disableNullOnZero)) {
14800 describedBy = classnames(describedBy, badgeId);
14801 }
14802 return (React__default.createElement(Button, __assign$1a({}, props, { "aria-label": ariaLabel, "aria-describedby": describedBy, ref: ref, buttonType: buttonType }),
14803 buttonChildren,
14804 React__default.createElement(Badge, { id: badgeId, ref: badgeRef, theme: badgeTheme, style: badgeStyle, className: badgeClassName, disableNullOnZero: disableNullOnZero }, children)));
14805 });
14806 {
14807 try {
14808 var PropTypes$11 = require("prop-types");
14809 BadgedButton.propTypes = {
14810 id: PropTypes$11.string,
14811 "aria-label": PropTypes$11.string,
14812 "aria-describedby": PropTypes$11.string,
14813 buttonType: PropTypes$11.oneOf(["text", "icon"]),
14814 children: PropTypes$11.node,
14815 disableNullOnZero: PropTypes$11.bool,
14816 badgeId: PropTypes$11.string,
14817 badgeRef: PropTypes$11.oneOfType([PropTypes$11.func, PropTypes$11.object]),
14818 badgeStyle: PropTypes$11.object,
14819 badgeClassName: PropTypes$11.string,
14820 badgeTheme: PropTypes$11.oneOf(["primary", "secondary", "default", "clear"]),
14821 buttonChildren: PropTypes$11.node,
14822 };
14823 }
14824 catch (e) { }
14825 }
14826
14827 var __assign$1b = (undefined && undefined.__assign) || function () {
14828 __assign$1b = Object.assign || function(t) {
14829 for (var s, i = 1, n = arguments.length; i < n; i++) {
14830 s = arguments[i];
14831 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14832 t[p] = s[p];
14833 }
14834 return t;
14835 };
14836 return __assign$1b.apply(this, arguments);
14837 };
14838 var __rest$_ = (undefined && undefined.__rest) || function (s, e) {
14839 var t = {};
14840 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14841 t[p] = s[p];
14842 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14843 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14844 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14845 t[p[i]] = s[p[i]];
14846 }
14847 return t;
14848 };
14849 var block$H = bem("rmd-card");
14850 /**
14851 * This is the root card component that should be used along side all the other
14852 * card parts. It adds some general styles and elevation to help show
14853 * prominence.
14854 */
14855 var Card = React.forwardRef(function Card(_a, ref) {
14856 var className = _a.className, children = _a.children, _b = _a.raiseable, raiseable = _b === void 0 ? false : _b, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, _d = _a.bordered, bordered = _d === void 0 ? false : _d, props = __rest$_(_a, ["className", "children", "raiseable", "fullWidth", "bordered"]);
14857 return (React__default.createElement("div", __assign$1b({}, props, { ref: ref, className: classnames(block$H({
14858 bordered: bordered,
14859 shadowed: !bordered,
14860 raiseable: !bordered && raiseable,
14861 "full-width": fullWidth,
14862 }), className) }), children));
14863 });
14864 {
14865 try {
14866 var PropTypes$12 = require("prop-types");
14867 Card.propTypes = {
14868 className: PropTypes$12.string,
14869 bordered: PropTypes$12.bool,
14870 raiseable: PropTypes$12.bool,
14871 fullWidth: PropTypes$12.bool,
14872 children: PropTypes$12.node,
14873 };
14874 }
14875 catch (e) { }
14876 }
14877
14878 var __assign$1c = (undefined && undefined.__assign) || function () {
14879 __assign$1c = Object.assign || function(t) {
14880 for (var s, i = 1, n = arguments.length; i < n; i++) {
14881 s = arguments[i];
14882 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14883 t[p] = s[p];
14884 }
14885 return t;
14886 };
14887 return __assign$1c.apply(this, arguments);
14888 };
14889 var __rest$$ = (undefined && undefined.__rest) || function (s, e) {
14890 var t = {};
14891 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14892 t[p] = s[p];
14893 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14894 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14895 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14896 t[p[i]] = s[p[i]];
14897 }
14898 return t;
14899 };
14900 var block$I = bem("rmd-card");
14901 /**
14902 * This component is used to dynamically add addons to the `CardHeader`
14903 * component. When no children are provided, nothing will be rendered.
14904 *
14905 * @private
14906 */
14907 var CardHeaderAddon = function (_a) {
14908 var className = _a.className, children = _a.children, props = __rest$$(_a, ["className", "children"]);
14909 if (!children) {
14910 return null;
14911 }
14912 return (React__default.createElement("span", __assign$1c({}, props, { className: classnames(block$I("header-addon"), className) }), children));
14913 };
14914
14915 var __assign$1d = (undefined && undefined.__assign) || function () {
14916 __assign$1d = Object.assign || function(t) {
14917 for (var s, i = 1, n = arguments.length; i < n; i++) {
14918 s = arguments[i];
14919 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14920 t[p] = s[p];
14921 }
14922 return t;
14923 };
14924 return __assign$1d.apply(this, arguments);
14925 };
14926 var __rest$10 = (undefined && undefined.__rest) || function (s, e) {
14927 var t = {};
14928 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14929 t[p] = s[p];
14930 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14931 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14932 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14933 t[p[i]] = s[p[i]];
14934 }
14935 return t;
14936 };
14937 var block$J = bem("rmd-card");
14938 /**
14939 * The header for a `Card`. There should only be up to 1 `CardHeader` within a
14940 * card and normally contains the `CardTitle` and optionally `CardSubtitle`
14941 * components. There is also additional functionality built in to render items
14942 * before or after the main children with some additional spacing.
14943 */
14944 var CardHeader = React.forwardRef(function CardHeader(_a, ref) {
14945 var _b;
14946 var _c = _a.align, align = _c === void 0 ? "center" : _c, className = _a.className, contentClassName = _a.contentClassName, children = _a.children, beforeChildren = _a.beforeChildren, afterChildren = _a.afterChildren, props = __rest$10(_a, ["align", "className", "contentClassName", "children", "beforeChildren", "afterChildren"]);
14947 return (React__default.createElement("header", __assign$1d({}, props, { ref: ref, className: classnames(block$J("header", (_b = {},
14948 _b[align] = align !== "none",
14949 _b)), className) }),
14950 React__default.createElement(TextIconSpacing, { icon: React__default.createElement(CardHeaderAddon, null, beforeChildren) },
14951 React__default.createElement(TextIconSpacing, { icon: React__default.createElement(CardHeaderAddon, null, afterChildren), iconAfter: true },
14952 React__default.createElement("span", { className: classnames(block$J("header-content"), contentClassName) }, children)))));
14953 });
14954 {
14955 try {
14956 var PropTypes$13 = require("prop-types");
14957 CardHeader.propTypes = {
14958 align: PropTypes$13.oneOf(["top", "center", "bottom", "none"]),
14959 className: PropTypes$13.string,
14960 beforeChildren: PropTypes$13.node,
14961 afterChildren: PropTypes$13.node,
14962 contentClassName: PropTypes$13.string,
14963 children: PropTypes$13.node,
14964 };
14965 }
14966 catch (e) { }
14967 }
14968
14969 var __assign$1e = (undefined && undefined.__assign) || function () {
14970 __assign$1e = Object.assign || function(t) {
14971 for (var s, i = 1, n = arguments.length; i < n; i++) {
14972 s = arguments[i];
14973 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14974 t[p] = s[p];
14975 }
14976 return t;
14977 };
14978 return __assign$1e.apply(this, arguments);
14979 };
14980 var __rest$11 = (undefined && undefined.__rest) || function (s, e) {
14981 var t = {};
14982 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14983 t[p] = s[p];
14984 if (s != null && typeof Object.getOwnPropertySymbols === "function")
14985 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14986 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
14987 t[p[i]] = s[p[i]];
14988 }
14989 return t;
14990 };
14991 var block$K = bem("rmd-card");
14992 /**
14993 * The `Cardtitle` component should normally be used within the `CardHeader` to
14994 * create a nicely styled `<h5>` title for your card. This can also be used
14995 * along with the `CardSubtitle` component within the `CardHeader` for a main
14996 * title and a subtitle.
14997 */
14998 var CardTitle = React.forwardRef(function CardTitle(_a, ref) {
14999 var className = _a.className, children = _a.children, _b = _a.small, small = _b === void 0 ? false : _b, _c = _a.noWrap, noWrap = _c === void 0 ? false : _c, props = __rest$11(_a, ["className", "children", "small", "noWrap"]);
15000 return (React__default.createElement("h5", __assign$1e({}, props, { ref: ref, className: classnames(block$K("title", { small: small }), {
15001 "rmd-card--no-wrap": noWrap,
15002 }, className) }), children));
15003 });
15004 {
15005 try {
15006 var PropTypes$14 = require("prop-types");
15007 CardTitle.propTypes = {
15008 small: PropTypes$14.bool,
15009 noWrap: PropTypes$14.bool,
15010 className: PropTypes$14.string,
15011 children: PropTypes$14.node,
15012 };
15013 }
15014 catch (e) { }
15015 }
15016
15017 var __assign$1f = (undefined && undefined.__assign) || function () {
15018 __assign$1f = Object.assign || function(t) {
15019 for (var s, i = 1, n = arguments.length; i < n; i++) {
15020 s = arguments[i];
15021 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15022 t[p] = s[p];
15023 }
15024 return t;
15025 };
15026 return __assign$1f.apply(this, arguments);
15027 };
15028 var __rest$12 = (undefined && undefined.__rest) || function (s, e) {
15029 var t = {};
15030 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15031 t[p] = s[p];
15032 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15033 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15034 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15035 t[p[i]] = s[p[i]];
15036 }
15037 return t;
15038 };
15039 var block$L = bem("rmd-card");
15040 /**
15041 * A subtitle for the `Card`. This is usually used with the `CardHeader`
15042 * component after the `CardTitle`.
15043 */
15044 var CardSubtitle = React.forwardRef(function CardSubtitle(_a, ref) {
15045 var className = _a.className, children = _a.children, _b = _a.noWrap, noWrap = _b === void 0 ? false : _b, _c = _a.disableSecondaryColor, disableSecondaryColor = _c === void 0 ? false : _c, props = __rest$12(_a, ["className", "children", "noWrap", "disableSecondaryColor"]);
15046 return (React__default.createElement("h6", __assign$1f({}, props, { ref: ref, className: classnames(block$L("subtitle", {
15047 secondary: !disableSecondaryColor,
15048 }), {
15049 "rmd-card--no-wrap": noWrap,
15050 }, className) }), children));
15051 });
15052 {
15053 try {
15054 var PropTypes$15 = require("prop-types");
15055 CardSubtitle.propTypes = {
15056 className: PropTypes$15.string,
15057 noWrap: PropTypes$15.bool,
15058 disableSecondaryColor: PropTypes$15.bool,
15059 children: PropTypes$15.node,
15060 };
15061 }
15062 catch (e) { }
15063 }
15064
15065 var __assign$1g = (undefined && undefined.__assign) || function () {
15066 __assign$1g = Object.assign || function(t) {
15067 for (var s, i = 1, n = arguments.length; i < n; i++) {
15068 s = arguments[i];
15069 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15070 t[p] = s[p];
15071 }
15072 return t;
15073 };
15074 return __assign$1g.apply(this, arguments);
15075 };
15076 var __rest$13 = (undefined && undefined.__rest) || function (s, e) {
15077 var t = {};
15078 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15079 t[p] = s[p];
15080 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15081 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15082 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15083 t[p[i]] = s[p[i]];
15084 }
15085 return t;
15086 };
15087 var block$M = bem("rmd-card");
15088 /**
15089 * The main content for the `Card`. This adds some additional padding and removes
15090 * margin from `<p>` tags by default.
15091 */
15092 var CardContent = React.forwardRef(function CardContent(_a, ref) {
15093 var _b = _a.disablePadding, disablePadding = _b === void 0 ? false : _b, _c = _a.disableExtraPadding, disableExtraPadding = _c === void 0 ? false : _c, _d = _a.disableSecondaryColor, disableSecondaryColor = _d === void 0 ? false : _d, _e = _a.disableParagraphMargin, disableParagraphMargin = _e === void 0 ? false : _e, className = _a.className, children = _a.children, props = __rest$13(_a, ["disablePadding", "disableExtraPadding", "disableSecondaryColor", "disableParagraphMargin", "className", "children"]);
15094 return (React__default.createElement("div", __assign$1g({}, props, { ref: ref, className: classnames(block$M("content", {
15095 padded: !disablePadding,
15096 "extra-padding": !disablePadding && !disableExtraPadding,
15097 "remove-margin": !disableParagraphMargin,
15098 secondary: !disableSecondaryColor,
15099 }), className) }), children));
15100 });
15101 {
15102 try {
15103 var PropTypes$16 = require("prop-types");
15104 CardContent.propTypes = {
15105 className: PropTypes$16.string,
15106 disablePadding: PropTypes$16.bool,
15107 disableExtraPadding: PropTypes$16.bool,
15108 disableParagraphMargin: PropTypes$16.bool,
15109 disableSecondaryColor: PropTypes$16.bool,
15110 children: PropTypes$16.node,
15111 };
15112 }
15113 catch (e) { }
15114 }
15115
15116 var __assign$1h = (undefined && undefined.__assign) || function () {
15117 __assign$1h = Object.assign || function(t) {
15118 for (var s, i = 1, n = arguments.length; i < n; i++) {
15119 s = arguments[i];
15120 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15121 t[p] = s[p];
15122 }
15123 return t;
15124 };
15125 return __assign$1h.apply(this, arguments);
15126 };
15127 var __rest$14 = (undefined && undefined.__rest) || function (s, e) {
15128 var t = {};
15129 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15130 t[p] = s[p];
15131 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15132 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15133 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15134 t[p[i]] = s[p[i]];
15135 }
15136 return t;
15137 };
15138 var block$N = bem("rmd-card");
15139 /**
15140 * This component is generally used to hold the main actions for the `Card`.
15141 * It's a good place to add additional buttons or expansion toggles.
15142 */
15143 var CardActions = React.forwardRef(function CardActions(_a, ref) {
15144 var _b;
15145 var className = _a.className, _c = _a.align, align = _c === void 0 ? "end" : _c, children = _a.children, props = __rest$14(_a, ["className", "align", "children"]);
15146 return (React__default.createElement("div", __assign$1h({}, props, { ref: ref, className: classnames(block$N("actions", (_b = {},
15147 _b[align] = align !== "end",
15148 _b)), className) }), children));
15149 });
15150 {
15151 try {
15152 var PropTypes$17 = require("prop-types");
15153 CardActions.propTypes = {
15154 align: PropTypes$17.oneOf(["start", "end", "center"]),
15155 className: PropTypes$17.string,
15156 children: PropTypes$17.node,
15157 };
15158 }
15159 catch (e) { }
15160 }
15161
15162 var __assign$1i = (undefined && undefined.__assign) || function () {
15163 __assign$1i = Object.assign || function(t) {
15164 for (var s, i = 1, n = arguments.length; i < n; i++) {
15165 s = arguments[i];
15166 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15167 t[p] = s[p];
15168 }
15169 return t;
15170 };
15171 return __assign$1i.apply(this, arguments);
15172 };
15173 var __rest$15 = (undefined && undefined.__rest) || function (s, e) {
15174 var t = {};
15175 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15176 t[p] = s[p];
15177 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15178 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15179 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15180 t[p[i]] = s[p[i]];
15181 }
15182 return t;
15183 };
15184 var block$O = bem("rmd-chip");
15185 /**
15186 * A chip is a simplified and condensed button component that be used to create
15187 * compact radio groups, checkboxes, and trigger actions. The chip only has a
15188 * `"solid"` and `"outline"` theme but can be raisable once clicked or
15189 * selectable with an inline icon. A chip also supports rendering icons, avatars,
15190 * or circular progress bars to the left and right of the children.
15191 */
15192 var Chip = React.forwardRef(function Chip(_a, ref) {
15193 var _b;
15194 var ariaPressed = _a["aria-pressed"], propClassName = _a.className, children = _a.children, _c = _a.theme, theme = _c === void 0 ? "solid" : _c, propLeftIcon = _a.leftIcon, rightIcon = _a.rightIcon, _d = _a.raisable, raisable = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, selected = _a.selected, _f = _a.selectedThemed, selectedThemed = _f === void 0 ? false : _f, contentStyle = _a.contentStyle, contentClassName = _a.contentClassName, _g = _a.disableContentWrap, disableContentWrap = _g === void 0 ? false : _g, propSelectedIcon = _a.selectedIcon, _h = _a.disableIconTransition, disableIconTransition = _h === void 0 ? false : _h, props = __rest$15(_a, ["aria-pressed", "className", "children", "theme", "leftIcon", "rightIcon", "raisable", "disabled", "selected", "selectedThemed", "contentStyle", "contentClassName", "disableContentWrap", "selectedIcon", "disableIconTransition"]);
15195 var _j = useInteractionStates({
15196 handlers: props,
15197 className: propClassName,
15198 disabled: disabled,
15199 enablePressedAndRipple: raisable,
15200 }), ripples = _j.ripples, className = _j.className, handlers = _j.handlers;
15201 var content = children;
15202 if (!disableContentWrap) {
15203 content = (React__default.createElement("span", { style: contentStyle, className: classnames(block$O("content"), contentClassName) }, children));
15204 }
15205 var leftIcon = propLeftIcon;
15206 var selectable = typeof selected === "boolean";
15207 var selectedIcon = useIcon("selected", propSelectedIcon);
15208 var isHiddenIcon = false;
15209 if (selectable &&
15210 !selectedThemed &&
15211 typeof leftIcon === "undefined" &&
15212 selectedIcon) {
15213 leftIcon = selectedIcon;
15214 if (!disableIconTransition && React.isValidElement(selectedIcon)) {
15215 isHiddenIcon = !selected;
15216 leftIcon = React.cloneElement(selectedIcon, {
15217 className: block$O("selected-icon", { visible: selected }),
15218 });
15219 }
15220 else if (disableIconTransition && !selected) {
15221 // don't want to render it when not selected if there's no transition
15222 leftIcon = null;
15223 }
15224 }
15225 var leading = leftIcon && !isHiddenIcon;
15226 var trailing = rightIcon;
15227 return (React__default.createElement("button", __assign$1i({}, props, handlers, { ref: ref, "aria-pressed": ariaPressed !== null && ariaPressed !== void 0 ? ariaPressed : (!!selected || undefined), type: "button", className: classnames(block$O((_b = {},
15228 _b[theme] = true,
15229 _b.disabled = disabled,
15230 _b.selected = !disabled && selected && !selectedThemed,
15231 _b.themed = !disabled && selected && selectedThemed,
15232 _b["solid-disabled"] = disabled && theme === "solid",
15233 _b["leading-icon"] = leading && !trailing,
15234 _b["trailing-icon"] = trailing && !leading,
15235 _b.surrounded = leading && trailing,
15236 _b)), className), disabled: disabled }),
15237 React__default.createElement(TextIconSpacing, { icon: leftIcon, beforeClassName: isHiddenIcon ? "" : undefined },
15238 React__default.createElement(TextIconSpacing, { icon: rightIcon, iconAfter: true }, content)),
15239 ripples));
15240 });
15241 {
15242 try {
15243 var PropTypes$18 = require("prop-types");
15244 Chip.propTypes = {
15245 "aria-pressed": PropTypes$18.oneOfType([
15246 PropTypes$18.bool,
15247 PropTypes$18.oneOf(["true", "false"]),
15248 ]),
15249 className: PropTypes$18.string,
15250 theme: PropTypes$18.oneOf(["outline", "solid"]),
15251 disabled: PropTypes$18.bool,
15252 leftIcon: PropTypes$18.node,
15253 rightIcon: PropTypes$18.node,
15254 raisable: PropTypes$18.bool,
15255 contentStyle: PropTypes$18.object,
15256 contentClassName: PropTypes$18.string,
15257 disableContentWrap: PropTypes$18.bool,
15258 selected: PropTypes$18.bool,
15259 selectedThemed: PropTypes$18.bool,
15260 children: PropTypes$18.node,
15261 selectedIcon: PropTypes$18.node,
15262 disableIconTransition: PropTypes$18.bool,
15263 };
15264 }
15265 catch (e) { }
15266 }
15267
15268 var __assign$1j = (undefined && undefined.__assign) || function () {
15269 __assign$1j = Object.assign || function(t) {
15270 for (var s, i = 1, n = arguments.length; i < n; i++) {
15271 s = arguments[i];
15272 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15273 t[p] = s[p];
15274 }
15275 return t;
15276 };
15277 return __assign$1j.apply(this, arguments);
15278 };
15279 var __rest$16 = (undefined && undefined.__rest) || function (s, e) {
15280 var t = {};
15281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15282 t[p] = s[p];
15283 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15284 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15285 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15286 t[p[i]] = s[p[i]];
15287 }
15288 return t;
15289 };
15290 var block$P = bem("rmd-overlay");
15291 var DEFAULT_OVERLAY_CLASSNAMES = {
15292 appearActive: "rmd-overlay--active",
15293 enterActive: "rmd-overlay--active",
15294 enterDone: "rmd-overlay--active",
15295 };
15296 /**
15297 * The `Overlay` component is a simple component used to render a full page
15298 * overlay in the page with an enter and exit animation. If there are overflow
15299 * issues or you need to portal the overlay to a different area within your app,
15300 * you should use the `OverlayPortal` component instead.
15301 */
15302 var Overlay = React.forwardRef(function Overlay(_a, ref) {
15303 var className = _a.className, visible = _a.visible, _b = _a.hidden, hidden = _b === void 0 ? false : _b, _c = _a.clickable, clickable = _c === void 0 ? true : _c, _d = _a.timeout, timeout = _d === void 0 ? 150 : _d, children = _a.children, _e = _a.mountOnEnter, mountOnEnter = _e === void 0 ? true : _e, _f = _a.unmountOnExit, unmountOnExit = _f === void 0 ? true : _f, onRequestClose = _a.onRequestClose, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, portal = _a.portal, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, _g = _a.classNames, classNames = _g === void 0 ? DEFAULT_OVERLAY_CLASSNAMES : _g, _h = _a.tabIndex, tabIndex = _h === void 0 ? -1 : _h, props = __rest$16(_a, ["className", "visible", "hidden", "clickable", "timeout", "children", "mountOnEnter", "unmountOnExit", "onRequestClose", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "portal", "portalInto", "portalIntoId", "classNames", "tabIndex"]);
15304 return (React__default.createElement(ConditionalPortal, { portal: portal, portalInto: portalInto, portalIntoId: portalIntoId },
15305 React__default.createElement(CSSTransition, { appear: true, in: visible, classNames: hidden ? "" : classNames, timeout: hidden ? 0 : timeout, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited }, function (state) { return (React__default.createElement("span", __assign$1j({}, props, { ref: ref, className: classnames(block$P({
15306 // have to manually set the active state here since react-transition-group doesn't
15307 // clone in the transition `classNames` and if the overlay re-renders while the
15308 // animation has finished, the active className will disappear
15309 active: !hidden && state === "entered",
15310 visible: visible,
15311 clickable: clickable,
15312 }), className), onClick: onRequestClose, tabIndex: tabIndex }), children)); })));
15313 });
15314 {
15315 try {
15316 var PropTypes$19 = require("prop-types");
15317 Overlay.propTypes = {
15318 className: PropTypes$19.string,
15319 classNames: PropTypes$19.oneOfType([
15320 PropTypes$19.string,
15321 PropTypes$19.shape({
15322 appear: PropTypes$19.string,
15323 appearActive: PropTypes$19.string,
15324 enter: PropTypes$19.string,
15325 enterActive: PropTypes$19.string,
15326 enterDone: PropTypes$19.string,
15327 exit: PropTypes$19.string,
15328 exitActive: PropTypes$19.string,
15329 exitDone: PropTypes$19.string,
15330 }),
15331 ]),
15332 timeout: PropTypes$19.oneOfType([
15333 PropTypes$19.number,
15334 PropTypes$19.shape({
15335 enter: PropTypes$19.number,
15336 exit: PropTypes$19.number,
15337 }),
15338 ]),
15339 mountOnEnter: PropTypes$19.bool,
15340 unmountOnExit: PropTypes$19.bool,
15341 onEnter: PropTypes$19.func,
15342 onEntering: PropTypes$19.func,
15343 onEntered: PropTypes$19.func,
15344 onExit: PropTypes$19.func,
15345 onExiting: PropTypes$19.func,
15346 onExited: PropTypes$19.func,
15347 portal: PropTypes$19.bool,
15348 portalInto: PropTypes$19.oneOfType([
15349 PropTypes$19.string,
15350 PropTypes$19.func,
15351 PropTypes$19.object,
15352 ]),
15353 portalIntoId: PropTypes$19.string,
15354 children: PropTypes$19.node,
15355 tabIndex: PropTypes$19.number,
15356 visible: PropTypes$19.bool.isRequired,
15357 onRequestClose: PropTypes$19.func.isRequired,
15358 hidden: PropTypes$19.bool,
15359 clickable: PropTypes$19.bool,
15360 };
15361 }
15362 catch (e) { }
15363 }
15364
15365 /* eslint-disable react/prop-types */
15366 var context$2 = React.createContext({
15367 stack: [],
15368 add: function () { },
15369 remove: function () { },
15370 });
15371 {
15372 context$2.displayName = "NestedDialogContext";
15373 }
15374 var Provider$2 = context$2.Provider;
15375 /**
15376 * This component is used to help with handling nested dialogs by:
15377 * - preventing all dialogs to be closed when the escape key is pressed
15378 * - hiding the overlays for dialogs that are not the top-most focus
15379 *
15380 * This should be added to the root of your app if you would like to enable this
15381 * feature.
15382 */
15383 var NestedDialogContextProvider = function (_a) {
15384 var children = _a.children;
15385 var _b = React.useState([]), stack = _b[0], setStack = _b[1];
15386 var add = React.useCallback(function (dialogId) {
15387 setStack(function (prevStack) {
15388 if (
15389 prevStack.includes(dialogId)) {
15390 /* eslint-disable no-console */
15391 console.warn("Tried to add a duplicate dialog id to the `NestedDialogContext`.");
15392 console.warn("This means that you have two dialogs with the same id: `" + dialogId + "`.");
15393 console.warn("This should be fixed before moving to production since this will break accessibility and is technically invalid.");
15394 }
15395 return prevStack.concat(dialogId);
15396 });
15397 }, []);
15398 var remove = React.useCallback(function (dialogId) {
15399 setStack(function (prevStack) { return prevStack.filter(function (id) { return id !== dialogId; }); });
15400 }, []);
15401 var value = React.useMemo(function () { return ({ stack: stack, add: add, remove: remove }); }, [add, remove, stack]);
15402 return React__default.createElement(Provider$2, { value: value }, children);
15403 };
15404 /**
15405 * Gets the current nested dialog context. This shouldn't really be used
15406 * externally and is a private context hook.
15407 *
15408 * @private
15409 */
15410 function useNestedDialogContext() {
15411 return React.useContext(context$2);
15412 }
15413
15414 /**
15415 * This hook is used to fix the nested overlays and the escape keypress when multiple
15416 * dialogs are rendered at the same time on a page. All it really does is keep a stack
15417 * of the dialog ids that are current visible. If there is more than 1 dialog visible
15418 * and the dialog is not at the top of the stack, the overlay and escape keypress will
15419 * be disabled.
15420 *
15421 * NOTE: This will not work if you nest dialogs together and have them become visible at
15422 * the same time because the ids will get added from child -> parent instead of parent -> child.
15423 * This flow shouldn't really happen though so it isn't planned on being fixed.
15424 */
15425 function useNestedDialogFixes(_a) {
15426 var id = _a.id, visible = _a.visible, disabled = _a.disabled, propDisableEscapeClose = _a.disableEscapeClose;
15427 var _b = useNestedDialogContext(), add = _b.add, remove = _b.remove, stack = _b.stack;
15428 React.useEffect(function () {
15429 if (disabled || !visible) {
15430 return;
15431 }
15432 add(id);
15433 return function () {
15434 remove(id);
15435 };
15436 }, [visible, disabled, id, add, remove]);
15437 return React.useMemo(function () {
15438 var disableOverlay = false;
15439 var disableEscapeClose = propDisableEscapeClose;
15440 if (!disabled && visible && stack.length > 1) {
15441 var lastIndex = stack.length - 1;
15442 var i = stack.findIndex(function (dialogId) { return id === dialogId; });
15443 disableOverlay = i < lastIndex;
15444 if (!propDisableEscapeClose) {
15445 disableEscapeClose = i < lastIndex;
15446 }
15447 }
15448 return {
15449 disableOverlay: disableOverlay,
15450 disableEscapeClose: disableEscapeClose,
15451 };
15452 }, [id, propDisableEscapeClose, disabled, visible, stack]);
15453 }
15454
15455 var __assign$1k = (undefined && undefined.__assign) || function () {
15456 __assign$1k = Object.assign || function(t) {
15457 for (var s, i = 1, n = arguments.length; i < n; i++) {
15458 s = arguments[i];
15459 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15460 t[p] = s[p];
15461 }
15462 return t;
15463 };
15464 return __assign$1k.apply(this, arguments);
15465 };
15466 var __rest$17 = (undefined && undefined.__rest) || function (s, e) {
15467 var t = {};
15468 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15469 t[p] = s[p];
15470 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15471 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15472 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15473 t[p[i]] = s[p[i]];
15474 }
15475 return t;
15476 };
15477 // used to disable the overlay click-to-close functionality when the `modal` prop is enabled.
15478 var noop$3 = function () { };
15479 var block$Q = bem("rmd-dialog");
15480 var DEFAULT_DIALOG_CLASSNAMES = {
15481 appear: "rmd-dialog--enter",
15482 appearActive: "rmd-dialog--enter-active",
15483 enter: "rmd-dialog--enter",
15484 enterActive: "rmd-dialog--enter-active",
15485 exit: "rmd-dialog--exit",
15486 exitActive: "rmd-dialog--exit-active",
15487 };
15488 var DEFAULT_DIALOG_TIMEOUT = {
15489 enter: 200,
15490 exit: 150,
15491 };
15492 var Dialog = React.forwardRef(function Dialog(_a, ref) {
15493 var _b = _a.component, component = _b === void 0 ? "div" : _b, _c = _a.tabIndex, tabIndex = _c === void 0 ? -1 : _c, children = _a.children, className = _a.className, containerStyle = _a.containerStyle, containerClassName = _a.containerClassName, propOverlay = _a.overlay, overlayStyle = _a.overlayStyle, overlayClassName = _a.overlayClassName, _d = _a.overlayHidden, overlayHidden = _d === void 0 ? false : _d, visible = _a.visible, onRequestClose = _a.onRequestClose, _e = _a.forceContainer, forceContainer = _e === void 0 ? false : _e, _f = _a.defaultFocus, defaultFocus = _f === void 0 ? "first" : _f, _g = _a.portal, portal = _g === void 0 ? true : _g, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, _h = _a.appear, appear = _h === void 0 ? false : _h, _j = _a.enter, enter = _j === void 0 ? true : _j, _k = _a.exit, exit = _k === void 0 ? true : _k, _l = _a.disableTransition, disableTransition = _l === void 0 ? false : _l, _m = _a.classNames, classNames = _m === void 0 ? DEFAULT_DIALOG_CLASSNAMES : _m, _o = _a.timeout, timeout = _o === void 0 ? DEFAULT_DIALOG_TIMEOUT : _o, _p = _a.mountOnEnter, mountOnEnter = _p === void 0 ? true : _p, _q = _a.unmountOnExit, unmountOnExit = _q === void 0 ? true : _q, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, _r = _a.modal, modal = _r === void 0 ? false : _r, _s = _a.role, role = _s === void 0 ? "dialog" : _s, _t = _a.type, type = _t === void 0 ? "centered" : _t, _u = _a.disableScrollLock, disableScrollLock = _u === void 0 ? false : _u, _v = _a.disableEscapeClose, propDisableEscapeClose = _v === void 0 ? false : _v, _w = _a.disableFocusContainer, disableFocusContainer = _w === void 0 ? false : _w, _x = _a.disableTabFocusWrap, disableTabFocusWrap = _x === void 0 ? false : _x, _y = _a.disableFocusOnMount, disableFocusOnMount = _y === void 0 ? false : _y, _z = _a.disableFocusOnUnmount, disableFocusOnUnmount = _z === void 0 ? false : _z, _0 = _a.disableNestedDialogFixes, disableNestedDialogFixes = _0 === void 0 ? false : _0, onKeyDown = _a.onKeyDown, props = __rest$17(_a, ["component", "tabIndex", "children", "className", "containerStyle", "containerClassName", "overlay", "overlayStyle", "overlayClassName", "overlayHidden", "visible", "onRequestClose", "forceContainer", "defaultFocus", "portal", "portalInto", "portalIntoId", "appear", "enter", "exit", "disableTransition", "classNames", "timeout", "mountOnEnter", "unmountOnExit", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "modal", "role", "type", "disableScrollLock", "disableEscapeClose", "disableFocusContainer", "disableTabFocusWrap", "disableFocusOnMount", "disableFocusOnUnmount", "disableNestedDialogFixes", "onKeyDown"]);
15494 var id = props.id;
15495 var isNoneRole = role === "none";
15496 var isFullPage = type === "full-page";
15497 var isCentered = type === "centered";
15498 var _1 = useNestedDialogFixes({
15499 id: id,
15500 visible: visible,
15501 disabled: disableNestedDialogFixes,
15502 disableEscapeClose: propDisableEscapeClose,
15503 }), disableOverlay = _1.disableOverlay, disableEscapeClose = _1.disableEscapeClose;
15504 useScrollLock(visible && !isNoneRole && !disableScrollLock);
15505 var overlayEl = null;
15506 if (typeof propOverlay === "boolean" ? propOverlay : !isFullPage) {
15507 // do not add the portal props to the overlay element since the portalling
15508 // is handled in here. With how portals work, this would be rendered **after**
15509 // the dialog instead of before which breaks some dialog styles
15510 overlayEl = (React__default.createElement(Overlay, { id: id + "-overlay", style: overlayStyle, className: classnames("rmd-dialog-overlay", overlayClassName), hidden: overlayHidden || disableOverlay, visible: visible, clickable: !modal, onRequestClose: modal ? noop$3 : onRequestClose }));
15511 }
15512 var dialog = (React__default.createElement(FocusContainer, __assign$1k({}, props, { ref: ref, role: isNoneRole ? undefined : role, "aria-modal": (!isNoneRole && !!overlayEl) || undefined, tabIndex: tabIndex, component: component, defaultFocus: defaultFocus, disableTabFocusWrap: isNoneRole || disableTabFocusWrap || disableFocusContainer, disableFocusOnMount: isNoneRole || disableFocusContainer || disableFocusOnMount, disableFocusOnMountScroll: true, disableFocusOnUnmount: isNoneRole || disableFocusContainer || disableFocusOnUnmount, onKeyDown: useCloseOnEscape(onRequestClose, disableEscapeClose || isNoneRole, onKeyDown), className: classnames(block$Q({
15513 centered: isCentered,
15514 "full-page": isFullPage,
15515 }), className) }), children));
15516 if (isCentered || forceContainer) {
15517 // the additional container is only required when we don't have a full page dialog. it's just
15518 // used to apply flex center to the dialog and add some margin
15519 dialog = (React__default.createElement("span", { id: id + "-container", style: containerStyle, className: classnames("rmd-dialog-container", containerClassName) }, dialog));
15520 }
15521 return (React__default.createElement(ConditionalPortal, { portal: !isNoneRole && portal, portalInto: portalInto, portalIntoId: portalIntoId },
15522 React__default.createElement(React__default.Fragment, null,
15523 overlayEl,
15524 React__default.createElement(CSSTransition, { appear: !disableTransition && appear, enter: !disableTransition && enter, exit: !disableTransition && exit, in: visible, classNames: classNames, timeout: timeout, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit }, dialog))));
15525 });
15526 {
15527 try {
15528 var PropTypes$1a = require("prop-types");
15529 Dialog.propTypes = {
15530 id: PropTypes$1a.string.isRequired,
15531 role: PropTypes$1a.oneOf(["dialog", "alertdialog", "menu", "none"]),
15532 "aria-label": PropTypes$1a.string,
15533 "aria-labelledby": PropTypes$1a.string,
15534 className: PropTypes$1a.string,
15535 type: PropTypes$1a.oneOf(["custom", "centered", "full-page"]),
15536 tabIndex: PropTypes$1a.number,
15537 modal: PropTypes$1a.bool,
15538 visible: PropTypes$1a.bool.isRequired,
15539 onRequestClose: PropTypes$1a.func.isRequired,
15540 mountOnEnter: PropTypes$1a.bool,
15541 unmountOnExit: PropTypes$1a.bool,
15542 overlay: PropTypes$1a.bool,
15543 overlayStyle: PropTypes$1a.object,
15544 overlayClassName: PropTypes$1a.string,
15545 overlayHidden: PropTypes$1a.bool,
15546 containerStyle: PropTypes$1a.object,
15547 containerClassName: PropTypes$1a.string,
15548 forceContainer: PropTypes$1a.bool,
15549 onKeyDown: PropTypes$1a.func,
15550 component: PropTypes$1a.oneOf(["div", "nav"]),
15551 children: PropTypes$1a.node,
15552 classNames: PropTypes$1a.oneOfType([
15553 PropTypes$1a.string,
15554 PropTypes$1a.shape({
15555 appear: PropTypes$1a.string,
15556 appearActive: PropTypes$1a.string,
15557 enter: PropTypes$1a.string,
15558 enterActive: PropTypes$1a.string,
15559 enterDone: PropTypes$1a.string,
15560 exit: PropTypes$1a.string,
15561 exitActive: PropTypes$1a.string,
15562 exitDone: PropTypes$1a.string,
15563 }),
15564 ]),
15565 timeout: PropTypes$1a.oneOfType([
15566 PropTypes$1a.number,
15567 PropTypes$1a.shape({
15568 enter: PropTypes$1a.number,
15569 exit: PropTypes$1a.number,
15570 }),
15571 ]),
15572 appear: PropTypes$1a.bool,
15573 enter: PropTypes$1a.bool,
15574 exit: PropTypes$1a.bool,
15575 disableTransition: PropTypes$1a.bool,
15576 onEnter: PropTypes$1a.func,
15577 onEntering: PropTypes$1a.func,
15578 onEntered: PropTypes$1a.func,
15579 onExit: PropTypes$1a.func,
15580 onExiting: PropTypes$1a.func,
15581 onExited: PropTypes$1a.func,
15582 portal: PropTypes$1a.bool,
15583 portalInto: PropTypes$1a.oneOfType([
15584 PropTypes$1a.func,
15585 PropTypes$1a.string,
15586 PropTypes$1a.object,
15587 ]),
15588 portalIntoId: PropTypes$1a.string,
15589 defaultFocus: PropTypes$1a.oneOfType([
15590 PropTypes$1a.oneOf(["first", "last"]),
15591 PropTypes$1a.string,
15592 ]),
15593 disableScrollLock: PropTypes$1a.bool,
15594 disableEscapeClose: PropTypes$1a.bool,
15595 disableFocusContainer: PropTypes$1a.bool,
15596 disableNestedDialogFixes: PropTypes$1a.bool,
15597 disableTabFocusWrap: PropTypes$1a.bool,
15598 disableFocusOnMount: PropTypes$1a.bool,
15599 disableFocusOnUnmount: PropTypes$1a.bool,
15600 };
15601 }
15602 catch (e) { }
15603 }
15604
15605 var __assign$1l = (undefined && undefined.__assign) || function () {
15606 __assign$1l = Object.assign || function(t) {
15607 for (var s, i = 1, n = arguments.length; i < n; i++) {
15608 s = arguments[i];
15609 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15610 t[p] = s[p];
15611 }
15612 return t;
15613 };
15614 return __assign$1l.apply(this, arguments);
15615 };
15616 var __rest$18 = (undefined && undefined.__rest) || function (s, e) {
15617 var t = {};
15618 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15619 t[p] = s[p];
15620 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15621 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15622 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15623 t[p[i]] = s[p[i]];
15624 }
15625 return t;
15626 };
15627 var block$R = bem("rmd-dialog");
15628 /**
15629 * This component doesn't do anything to complex. It really just applies custom
15630 * styles so that when the `DialogContent` component is used, the header will be
15631 * "fixed" to the top of the dialog while the content scrolls. It also applies
15632 * some minimal padding.
15633 */
15634 var DialogHeader = React.forwardRef(function DialogHeader(_a, ref) {
15635 var children = _a.children, className = _a.className, props = __rest$18(_a, ["children", "className"]);
15636 return (React__default.createElement("header", __assign$1l({}, props, { ref: ref, className: classnames(block$R("header"), className) }), children));
15637 });
15638 {
15639 try {
15640 var PropTypes$1b = require("prop-types");
15641 DialogHeader.propTypes = {
15642 className: PropTypes$1b.string,
15643 children: PropTypes$1b.node,
15644 };
15645 }
15646 catch (e) { }
15647 }
15648
15649 var __assign$1m = (undefined && undefined.__assign) || function () {
15650 __assign$1m = Object.assign || function(t) {
15651 for (var s, i = 1, n = arguments.length; i < n; i++) {
15652 s = arguments[i];
15653 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15654 t[p] = s[p];
15655 }
15656 return t;
15657 };
15658 return __assign$1m.apply(this, arguments);
15659 };
15660 var __rest$19 = (undefined && undefined.__rest) || function (s, e) {
15661 var t = {};
15662 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15663 t[p] = s[p];
15664 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15665 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15666 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15667 t[p[i]] = s[p[i]];
15668 }
15669 return t;
15670 };
15671 var block$S = bem("rmd-dialog");
15672 /**
15673 * This component adds some base styles to an `<h2>` element for a title within
15674 * a `Dialog`.
15675 */
15676 var DialogTitle = React.forwardRef(function DialogTitle(_a, ref) {
15677 var children = _a.children, className = _a.className, props = __rest$19(_a, ["children", "className"]);
15678 return (React__default.createElement("h2", __assign$1m({}, props, { ref: ref, className: classnames(block$S("title"), className) }), children));
15679 });
15680 {
15681 try {
15682 var PropTypes$1c = require("prop-types");
15683 DialogTitle.propTypes = {
15684 className: PropTypes$1c.string,
15685 children: PropTypes$1c.node,
15686 };
15687 }
15688 catch (e) { }
15689 }
15690
15691 var __assign$1n = (undefined && undefined.__assign) || function () {
15692 __assign$1n = Object.assign || function(t) {
15693 for (var s, i = 1, n = arguments.length; i < n; i++) {
15694 s = arguments[i];
15695 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15696 t[p] = s[p];
15697 }
15698 return t;
15699 };
15700 return __assign$1n.apply(this, arguments);
15701 };
15702 var __rest$1a = (undefined && undefined.__rest) || function (s, e) {
15703 var t = {};
15704 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15705 t[p] = s[p];
15706 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15707 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15708 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15709 t[p[i]] = s[p[i]];
15710 }
15711 return t;
15712 };
15713 var block$T = bem("rmd-dialog");
15714 /**
15715 * This component is used to render the main content within a dialog. There are
15716 * really only benefits when using the component alongside the `DialogHeader`
15717 * and/or `DialogFooter` since it is set up so only the content will scroll
15718 * while the header and footer will be "fixed".
15719 */
15720 var DialogContent = React.forwardRef(function DialogContent(_a, ref) {
15721 var children = _a.children, className = _a.className, _b = _a.disablePadding, disablePadding = _b === void 0 ? false : _b, props = __rest$1a(_a, ["children", "className", "disablePadding"]);
15722 return (React__default.createElement("div", __assign$1n({}, props, { ref: ref, className: classnames(block$T("content", {
15723 padded: !disablePadding,
15724 }), className) }), children));
15725 });
15726 {
15727 try {
15728 var PropTypes$1d = require("prop-types");
15729 DialogContent.propTypes = {
15730 className: PropTypes$1d.string,
15731 children: PropTypes$1d.node,
15732 disablePadding: PropTypes$1d.bool,
15733 };
15734 }
15735 catch (e) { }
15736 }
15737
15738 var __assign$1o = (undefined && undefined.__assign) || function () {
15739 __assign$1o = Object.assign || function(t) {
15740 for (var s, i = 1, n = arguments.length; i < n; i++) {
15741 s = arguments[i];
15742 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15743 t[p] = s[p];
15744 }
15745 return t;
15746 };
15747 return __assign$1o.apply(this, arguments);
15748 };
15749 var __rest$1b = (undefined && undefined.__rest) || function (s, e) {
15750 var t = {};
15751 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15752 t[p] = s[p];
15753 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15754 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15755 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15756 t[p[i]] = s[p[i]];
15757 }
15758 return t;
15759 };
15760 var block$U = bem("rmd-dialog");
15761 var DialogFooter = React.forwardRef(function DialogFooter(_a, ref) {
15762 var _b;
15763 var children = _a.children, className = _a.className, _c = _a.align, align = _c === void 0 ? "end" : _c, props = __rest$1b(_a, ["children", "className", "align"]);
15764 return (React__default.createElement("footer", __assign$1o({}, props, { ref: ref, className: classnames(block$U("footer", (_b = {
15765 flex: align !== "none"
15766 },
15767 _b[align] = align !== "none",
15768 _b)), className) }), children));
15769 });
15770 {
15771 try {
15772 var PropTypes$1e = require("prop-types");
15773 DialogFooter.propTypes = {
15774 className: PropTypes$1e.string,
15775 children: PropTypes$1e.node,
15776 align: PropTypes$1e.oneOf([
15777 "none",
15778 "start",
15779 "end",
15780 "between",
15781 "stacked-start",
15782 "stacked-end",
15783 ]),
15784 };
15785 }
15786 catch (e) { }
15787 }
15788
15789 var __assign$1p = (undefined && undefined.__assign) || function () {
15790 __assign$1p = Object.assign || function(t) {
15791 for (var s, i = 1, n = arguments.length; i < n; i++) {
15792 s = arguments[i];
15793 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15794 t[p] = s[p];
15795 }
15796 return t;
15797 };
15798 return __assign$1p.apply(this, arguments);
15799 };
15800 var __rest$1c = (undefined && undefined.__rest) || function (s, e) {
15801 var t = {};
15802 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15803 t[p] = s[p];
15804 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15805 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15806 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15807 t[p[i]] = s[p[i]];
15808 }
15809 return t;
15810 };
15811 var DEFAULT_CLASSNAMES = {
15812 appear: "rmd-dialog--fixed-enter",
15813 appearActive: "rmd-dialog--fixed-enter-active",
15814 enter: "rmd-dialog--fixed-enter",
15815 enterActive: "rmd-dialog--fixed-enter-active",
15816 exit: "rmd-dialog--fixed-exit",
15817 exitActive: "rmd-dialog--fixed-exit-active",
15818 };
15819 /**
15820 * The `FixedDialog` is a wrapper for the `Dialog` component that can be used to
15821 * be fix itself to another element. Another term for this component might be a
15822 * "Pop out Dialog".
15823 */
15824 var FixedDialog = React.forwardRef(function FixedDialog(_a, ref) {
15825 var fixedTo = _a.fixedTo, _b = _a.anchor, anchor = _b === void 0 ? TOP_INNER_RIGHT_ANCHOR : _b, options = _a.options, getOptions = _a.getOptions, children = _a.children, className = _a.className, _c = _a.classNames, classNames = _c === void 0 ? DEFAULT_CLASSNAMES : _c, _d = _a.overlayHidden, overlayHidden = _d === void 0 ? true : _d, _e = _a.disableScrollLock, disableScrollLock = _e === void 0 ? true : _e, props = __rest$1c(_a, ["fixedTo", "anchor", "options", "getOptions", "children", "className", "classNames", "overlayHidden", "disableScrollLock"]);
15826 var onRequestClose = props.onRequestClose;
15827 var _f = useFixedPositioning(__assign$1p(__assign$1p({ transformOrigin: true }, options), { onScroll: function (_event, _a) {
15828 var visible = _a.visible;
15829 if (!visible) {
15830 onRequestClose();
15831 }
15832 }, fixedTo: fixedTo,
15833 anchor: anchor,
15834 getOptions: getOptions })), style = _f.style, onEnter = _f.onEnter, onEntering = _f.onEntering, onEntered = _f.onEntered, onExited = _f.onExited;
15835 return (React__default.createElement(Dialog, __assign$1p({}, props, { ref: ref, type: "custom", style: style, className: classnames("rmd-dialog--fixed", className), classNames: classNames, overlayHidden: overlayHidden, disableScrollLock: disableScrollLock, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExited: onExited }), children));
15836 });
15837 {
15838 try {
15839 var PropTypes$1f = require("prop-types");
15840 FixedDialog.propTypes = {
15841 fixedTo: PropTypes$1f.oneOfType([
15842 PropTypes$1f.string,
15843 PropTypes$1f.func,
15844 PropTypes$1f.object,
15845 ]),
15846 options: PropTypes$1f.shape({
15847 vwMargin: PropTypes$1f.number,
15848 vhMargin: PropTypes$1f.number,
15849 xMargin: PropTypes$1f.number,
15850 yMargin: PropTypes$1f.number,
15851 disableSwapping: PropTypes$1f.bool,
15852 transformOrigin: PropTypes$1f.bool,
15853 }),
15854 getOptions: PropTypes$1f.func,
15855 onRequestClose: PropTypes$1f.func.isRequired,
15856 overlayHidden: PropTypes$1f.bool,
15857 classNames: PropTypes$1f.oneOfType([
15858 PropTypes$1f.string,
15859 PropTypes$1f.shape({
15860 appear: PropTypes$1f.string,
15861 appearActive: PropTypes$1f.string,
15862 enter: PropTypes$1f.string,
15863 enterActive: PropTypes$1f.string,
15864 enterDone: PropTypes$1f.string,
15865 exit: PropTypes$1f.string,
15866 exitActive: PropTypes$1f.string,
15867 exitDone: PropTypes$1f.string,
15868 }),
15869 ]),
15870 timeout: PropTypes$1f.oneOfType([
15871 PropTypes$1f.number,
15872 PropTypes$1f.shape({
15873 enter: PropTypes$1f.number,
15874 exit: PropTypes$1f.number,
15875 }),
15876 ]),
15877 disableScrollLock: PropTypes$1f.bool,
15878 anchor: PropTypes$1f.shape({
15879 x: PropTypes$1f.oneOf([
15880 "inner-left",
15881 "inner-right",
15882 "center",
15883 "left",
15884 "right",
15885 ]),
15886 y: PropTypes$1f.oneOf(["above", "below", "center", "top", "bottom"]),
15887 }),
15888 children: PropTypes$1f.node,
15889 className: PropTypes$1f.string,
15890 };
15891 }
15892 catch (e) { }
15893 }
15894
15895 var __assign$1q = (undefined && undefined.__assign) || function () {
15896 __assign$1q = Object.assign || function(t) {
15897 for (var s, i = 1, n = arguments.length; i < n; i++) {
15898 s = arguments[i];
15899 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15900 t[p] = s[p];
15901 }
15902 return t;
15903 };
15904 return __assign$1q.apply(this, arguments);
15905 };
15906 var __rest$1d = (undefined && undefined.__rest) || function (s, e) {
15907 var t = {};
15908 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15909 t[p] = s[p];
15910 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15911 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15912 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15913 t[p[i]] = s[p[i]];
15914 }
15915 return t;
15916 };
15917 var block$V = bem("rmd-divider");
15918 var Divider = React.forwardRef(function Divider(_a, ref) {
15919 var _b = _a.inset, inset = _b === void 0 ? false : _b, _c = _a.vertical, vertical = _c === void 0 ? false : _c, _d = _a.role, role = _d === void 0 ? "separator" : _d, className = _a.className, props = __rest$1d(_a, ["inset", "vertical", "role", "className"]);
15920 var Component = (vertical ? "div" : "hr");
15921 return (React__default.createElement(Component, __assign$1q({}, props, { ref: ref, role: role, className: classnames(block$V({ inset: !vertical && inset, vertical: vertical }), className) })));
15922 });
15923 {
15924 try {
15925 var PropTypes$1g = require("prop-types");
15926 Divider.propTypes = {
15927 role: PropTypes$1g.string,
15928 inset: PropTypes$1g.bool,
15929 className: PropTypes$1g.string,
15930 vertical: PropTypes$1g.bool,
15931 };
15932 }
15933 catch (e) { }
15934 }
15935
15936 var __assign$1r = (undefined && undefined.__assign) || function () {
15937 __assign$1r = Object.assign || function(t) {
15938 for (var s, i = 1, n = arguments.length; i < n; i++) {
15939 s = arguments[i];
15940 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15941 t[p] = s[p];
15942 }
15943 return t;
15944 };
15945 return __assign$1r.apply(this, arguments);
15946 };
15947 var __rest$1e = (undefined && undefined.__rest) || function (s, e) {
15948 var t = {};
15949 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15950 t[p] = s[p];
15951 if (s != null && typeof Object.getOwnPropertySymbols === "function")
15952 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
15953 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15954 t[p[i]] = s[p[i]];
15955 }
15956 return t;
15957 };
15958 /**
15959 * This is a small hook that is used to automatically create a vertical divider based
15960 * on the computed height of its parent element.
15961 *
15962 * @param maxHeight The max height for the vertical divider. When the value is between
15963 * 0 and 1, it will be used as a percentage. Otherwise the smaller value of parent element
15964 * height and this will be used.
15965 */
15966 function useVerticalDividerHeight(maxHeight, forwardedRef) {
15967 if ( maxHeight < 0) {
15968 throw new Error("The `maxHeight` for a vertical divider height must be greater than 0");
15969 }
15970 var _a = React.useState(undefined), height = _a[0], setHeight = _a[1];
15971 var ref = React.useCallback(function (instance) {
15972 applyRef(instance, forwardedRef);
15973 if (!instance || !instance.parentElement) {
15974 return;
15975 }
15976 var height = instance.parentElement.offsetHeight;
15977 if (maxHeight <= 1) {
15978 setHeight(height * maxHeight);
15979 }
15980 else {
15981 setHeight(Math.min(height, maxHeight));
15982 }
15983 }, [maxHeight, forwardedRef]);
15984 return { ref: ref, height: height };
15985 }
15986 /**
15987 * This component is used to create a vertical divider based on a parent
15988 * element's height. This is really only needed when the parent element **has no
15989 * defined height**. If there is a defined height, this component is not worth
15990 * much as the height can be computed in css as normal. This really just fixes
15991 * the issue that the height would be set to `auto` (which computes to 0 most of
15992 * the time) when it is not set on a parent element.
15993 */
15994 var VerticalDivider = React.forwardRef(function VerticalDivider(_a, forwardedRef) {
15995 var style = _a.style, _b = _a.maxHeight, maxHeight = _b === void 0 ? 1 : _b, props = __rest$1e(_a, ["style", "maxHeight"]);
15996 var _c = useVerticalDividerHeight(maxHeight, forwardedRef), ref = _c.ref, height = _c.height;
15997 return (React__default.createElement(Divider, __assign$1r({}, props, { style: __assign$1r(__assign$1r({}, style), { height: height }), ref: ref, vertical: true })));
15998 });
15999 {
16000 try {
16001 var PropTypes$1h = require("prop-types");
16002 VerticalDivider.propTypes = {
16003 style: PropTypes$1h.object,
16004 maxHeight: PropTypes$1h.number,
16005 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
16006 // @ts-expect-error
16007 _validateMaxHeight: function (_a, _, componentName) {
16008 var _b = _a.maxHeight, maxHeight = _b === void 0 ? 1 : _b;
16009 if (maxHeight < 0) {
16010 return new Error("The maxHeight prop for `" + componentName + "` must be a number greater " +
16011 ("than 0, but received `" + maxHeight + "`."));
16012 }
16013 return null;
16014 },
16015 };
16016 }
16017 catch (e) { }
16018 }
16019
16020 var __assign$1s = (undefined && undefined.__assign) || function () {
16021 __assign$1s = Object.assign || function(t) {
16022 for (var s, i = 1, n = arguments.length; i < n; i++) {
16023 s = arguments[i];
16024 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
16025 t[p] = s[p];
16026 }
16027 return t;
16028 };
16029 return __assign$1s.apply(this, arguments);
16030 };
16031 var __rest$1f = (undefined && undefined.__rest) || function (s, e) {
16032 var t = {};
16033 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16034 t[p] = s[p];
16035 if (s != null && typeof Object.getOwnPropertySymbols === "function")
16036 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16037 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
16038 t[p[i]] = s[p[i]];
16039 }
16040 return t;
16041 };
16042 var block$W = bem("rmd-expansion-panel");
16043 /**
16044 * The header for a panel that controls the expansion state. This is really just
16045 * a simple button that displays the children before an expander icon.
16046 *
16047 * Reminder: Since this is a `<button>`, only `inline` elements should be
16048 * rendered within (so use `<span>` instead of `<div>` for children).
16049 */
16050 var ExpansionPanelHeader = React.forwardRef(function ExpansionPanelHeader(_a, ref) {
16051 var propIcon = _a.icon, expanded = _a.expanded, children = _a.children, className = _a.className, _b = _a.disableTransition, disableTransition = _b === void 0 ? false : _b, props = __rest$1f(_a, ["icon", "expanded", "children", "className", "disableTransition"]);
16052 var icon = useIcon("expander", propIcon);
16053 return (React__default.createElement(UnstyledButton, __assign$1s({}, props, { ref: ref, "aria-expanded": expanded || undefined, className: classnames(block$W("header"), className) }),
16054 children,
16055 icon && (React__default.createElement("span", { className: block$W("icon") },
16056 React__default.createElement(IconRotator, { animate: !disableTransition, rotated: expanded }, icon)))));
16057 });
16058 {
16059 try {
16060 var PropTypes$1i = require("prop-types");
16061 ExpansionPanelHeader.propTypes = {
16062 id: PropTypes$1i.string.isRequired,
16063 icon: PropTypes$1i.node,
16064 expanded: PropTypes$1i.bool.isRequired,
16065 onClick: PropTypes$1i.func.isRequired,
16066 children: PropTypes$1i.node.isRequired,
16067 className: PropTypes$1i.string,
16068 disableTransition: PropTypes$1i.bool,
16069 };
16070 }
16071 catch (e) { }
16072 }
16073
16074 var __assign$1t = (undefined && undefined.__assign) || function () {
16075 __assign$1t = Object.assign || function(t) {
16076 for (var s, i = 1, n = arguments.length; i < n; i++) {
16077 s = arguments[i];
16078 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
16079 t[p] = s[p];
16080 }
16081 return t;
16082 };
16083 return __assign$1t.apply(this, arguments);
16084 };
16085 var __rest$1g = (undefined && undefined.__rest) || function (s, e) {
16086 var t = {};
16087 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16088 t[p] = s[p];
16089 if (s != null && typeof Object.getOwnPropertySymbols === "function")
16090 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16091 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
16092 t[p[i]] = s[p[i]];
16093 }
16094 return t;
16095 };
16096 var block$X = bem("rmd-expansion-panel");
16097 /**
16098 * The expansion panel renders a header element (that is just a button) and
16099 * dynamically shows content once expanded.
16100 */
16101 var ExpansionPanel = React.forwardRef(function ExpansionPanel(_a, ref) {
16102 var className = _a.className, children = _a.children, headerStyle = _a.headerStyle, headerClassName = _a.headerClassName, contentStyle = _a.contentStyle, contentClassName = _a.contentClassName, headerRef = _a.headerRef, _b = _a.disablePadding, disablePadding = _b === void 0 ? false : _b, _c = _a.disableSecondaryColor, disableSecondaryColor = _c === void 0 ? false : _c, customHeader = _a.customHeader, header = _a.header, expanded = _a.expanded, onExpandClick = _a.onExpandClick, expanderIcon = _a.expanderIcon, _d = _a.marginTop, marginTop = _d === void 0 ? false : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? true : _e, _f = _a.persistent, persistent = _f === void 0 ? false : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, _h = _a.disableTransition, disableTransition = _h === void 0 ? false : _h, props = __rest$1g(_a, ["className", "children", "headerStyle", "headerClassName", "contentStyle", "contentClassName", "headerRef", "disablePadding", "disableSecondaryColor", "customHeader", "header", "expanded", "onExpandClick", "expanderIcon", "marginTop", "fullWidth", "persistent", "disabled", "disableTransition"]);
16103 var id = props.id;
16104 var contentId = id + "-content";
16105 return (React__default.createElement(Card, __assign$1t({}, props, { id: id + "-container", ref: ref, fullWidth: fullWidth, className: classnames(block$X({ expanded: expanded, "margin-top": marginTop }), className) }),
16106 customHeader || (React__default.createElement(ExpansionPanelHeader, { "aria-disabled": disabled || undefined, id: id, ref: headerRef, style: headerStyle, className: headerClassName, icon: expanderIcon, expanded: expanded, onClick: onExpandClick, disableTransition: disableTransition }, header)),
16107 React__default.createElement(Collapse, { collapsed: !expanded, timeout: disableTransition ? 0 : undefined, temporary: !persistent },
16108 React__default.createElement(CardContent, { id: contentId, "aria-labelledby": id, role: "region", style: contentStyle, className: contentClassName, disableSecondaryColor: disableSecondaryColor, disablePadding: disablePadding, disableExtraPadding: true }, children))));
16109 });
16110 {
16111 try {
16112 var PropTypes$1j = require("prop-types");
16113 ExpansionPanel.propTypes = {
16114 id: PropTypes$1j.string.isRequired,
16115 className: PropTypes$1j.string,
16116 disabled: PropTypes$1j.bool,
16117 children: PropTypes$1j.node,
16118 headerStyle: PropTypes$1j.object,
16119 headerClassName: PropTypes$1j.string,
16120 contentStyle: PropTypes$1j.object,
16121 contentClassName: PropTypes$1j.string,
16122 customHeader: PropTypes$1j.node,
16123 fullWidth: PropTypes$1j.bool,
16124 header: PropTypes$1j.node,
16125 headerRef: PropTypes$1j.oneOfType([
16126 PropTypes$1j.func,
16127 PropTypes$1j.shape({
16128 current: PropTypes$1j.instanceOf(HTMLButtonElement),
16129 }),
16130 ]),
16131 expanderIcon: PropTypes$1j.node,
16132 expanded: PropTypes$1j.bool.isRequired,
16133 onExpandClick: PropTypes$1j.func.isRequired,
16134 persistent: PropTypes$1j.bool,
16135 marginTop: PropTypes$1j.bool,
16136 disableTransition: PropTypes$1j.bool,
16137 disablePadding: PropTypes$1j.bool,
16138 disableSecondaryColor: PropTypes$1j.bool,
16139 };
16140 }
16141 catch (e) { }
16142 }
16143
16144 var __assign$1u = (undefined && undefined.__assign) || function () {
16145 __assign$1u = Object.assign || function(t) {
16146 for (var s, i = 1, n = arguments.length; i < n; i++) {
16147 s = arguments[i];
16148 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
16149 t[p] = s[p];
16150 }
16151 return t;
16152 };
16153 return __assign$1u.apply(this, arguments);
16154 };
16155 var __rest$1h = (undefined && undefined.__rest) || function (s, e) {
16156 var t = {};
16157 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16158 t[p] = s[p];
16159 if (s != null && typeof Object.getOwnPropertySymbols === "function")
16160 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16161 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
16162 t[p[i]] = s[p[i]];
16163 }
16164 return t;
16165 };
16166 /**
16167 * This component is honestly not very helpful since it does not apply any
16168 * styles. It is a simple wrapper for a `<div>` that updates the props to
16169 * require the `children` and `onKeyDown` props.
16170 */
16171 var ExpansionList = React.forwardRef(function ExpansionList(_a, ref) {
16172 var children = _a.children, props = __rest$1h(_a, ["children"]);
16173 return (React__default.createElement("div", __assign$1u({}, props, { ref: ref }), children));
16174 });
16175 {
16176 try {
16177 var PropTypes$1k = require("prop-types");
16178 ExpansionList.propTypes = {
16179 children: PropTypes$1k.node.isRequired,
16180 className: PropTypes$1k.string,
16181 onKeyDown: PropTypes$1k.func.isRequired,
16182 };
16183 }
16184 catch (e) { }
16185 }
16186
16187 /**
16188 * @private
16189 */
16190 var attemptFocus = function (index, panels) {
16191 var _a;
16192 var panel = (_a = panels[index]) === null || _a === void 0 ? void 0 : _a.headerRef.current;
16193 if (panel) {
16194 panel.focus();
16195 }
16196 };
16197 /**
16198 * This hook is used to control the expansion of a list of panels along with
16199 * providing some of the required props for each panel. This hook will provide
16200 * an ordered list of:
16201 *
16202 * - the list of panel props that include the `id`, `key`, `expanded`, and
16203 * `onExpandChange`.
16204 * - a keydown event handler to pass to a parent component (normally the
16205 * ExpansionList) to allow keyboard movement with the arrow keys, and home+end
16206 * keys. This should only be used when there are multiple panels.
16207 * - the current list of panel ids that are expanded
16208 * - the React setState dispatcher for controlling the expanded list of ids
16209 * manually if desired
16210 * - a function to create a handler for toggling the expansion of a specific
16211 * panel
16212 *
16213 * This hook is usually used to control a list of expansion panels, but can also
16214 * control a single panel if desired.
16215 *
16216 * Examples:
16217 *
16218 * Single panel:
16219 *
16220 * ```tsx
16221 * const [panels] = usePanels({ count: 1, idPrefix: "my-panel" });
16222 * // since the count is one, it'll just be a list of only one panel props
16223 * const [panelProps] = panels;
16224 *
16225 * return (
16226 * <ExpansionPanel {...panelProps}>
16227 * Content within the panel...
16228 * </ExpansionPanel>
16229 * );
16230 * ```
16231 *
16232 * Multiple Panels:
16233 *
16234 * ```tsx
16235 * const [panels, onKeyDown] = usePanels({ count: 3, idPrefix: "panel-list" });
16236 *
16237 * const [panel1Props, panel2Props, panel3Props] = panels;
16238 *
16239 * return (
16240 * <ExpansionList onKeyDown={onKeyDown}>
16241 * <ExpansionPanel {...panel1Props}>
16242 * Panel 1 Content...
16243 * </ExpansionPanel>
16244 * <ExpansionPanel {...panel2Props}>
16245 * Panel 2 Content...
16246 * </ExpansionPanel>
16247 * <ExpansionPanel {...panel3Props}>
16248 * Panel 3 Content...
16249 * </ExpansionPanel>
16250 * </ExpansionList>
16251 * );
16252 * ```
16253 */
16254 function usePanels(_a) {
16255 var idPrefix = _a.idPrefix, count = _a.count, _b = _a.multiple, multiple = _b === void 0 ? false : _b, _c = _a.preventAllClosed, preventAllClosed = _c === void 0 ? false : _c, defaultExpandedIndex = _a.defaultExpandedIndex;
16256 {
16257 if (count < 1) {
16258 throw new RangeError("The `count` must be greater than `0`");
16259 }
16260 if (typeof defaultExpandedIndex === "number" &&
16261 defaultExpandedIndex >= count) {
16262 throw new RangeError("The `defaultExpandedIndex` must be less than or equal to the `count`");
16263 }
16264 if (typeof defaultExpandedIndex === "number" && defaultExpandedIndex < -1) {
16265 throw new RangeError("The `defaultExpandedIndex` must be greater than or equal to `-1`");
16266 }
16267 if (Array.isArray(defaultExpandedIndex)) {
16268 var greater = defaultExpandedIndex.filter(function (i) { return i > count; });
16269 if (greater.length) {
16270 throw new RangeError("The `defaultExpandedIndex` array must contain numbers less than the `count`");
16271 }
16272 var lessThan = defaultExpandedIndex.filter(function (i) { return i < 0; });
16273 if (lessThan.length) {
16274 throw new RangeError("The `defaultExpandedIndex` array must contain numbers greater than or equal to `0`");
16275 }
16276 }
16277 }
16278 var panels = React.useMemo(function () {
16279 return Array.from({ length: count }, function (_, i) { return ({
16280 id: idPrefix + "-" + (i + 1),
16281 headerRef: React.createRef(),
16282 }); });
16283 }, [idPrefix, count]);
16284 var _d = React.useState(function () {
16285 if (typeof defaultExpandedIndex === "undefined") {
16286 return preventAllClosed ? [panels[0].id] : [];
16287 }
16288 if (typeof defaultExpandedIndex === "number") {
16289 return defaultExpandedIndex === -1
16290 ? panels.map(function (_a) {
16291 var id = _a.id;
16292 return id;
16293 })
16294 : [panels[Math.min(defaultExpandedIndex, panels.length)].id];
16295 }
16296 return panels
16297 .filter(function (_, i) { return defaultExpandedIndex.includes(i); })
16298 .map(function (_a) {
16299 var id = _a.id;
16300 return id;
16301 });
16302 }), expandedIds = _d[0], setExpandedIds = _d[1];
16303 var createExpandClick = function (panelId) { return function () {
16304 setExpandedIds(function (prevIds) {
16305 var i = prevIds.indexOf(panelId);
16306 if (!multiple) {
16307 if (prevIds[0] === panelId && prevIds.length === 1) {
16308 return preventAllClosed ? prevIds : [];
16309 }
16310 return [panelId];
16311 }
16312 var nextSelectedIds = prevIds.slice();
16313 if (i === -1) {
16314 nextSelectedIds.push(panelId);
16315 }
16316 else {
16317 nextSelectedIds.splice(i, 1);
16318 }
16319 if (preventAllClosed && nextSelectedIds.length === 0) {
16320 return [panelId];
16321 }
16322 return nextSelectedIds;
16323 });
16324 }; };
16325 var previousExpanded = false;
16326 var panelPropList = panels.map(function (_a, i) {
16327 var id = _a.id, headerRef = _a.headerRef;
16328 var expanded = expandedIds.includes(id);
16329 var marginTop = i > 0 && (expanded || previousExpanded);
16330 previousExpanded = expanded;
16331 return {
16332 id: id,
16333 disabled: expanded && preventAllClosed && expandedIds.length === 1,
16334 expanded: expanded,
16335 headerRef: headerRef,
16336 marginTop: marginTop,
16337 onExpandClick: createExpandClick(id),
16338 };
16339 });
16340 var onKeyDown = React.useCallback(function (event) {
16341 if (event.shiftKey || event.ctrlKey || event.metaKey || event.altKey) {
16342 return;
16343 }
16344 var key = event.key;
16345 var increment = key === "ArrowDown";
16346 var decrement = key === "ArrowUp";
16347 var jumpToFirst = key === "Home";
16348 var jumpToLast = key === "End";
16349 if (!increment && !decrement && !jumpToFirst && !jumpToLast) {
16350 return;
16351 }
16352 var currentIndex = panels.findIndex(function (_a) {
16353 var headerRef = _a.headerRef;
16354 return event.target === headerRef.current;
16355 });
16356 if (currentIndex === -1) {
16357 return;
16358 }
16359 // don't want page scroll behavior
16360 event.preventDefault();
16361 if (jumpToFirst) {
16362 attemptFocus(0, panels);
16363 return;
16364 }
16365 if (jumpToLast) {
16366 attemptFocus(panels.length - 1, panels);
16367 return;
16368 }
16369 attemptFocus(loop(currentIndex, panels.length - 1, increment), panels);
16370 }, [panels]);
16371 return [
16372 panelPropList,
16373 onKeyDown,
16374 expandedIds,
16375 setExpandedIds,
16376 createExpandClick,
16377 ];
16378 }
16379
16380 var DEFAULT_TOOLTIP_CLASSNAMES = {
16381 appear: "rmd-tooltip--enter",
16382 appearActive: "rmd-tooltip--visible",
16383 enter: "rmd-tooltip--enter",
16384 enterActive: "rmd-tooltip--visible",
16385 enterDone: "rmd-tooltip--visible",
16386 exit: "rmd-tooltip--visible rmd-tooltip--exit",
16387 exitActive: "rmd-tooltip--exit-active",
16388 };
16389 var DEFAULT_TOOLTIP_TIMEOUT = {
16390 enter: 200,
16391 exit: 150,
16392 };
16393 var DEFAULT_TOOLTIP_DELAY = 1000;
16394 var DEFAULT_TOOLTIP_THRESHOLD = 0.75;
16395
16396 var __assign$1v = (undefined && undefined.__assign) || function () {
16397 __assign$1v = Object.assign || function(t) {
16398 for (var s, i = 1, n = arguments.length; i < n; i++) {
16399 s = arguments[i];
16400 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
16401 t[p] = s[p];
16402 }
16403 return t;
16404 };
16405 return __assign$1v.apply(this, arguments);
16406 };
16407 var __rest$1i = (undefined && undefined.__rest) || function (s, e) {
16408 var t = {};
16409 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16410 t[p] = s[p];
16411 if (s != null && typeof Object.getOwnPropertySymbols === "function")
16412 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16413 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
16414 t[p[i]] = s[p[i]];
16415 }
16416 return t;
16417 };
16418 var block$Y = bem("rmd-tooltip");
16419 /**
16420 * This is the base tooltip component that can only be used to render a tooltip
16421 * with an animation when the visibility changes. If this component is used, you
16422 * will need to manually add all the event listeners and triggers to change the
16423 * `visible` prop.
16424 */
16425 var Tooltip = React.forwardRef(function Tooltip(_a, ref) {
16426 var _b;
16427 var className = _a.className, _c = _a.classNames, classNames = _c === void 0 ? DEFAULT_TOOLTIP_CLASSNAMES : _c, visible = _a.visible, _d = _a.timeout, timeout = _d === void 0 ? DEFAULT_TOOLTIP_TIMEOUT : _d, _e = _a.dense, dense = _e === void 0 ? false : _e, _f = _a.lineWrap, lineWrap = _f === void 0 ? true : _f, _g = _a.position, position = _g === void 0 ? "below" : _g, children = _a.children, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, _h = _a.mountOnEnter, mountOnEnter = _h === void 0 ? true : _h, _j = _a.unmountOnExit, unmountOnExit = _j === void 0 ? true : _j, props = __rest$1i(_a, ["className", "classNames", "visible", "timeout", "dense", "lineWrap", "position", "children", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "mountOnEnter", "unmountOnExit"]);
16428 return (React__default.createElement(CSSTransition, { classNames: classNames, in: visible, timeout: timeout, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit },
16429 React__default.createElement("span", __assign$1v({}, props, { ref: ref, role: "tooltip", className: classnames(block$Y((_b = {
16430 dense: dense,
16431 "line-wrap": lineWrap,
16432 "dense-line-wrap": dense && lineWrap
16433 },
16434 _b[position] = true,
16435 _b)), className) }), children)));
16436 });
16437 {
16438 try {
16439 var PropTypes$1l = require("prop-types");
16440 Tooltip.propTypes = {
16441 id: PropTypes$1l.string.isRequired,
16442 style: PropTypes$1l.object,
16443 className: PropTypes$1l.string,
16444 children: PropTypes$1l.node.isRequired,
16445 dense: PropTypes$1l.bool,
16446 lineWrap: PropTypes$1l.bool,
16447 classNames: PropTypes$1l.oneOfType([
16448 PropTypes$1l.string,
16449 PropTypes$1l.shape({
16450 appear: PropTypes$1l.string,
16451 appearActive: PropTypes$1l.string,
16452 enter: PropTypes$1l.string,
16453 enterActive: PropTypes$1l.string,
16454 enterDone: PropTypes$1l.string,
16455 exit: PropTypes$1l.string,
16456 exitActive: PropTypes$1l.string,
16457 exitDone: PropTypes$1l.string,
16458 }),
16459 ]),
16460 timeout: PropTypes$1l.oneOfType([
16461 PropTypes$1l.number,
16462 PropTypes$1l.shape({
16463 enter: PropTypes$1l.number,
16464 exit: PropTypes$1l.number,
16465 }),
16466 ]),
16467 onEnter: PropTypes$1l.func,
16468 onEntering: PropTypes$1l.func,
16469 onEntered: PropTypes$1l.func,
16470 onExit: PropTypes$1l.func,
16471 onExiting: PropTypes$1l.func,
16472 onExited: PropTypes$1l.func,
16473 mountOnEnter: PropTypes$1l.bool,
16474 unmountOnExit: PropTypes$1l.bool,
16475 position: PropTypes$1l.oneOf(["above", "below", "left", "right"]),
16476 visible: PropTypes$1l.bool.isRequired,
16477 };
16478 }
16479 catch (e) { }
16480 }
16481
16482 /**
16483 * This is a private hook that is used to cache and update the tooltip delay
16484 * context state when needed.
16485 *
16486 * @param defaultDelay The default delay to use for all tooltips
16487 * @return the tooltip delay state
16488 */
16489 function useTooltipHoverModeState(defaultDelay, delayTimeout) {
16490 var _a = React.useState(defaultDelay), delay = _a[0], setDelay = _a[1];
16491 var delayRef = useRefCache(delay);
16492 var disable = React.useCallback(function () {
16493 if (delayRef.current === 0) {
16494 setDelay(defaultDelay);
16495 }
16496 // disabled since useRefCache
16497 // eslint-disable-next-line react-hooks/exhaustive-deps
16498 }, [defaultDelay]);
16499 var _b = useTimeout(disable, delayTimeout), start = _b[0], stop = _b[1];
16500 var enable = React.useCallback(function () {
16501 stop();
16502 if (delayRef.current !== 0) {
16503 setDelay(0);
16504 }
16505 // disabled since useRefCache
16506 // eslint-disable-next-line react-hooks/exhaustive-deps
16507 }, [stop]);
16508 return {
16509 delay: delay,
16510 enable: enable,
16511 startDisableTimer: start,
16512 };
16513 }
16514 /**
16515 * This keeps track of the current "immediate" delay to use for all child
16516 * tooltip components. When the `enable` function is called, this is updated to
16517 * be `0` so tooltips can appear immediately on hover.
16518 */
16519 var HoverModeDelay = React.createContext(DEFAULT_TOOLTIP_DELAY);
16520 /**
16521 * Contains the actions to enable or start disabling the immediate mode for
16522 * tooltips.
16523 */
16524 var HoverModeActions = React.createContext({
16525 enable: function () { },
16526 startDisableTimer: function () { },
16527 });
16528 /**
16529 * Keeps track of if the immediate mode is enabled. This allows for easy
16530 * configuration of the app by automatically enabling hover mode functionality
16531 * if the `ImmediateTooltipConfig` is in your app.
16532 */
16533 var HoverModeEnabled = React.createContext(false);
16534 /**
16535 * This hook returns the current delay timeout. This probably shouldn't be used
16536 * much outside of this package.
16537 * @private
16538 */
16539 function useTooltipHoverModeDelay() {
16540 return React.useContext(HoverModeDelay);
16541 }
16542 /**
16543 * This hook returns the actions to enable the hover mode as well as start a
16544 * timer to disable it.
16545 * @private
16546 */
16547 function useTooltipHoverModeActions() {
16548 return React.useContext(HoverModeActions);
16549 }
16550 /**
16551 * @private
16552 */
16553 function useTooltipHoverModeEnabled() {
16554 return React.useContext(HoverModeEnabled);
16555 }
16556
16557 /**
16558 * This handles creating and returning the required mouse event listeners to
16559 * show and hide tooltips as needed. If there were any mouse event listeners
16560 * passed in, they will be merged with the tooltip logic automatically and
16561 * memoized.
16562 */
16563 function useMouseState(_a) {
16564 var mode = _a.mode, showTooltip = _a.showTooltip, hideTooltip = _a.hideTooltip, initiated = _a.initiated, setInitiated = _a.setInitiated, propDelay = _a.delay, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, setEstimatedPosition = _a.setEstimatedPosition, disableHoverMode = _a.disableHoverMode;
16565 var handlers = useRefCache({ onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave });
16566 var isHoverModeable = useTooltipHoverModeEnabled();
16567 if (typeof disableHoverMode === "boolean") {
16568 isHoverModeable = !disableHoverMode;
16569 }
16570 var delay = useTooltipHoverModeDelay();
16571 if (!isHoverModeable) {
16572 delay = propDelay;
16573 }
16574 var hoverModeActions = useTooltipHoverModeActions();
16575 var _b = useTimeout(function () {
16576 if (initiated.current === "mouse") {
16577 showTooltip();
16578 if (isHoverModeable) {
16579 hoverModeActions.enable();
16580 }
16581 }
16582 }, delay), start = _b[0], stop = _b[1];
16583 var handleMouseEnter = React.useCallback(function (event) {
16584 var onMouseEnter = handlers.current.onMouseEnter;
16585 if (onMouseEnter) {
16586 onMouseEnter(event);
16587 }
16588 if (initiated.current !== null) {
16589 return;
16590 }
16591 setInitiated("mouse");
16592 setEstimatedPosition(event.currentTarget);
16593 start();
16594 }, [setEstimatedPosition, setInitiated, start, handlers, initiated]);
16595 var handleMouseLeave = React.useCallback(function (event) {
16596 var onMouseLeave = handlers.current.onMouseLeave;
16597 if (onMouseLeave) {
16598 onMouseLeave(event);
16599 }
16600 if (initiated.current !== "mouse") {
16601 return;
16602 }
16603 stop();
16604 hideTooltip();
16605 if (isHoverModeable) {
16606 hoverModeActions.startDisableTimer();
16607 }
16608 }, [isHoverModeable, handlers, hideTooltip, hoverModeActions, initiated, stop]);
16609 return [
16610 stop,
16611 mode !== "touch" ? handleMouseEnter : onMouseEnter,
16612 mode !== "touch" ? handleMouseLeave : onMouseLeave,
16613 ];
16614 }
16615 /**
16616 * This handles creating and returning the required keyboard event listeners to
16617 * show and hide tooltips as needed. If there were any keyboard event listeners
16618 * passed in, they will be merged with the tooltip logic automatically and
16619 * memoized.
16620 */
16621 function useKeyboardState(_a) {
16622 var mode = _a.mode, showTooltip = _a.showTooltip, hideTooltip = _a.hideTooltip, delay = _a.delay, initiated = _a.initiated, setInitiated = _a.setInitiated, onFocus = _a.onFocus, onBlur = _a.onBlur, onKeyDown = _a.onKeyDown, setEstimatedPosition = _a.setEstimatedPosition;
16623 var handlers = useRefCache({ onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown });
16624 var isWindowBlurred = React.useRef(false);
16625 var _b = useTimeout(function () {
16626 if (initiated.current === "keyboard") {
16627 showTooltip();
16628 }
16629 }, delay), start = _b[0], stop = _b[1];
16630 var handleFocus = React.useCallback(function (event) {
16631 var onFocus = handlers.current.onFocus;
16632 if (onFocus) {
16633 onFocus(event);
16634 }
16635 // if the entire browser window was blurred, we don't want to show the
16636 // tooltip on the next focus event since it is confusing to see a tooltip
16637 // appear again after re-focusing a window.
16638 if (isWindowBlurred.current) {
16639 isWindowBlurred.current = false;
16640 return;
16641 }
16642 setInitiated("keyboard");
16643 setEstimatedPosition(event.currentTarget);
16644 start();
16645 },
16646 // disabled since useRefCache for handlers
16647 // eslint-disable-next-line react-hooks/exhaustive-deps
16648 [setEstimatedPosition, setInitiated, start]);
16649 var handleBlur = React.useCallback(function (event) {
16650 var onBlur = handlers.current.onBlur;
16651 if (onBlur) {
16652 onBlur(event);
16653 }
16654 stop();
16655 hideTooltip();
16656 },
16657 // disabled since useRefCache for handlers
16658 // eslint-disable-next-line react-hooks/exhaustive-deps
16659 [hideTooltip, stop]);
16660 var handleKeyDown = React.useCallback(function (event) {
16661 var onKeyDown = handlers.current.onKeyDown;
16662 if (onKeyDown) {
16663 onKeyDown(event);
16664 }
16665 if (initiated.current === "keyboard" && event.key === "Escape") {
16666 stop();
16667 hideTooltip();
16668 }
16669 },
16670 // disabled since both initiated and handlers are refs
16671 // eslint-disable-next-line react-hooks/exhaustive-deps
16672 [hideTooltip, stop]);
16673 React.useEffect(function () {
16674 if (mode !== "keyboard") {
16675 return;
16676 }
16677 // whenever the browser loses focus, need to ensure that when the browser is
16678 // re-focused the last focused element (that had a tooltip) does not make
16679 // the tooltip appear
16680 var handleWindowBlur = function () {
16681 if (document.hidden) {
16682 isWindowBlurred.current = true;
16683 hideTooltip();
16684 }
16685 else {
16686 window.requestAnimationFrame(function () {
16687 isWindowBlurred.current = false;
16688 });
16689 }
16690 };
16691 window.addEventListener("visibilitychange", handleWindowBlur);
16692 return function () {
16693 window.removeEventListener("visibilitychange", handleWindowBlur);
16694 };
16695 }, [mode, hideTooltip]);
16696 return [
16697 stop,
16698 mode === "keyboard" ? handleFocus : onFocus,
16699 mode === "keyboard" ? handleBlur : onBlur,
16700 mode === "keyboard" ? handleKeyDown : onKeyDown,
16701 ];
16702 }
16703 /**
16704 * This handles creating and returning the required touch event listeners to
16705 * show and hide tooltips as needed. If there were any touch event listeners
16706 * passed in, they will be merged with the tooltip logic automatically and
16707 * memoized.
16708 *
16709 * Tooltips on touch devices are a bit different than mouse and keyboard. Since
16710 * tooltips appear after a long press on mobile and long presses on mobile cause
16711 * a context menu to appear, no timeouts for showing the tooltip are started
16712 * after a touchstart event. The tooltip will only appear after a contextmenu
16713 * event which has the default behavior prevented so the tooltip appears
16714 * instead. After the tooltip appears, it will stay visible as long as the user
16715 * keeps their finger on their phone. Once they remove their finger, the tooltip
16716 * will be visible for another `x`ms to make it easier to read without their
16717 * finger in the way and finally hide.
16718 */
16719 function useTouchState(_a) {
16720 var mode = _a.mode, visible = _a.visible, showTooltip = _a.showTooltip, hideTooltip = _a.hideTooltip, delay = _a.delay, setInitiated = _a.setInitiated, onTouchStart = _a.onTouchStart, onTouchMove = _a.onTouchMove, onContextMenu = _a.onContextMenu, setEstimatedPosition = _a.setEstimatedPosition;
16721 var touched = React.useRef(false);
16722 var handlers = useRefCache({ onTouchStart: onTouchStart, onTouchMove: onTouchMove, onContextMenu: onContextMenu });
16723 var _b = useTimeout(function () {
16724 touched.current = false;
16725 hideTooltip();
16726 }, delay), start = _b[0], stop = _b[1];
16727 React.useEffect(function () {
16728 if (!visible) {
16729 return;
16730 }
16731 if (mode !== "touch") {
16732 touched.current = false;
16733 return;
16734 }
16735 var cb = function () {
16736 start();
16737 window.removeEventListener("touchend", cb, true);
16738 };
16739 window.addEventListener("touchend", cb, true);
16740 return function () {
16741 window.removeEventListener("touchend", cb, true);
16742 };
16743 // disabled since it should only be updated on visible or touch changes
16744 // eslint-disable-next-line react-hooks/exhaustive-deps
16745 }, [visible, mode]);
16746 var handleTouchStart = React.useCallback(function (event) {
16747 var onTouchStart = handlers.current.onTouchStart;
16748 if (onTouchStart) {
16749 onTouchStart(event);
16750 }
16751 touched.current = true;
16752 stop();
16753 setEstimatedPosition(event.currentTarget);
16754 },
16755 // disabled since useRefCache for handlers
16756 // eslint-disable-next-line react-hooks/exhaustive-deps
16757 [setEstimatedPosition, stop]);
16758 var handleTouchMove = React.useCallback(function (event) {
16759 var onTouchMove = handlers.current.onTouchMove;
16760 if (onTouchMove) {
16761 onTouchMove(event);
16762 }
16763 touched.current = false;
16764 },
16765 // disabled since useRefCache for handlers
16766 // eslint-disable-next-line react-hooks/exhaustive-deps
16767 []);
16768 var handleContextMenu = React.useCallback(function (event) {
16769 var onContextMenu = handlers.current.onContextMenu;
16770 if (onContextMenu) {
16771 onContextMenu(event);
16772 }
16773 if (!touched.current) {
16774 return;
16775 }
16776 // need to prevent the context menu from appearing and instead show the tooltip
16777 event.preventDefault();
16778 // since the context menu might also select text by default, we want to deselect any
16779 // selected text if it is within the container element
16780 var selection = window.getSelection();
16781 var selectionNode = selection && selection.anchorNode && selection.anchorNode.parentElement;
16782 if (selection &&
16783 selectionNode &&
16784 event.currentTarget.contains(selectionNode)) {
16785 selection.empty();
16786 }
16787 setInitiated("touch");
16788 showTooltip();
16789 },
16790 // disabled since useRefCache for handlers
16791 // eslint-disable-next-line react-hooks/exhaustive-deps
16792 [setInitiated, showTooltip]);
16793 return [
16794 stop,
16795 handleTouchStart,
16796 handleTouchMove,
16797 mode === "touch" ? handleContextMenu : onContextMenu,
16798 ];
16799 }
16800
16801 var NOOP = function () { };
16802 /**
16803 * A small hook that will set the tooltip position automatically based on the
16804 * container element's location within the viewport. However, if the `position`
16805 * option/prop was provided, that value will always be used instead.
16806 */
16807 function usePosition(_a) {
16808 var determinedPosition = _a.position, defaultPosition = _a.defaultPosition, threshold = _a.threshold;
16809 var _b = React.useState(defaultPosition), position = _b[0], setPosition = _b[1];
16810 var prevPosition = useRefCache(position);
16811 /**
16812 * This will only be used when the `determinedPosition` is undefined. When the
16813 * container element starts the tooltip "visibility" mode, this will be called
16814 * so that we can best guess what the position of the tooltip should be based
16815 * on the current position of the container element within the viewport. If
16816 * this isn't done and the tooltip swaps position due to the positioning
16817 * logic, the animation will be reversed.
16818 */
16819 var setEstimatedPosition = React.useCallback(function (container) {
16820 var _a = container.getBoundingClientRect(), top = _a.top, left = _a.left;
16821 var nextPosition = defaultPosition;
16822 var vh = getViewportSize("height");
16823 var vw = getViewportSize("width");
16824 switch (defaultPosition) {
16825 case "above":
16826 if (top < vh - vh * threshold) {
16827 nextPosition = "below";
16828 }
16829 break;
16830 case "below":
16831 if (top > vh * threshold) {
16832 nextPosition = "above";
16833 }
16834 break;
16835 case "left":
16836 if (left < vw - vw * threshold) {
16837 nextPosition = "right";
16838 }
16839 break;
16840 case "right":
16841 if (left > vw * threshold) {
16842 nextPosition = "left";
16843 }
16844 break;
16845 // no default
16846 }
16847 if (prevPosition.current !== nextPosition) {
16848 setPosition(nextPosition);
16849 }
16850 },
16851 // disabled since useRefCache for prevPosition
16852 // eslint-disable-next-line react-hooks/exhaustive-deps
16853 [defaultPosition, threshold]);
16854 if (typeof determinedPosition !== "undefined") {
16855 return {
16856 position: determinedPosition,
16857 setEstimatedPosition: NOOP,
16858 };
16859 }
16860 return {
16861 position: position,
16862 setEstimatedPosition: setEstimatedPosition,
16863 };
16864 }
16865
16866 /**
16867 * This hook will call the `onShow` and `onHide` functions as needed based on
16868 * the current interaction mode and the visibility of the tooltip.
16869 *
16870 * @private
16871 */
16872 function useVisiblityChange(_a) {
16873 var onShow = _a.onShow, onHide = _a.onHide, visible = _a.visible, mode = _a.mode;
16874 var handlers = useRefCache({ onShow: onShow, onHide: onHide });
16875 React.useEffect(function () {
16876 if (!visible || mode === null) {
16877 return;
16878 }
16879 var _a = handlers.current, onShow = _a.onShow, onHide = _a.onHide;
16880 if (onShow) {
16881 onShow(mode);
16882 }
16883 return function () {
16884 if (onHide) {
16885 onHide();
16886 }
16887 };
16888 // only want to trigger on visibility changes
16889 // eslint-disable-next-line react-hooks/exhaustive-deps
16890 }, [visible]);
16891 }
16892
16893 /**
16894 * When the tooltip becomes visible, the tooltip should be hidden if any element
16895 * within the page is clicked, or the browser is blurred. This hook will just
16896 * add the required event listeners to hide the tooltip.
16897 *
16898 * Whent he entire window is blurred, we start a different flow to ensure that a
16899 * tooltip won't appear when the window is re-focused. Without this flow, a
16900 * keyboard user that had focused a tooltippable element will have the tooltip
16901 * appear again after `x`ms which is not wanted. The user will need to manually
16902 * re-focus the tooltippable element to show a tooltip again.
16903 */
16904 function useOtherInteractionDisable(initiated, hideTooltip) {
16905 React.useEffect(function () {
16906 if (!initiated) {
16907 return;
16908 }
16909 window.addEventListener("mousedown", hideTooltip, true);
16910 window.addEventListener("click", hideTooltip, true);
16911 return function () {
16912 window.removeEventListener("mousedown", hideTooltip, true);
16913 window.removeEventListener("click", hideTooltip, true);
16914 };
16915 }, [initiated, hideTooltip]);
16916 }
16917 /**
16918 * This is a reusable hook that allows you to have all the event listeners and
16919 * visibility logic of toolips so it can be used for any component. This is
16920 * extremely helpful for when you want to create more complex tooltips (like
16921 * dialogs).
16922 *
16923 * The tooltip state flow is pretty complex, so here's a quick run down of some
16924 * of the logic:
16925 * - the tooltip can only be shown by mouse, keyboard, or touch and can only be
16926 * closed by the same "initiation" type. So basically if the tooltip was shown
16927 * via mouse, it can only be closed by mouse as well.
16928 * - if the user resizes the window, scrolls the page, clicks anywhere on the
16929 * page, switches tabs/ blurs the browser window while the tooltip is visible,
16930 * the tooltip will be hidden.
16931 * - a keyboard user can hide the tooltip by pressing the escape key after it
16932 * was shown by focusing the element
16933 *
16934 * Since the tooltip can appear above or below the element, the position of the
16935 * tooltip must be determined before the tooltip becomes visible or else the
16936 * animation will be in the wrong direction. So when one of the starting
16937 * interaction types happen to the container element, the initial position is
16938 * "guessed" based on the current viewport height and the position of the
16939 * container element within the viewport.
16940 */
16941 function useTooltipState(_a) {
16942 var propPosition = _a.position, defaultPosition = _a.defaultPosition, _b = _a.positionThreshold, positionThreshold = _b === void 0 ? DEFAULT_TOOLTIP_THRESHOLD : _b, _c = _a.hoverDelay, hoverDelay = _c === void 0 ? DEFAULT_TOOLTIP_DELAY : _c, _d = _a.touchTimeout, touchTimeout = _d === void 0 ? DEFAULT_TOOLTIP_DELAY : _d, _e = _a.focusDelay, focusDelay = _e === void 0 ? DEFAULT_TOOLTIP_DELAY : _e, disableHoverMode = _a.disableHoverMode, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, onTouchStart = _a.onTouchStart, onTouchMove = _a.onTouchMove, onFocus = _a.onFocus, onBlur = _a.onBlur, onKeyDown = _a.onKeyDown, onShow = _a.onShow, onHide = _a.onHide;
16943 var mode = useUserInteractionMode();
16944 var initiated = React.useRef(null);
16945 var setInitiated = React.useCallback(function (initiatedBy) {
16946 initiated.current = initiatedBy;
16947 }, []);
16948 var _f = useToggle(false), visible = _f[0], showTooltip = _f[1], hide = _f[2];
16949 var hideTooltip = React.useCallback(function () {
16950 initiated.current = null;
16951 hide();
16952 }, [hide]);
16953 useVisiblityChange({
16954 visible: visible,
16955 onShow: onShow,
16956 onHide: onHide,
16957 mode: initiated.current,
16958 });
16959 var _g = usePosition({
16960 position: propPosition,
16961 defaultPosition: defaultPosition,
16962 threshold: positionThreshold,
16963 }), position = _g.position, setEstimatedPosition = _g.setEstimatedPosition;
16964 var _h = useMouseState({
16965 mode: mode,
16966 showTooltip: showTooltip,
16967 hideTooltip: hideTooltip,
16968 delay: hoverDelay,
16969 disableHoverMode: disableHoverMode,
16970 initiated: initiated,
16971 setInitiated: setInitiated,
16972 onMouseEnter: onMouseEnter,
16973 onMouseLeave: onMouseLeave,
16974 setEstimatedPosition: setEstimatedPosition,
16975 }), stopMouseTimer = _h[0], handleMouseEnter = _h[1], handleMouseLeave = _h[2];
16976 var _j = useKeyboardState({
16977 mode: mode,
16978 showTooltip: showTooltip,
16979 hideTooltip: hideTooltip,
16980 delay: focusDelay,
16981 initiated: initiated,
16982 setInitiated: setInitiated,
16983 onFocus: onFocus,
16984 onBlur: onBlur,
16985 onKeyDown: onKeyDown,
16986 setEstimatedPosition: setEstimatedPosition,
16987 }), stopKeyboardTimer = _j[0], handleFocus = _j[1], handleBlur = _j[2], handleKeyDown = _j[3];
16988 var _k = useTouchState({
16989 mode: mode,
16990 visible: visible,
16991 showTooltip: showTooltip,
16992 hideTooltip: hideTooltip,
16993 delay: touchTimeout,
16994 initiated: initiated,
16995 setInitiated: setInitiated,
16996 onTouchStart: onTouchStart,
16997 onTouchMove: onTouchMove,
16998 setEstimatedPosition: setEstimatedPosition,
16999 }), stopTouchTimer = _k[0], handleTouchStart = _k[1], handleTouchMove = _k[2], handleContextMenu = _k[3];
17000 var hideAndReset = React.useCallback(function () {
17001 stopMouseTimer();
17002 stopKeyboardTimer();
17003 stopTouchTimer();
17004 hide();
17005 }, [stopMouseTimer, stopKeyboardTimer, stopTouchTimer, hide]);
17006 useOtherInteractionDisable(initiated.current, hideAndReset);
17007 return {
17008 hide: hide,
17009 visible: visible,
17010 position: position,
17011 handlers: {
17012 onMouseEnter: handleMouseEnter,
17013 onMouseLeave: handleMouseLeave,
17014 onFocus: handleFocus,
17015 onBlur: handleBlur,
17016 onKeyDown: handleKeyDown,
17017 onTouchStart: handleTouchStart,
17018 onTouchMove: handleTouchMove,
17019 onContextMenu: handleContextMenu,
17020 },
17021 };
17022 }
17023
17024 var __assign$1w = (undefined && undefined.__assign) || function () {
17025 __assign$1w = Object.assign || function(t) {
17026 for (var s, i = 1, n = arguments.length; i < n; i++) {
17027 s = arguments[i];
17028 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17029 t[p] = s[p];
17030 }
17031 return t;
17032 };
17033 return __assign$1w.apply(this, arguments);
17034 };
17035 var __rest$1j = (undefined && undefined.__rest) || function (s, e) {
17036 var t = {};
17037 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17038 t[p] = s[p];
17039 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17040 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17041 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17042 t[p[i]] = s[p[i]];
17043 }
17044 return t;
17045 };
17046 var MERGABLE_PROPS = [
17047 "onMouseEnter",
17048 "onMouseLeave",
17049 "onTouchStart",
17050 "onTouchMove",
17051 "onFocus",
17052 "onKeyDown",
17053 "onContextMenu",
17054 ];
17055 /**
17056 * The `Tooltipped` component can be used to dynamically add a tooltip to child
17057 * element by cloning the required event handlers and accessibility props into
17058 * the child with `React.cloneChild`.
17059 */
17060 function Tooltipped(_a) {
17061 var id = _a.id, children = _a.children, tooltipChildren = _a.tooltip, _b = _a.dense, dense = _b === void 0 ? false : _b, _c = _a.vhMargin, vhMargin = _c === void 0 ? 16 : _c, _d = _a.vwMargin, vwMargin = _d === void 0 ? 16 : _d, _e = _a.hoverDelay, hoverDelay = _e === void 0 ? DEFAULT_TOOLTIP_DELAY : _e, _f = _a.focusDelay, focusDelay = _f === void 0 ? DEFAULT_TOOLTIP_DELAY : _f, _g = _a.touchTimeout, touchTimeout = _g === void 0 ? DEFAULT_TOOLTIP_DELAY : _g, _h = _a.spacing, spacing = _h === void 0 ? "1.5rem" : _h, _j = _a.denseSpacing, denseSpacing = _j === void 0 ? "0.875rem" : _j, propPosition = _a.position, _k = _a.positionThreshold, positionThreshold = _k === void 0 ? DEFAULT_TOOLTIP_THRESHOLD : _k, _l = _a.portal, portal = _l === void 0 ? true : _l, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, onTouchStart = _a.onTouchStart, onTouchMove = _a.onTouchMove, onContextMenu = _a.onContextMenu, onFocus = _a.onFocus, onKeyDown = _a.onKeyDown, onShow = _a.onShow, onHide = _a.onHide, disableHoverMode = _a.disableHoverMode, describedBy = _a["aria-describedby"], _m = _a.defaultPosition, defaultPosition = _m === void 0 ? "below" : _m, disableSwapping = _a.disableSwapping, _o = _a.mountOnEnter, mountOnEnter = _o === void 0 ? true : _o, _p = _a.unmountOnExit, unmountOnExit = _p === void 0 ? true : _p, _q = _a.disableAutoSpacing, disableAutoSpacing = _q === void 0 ? undefined === "test" : _q, props = __rest$1j(_a, ["id", "children", "tooltip", "dense", "vhMargin", "vwMargin", "hoverDelay", "focusDelay", "touchTimeout", "spacing", "denseSpacing", "position", "positionThreshold", "portal", "portalInto", "portalIntoId", "onMouseEnter", "onMouseLeave", "onTouchStart", "onTouchMove", "onContextMenu", "onFocus", "onKeyDown", "onShow", "onHide", "disableHoverMode", "aria-describedby", "defaultPosition", "disableSwapping", "mountOnEnter", "unmountOnExit", "disableAutoSpacing"]);
17062 var _r = useTooltipState({
17063 position: propPosition,
17064 disableHoverMode: disableHoverMode,
17065 defaultPosition: defaultPosition,
17066 positionThreshold: positionThreshold,
17067 hoverDelay: hoverDelay,
17068 focusDelay: focusDelay,
17069 touchTimeout: touchTimeout,
17070 onMouseEnter: onMouseEnter,
17071 onMouseLeave: onMouseLeave,
17072 onTouchStart: onTouchStart,
17073 onTouchMove: onTouchMove,
17074 onContextMenu: onContextMenu,
17075 onFocus: onFocus,
17076 onKeyDown: onKeyDown,
17077 onShow: onShow,
17078 onHide: onHide,
17079 }), hide = _r.hide, visible = _r.visible, position = _r.position, handlers = _r.handlers;
17080 var labelledBy = React.useRef(visible);
17081 var currentSpacing = React.useMemo(function () { return unitToNumber(dense ? denseSpacing : spacing); }, [spacing, denseSpacing, dense]);
17082 var getOptions;
17083 if (!disableAutoSpacing) {
17084 getOptions = function (node) {
17085 var spacing = unitToNumber(window.getComputedStyle(node).getPropertyValue("--rmd-tooltip-spacing"));
17086 return { xMargin: spacing, yMargin: spacing };
17087 };
17088 }
17089 var isHorizontal = position === "left" || position === "right";
17090 var _s = useFixedPositioning({
17091 anchor: {
17092 x: isHorizontal ? position : "center",
17093 y: isHorizontal ? "center" : position,
17094 },
17095 disableSwapping: typeof disableSwapping === "boolean" ? disableSwapping : !!propPosition,
17096 fixedTo: function () { return document.getElementById(id); },
17097 vhMargin: vhMargin,
17098 vwMargin: vwMargin,
17099 yMargin: currentSpacing,
17100 xMargin: currentSpacing,
17101 onResize: hide,
17102 onScroll: hide,
17103 getOptions: getOptions,
17104 }), style = _s.style, onEnter = _s.onEnter, onEntering = _s.onEntering, onEntered = _s.onEntered, onExited = _s.onExited;
17105 if (!tooltipChildren) {
17106 if (typeof children === "function") {
17107 return children({ id: id, tooltip: null, "aria-describedby": describedBy });
17108 }
17109 var child_1 = React.Children.only(children);
17110 return React.cloneElement(child_1, { id: id, "aria-describedby": describedBy });
17111 }
17112 var tooltipId = props.tooltipId;
17113 if (!tooltipId) {
17114 tooltipId = id + "-tooltip";
17115 }
17116 var tooltip = (React__default.createElement(ConditionalPortal, { portal: portal, portalInto: portalInto, portalIntoId: portalIntoId },
17117 React__default.createElement(Tooltip, __assign$1w({ id: tooltipId }, props, { dense: dense, position: position, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, style: style, onEnter: function (node, appear) {
17118 if (onEnter) {
17119 onEnter(node, appear);
17120 }
17121 labelledBy.current = true;
17122 }, onEntering: onEntering, onEntered: onEntered, onExited: function (node) {
17123 if (onExited) {
17124 onExited(node);
17125 }
17126 labelledBy.current = false;
17127 }, visible: visible }), tooltipChildren)));
17128 var config = __assign$1w({ id: id, "aria-describedby": classnames(labelledBy.current && tooltipId, describedBy) || undefined }, handlers);
17129 if (typeof children === "function") {
17130 return children(__assign$1w(__assign$1w({}, config), { tooltip: tooltip }));
17131 }
17132 var child = React.Children.only(children);
17133 var merged = MERGABLE_PROPS.reduce(function (result, propName) {
17134 var propHandler = child.props[propName];
17135 var configHandler = config[propName];
17136 if (!propHandler) {
17137 result[propName] = configHandler;
17138 }
17139 else if (!configHandler) {
17140 result[propName] = propHandler;
17141 }
17142 else {
17143 // not sure of a way to actually strongly type this nicely.
17144 // eslint-disable-next-line @typescript-eslint/no-explicit-any
17145 result[propName] = function (event) {
17146 propHandler(event);
17147 configHandler(event);
17148 };
17149 }
17150 return result;
17151 }, __assign$1w({}, config));
17152 return (React__default.createElement(React__default.Fragment, null,
17153 React.cloneElement(child, merged),
17154 tooltip));
17155 }
17156 {
17157 try {
17158 var PropTypes$1m = require("prop-types");
17159 Tooltipped.propTypes = {
17160 tooltipId: PropTypes$1m.string,
17161 dense: PropTypes$1m.bool,
17162 spacing: PropTypes$1m.oneOfType([PropTypes$1m.number, PropTypes$1m.string]),
17163 denseSpacing: PropTypes$1m.oneOfType([PropTypes$1m.number, PropTypes$1m.string]),
17164 positionThreshold: PropTypes$1m.number,
17165 disableAutoSpacing: PropTypes$1m.bool,
17166 vwMargin: PropTypes$1m.number,
17167 vhMargin: PropTypes$1m.number,
17168 portal: PropTypes$1m.bool,
17169 lineWrap: PropTypes$1m.bool,
17170 focusDelay: PropTypes$1m.number,
17171 hoverDelay: PropTypes$1m.number,
17172 touchTimeout: PropTypes$1m.number,
17173 mountOnEnter: PropTypes$1m.bool,
17174 unmountOnExit: PropTypes$1m.bool,
17175 defaultPosition: PropTypes$1m.oneOf(["above", "below", "left", "right"]),
17176 };
17177 }
17178 catch (e) { }
17179 }
17180
17181 /**
17182 * This component is used so that tooltips can gain the "hover mode"
17183 * functionality in that once a tooltip has become visible by hover, all other
17184 * tooltips will become visible immediately until 3 seconds have passed.
17185 */
17186 function TooltipHoverModeConfig(_a) {
17187 var _b = _a.defaultDelay, defaultDelay = _b === void 0 ? DEFAULT_TOOLTIP_DELAY : _b, _c = _a.delayTimeout, delayTimeout = _c === void 0 ? DEFAULT_TOOLTIP_DELAY : _c, _d = _a.enabled, enabled = _d === void 0 ? true : _d, children = _a.children;
17188 var _e = useTooltipHoverModeState(defaultDelay, delayTimeout), delay = _e.delay, enable = _e.enable, startDisableTimer = _e.startDisableTimer;
17189 var actions = React.useMemo(function () { return ({
17190 enable: enable,
17191 startDisableTimer: startDisableTimer,
17192 }); }, [enable, startDisableTimer]);
17193 return (React__default.createElement(HoverModeDelay.Provider, { value: delay },
17194 React__default.createElement(HoverModeActions.Provider, { value: actions },
17195 React__default.createElement(HoverModeEnabled.Provider, { value: enabled }, children))));
17196 }
17197 {
17198 try {
17199 var PropTypes$1n = require("prop-types");
17200 TooltipHoverModeConfig.propTypes = {
17201 enabled: PropTypes$1n.bool,
17202 delayTimeout: PropTypes$1n.number,
17203 defaultDelay: PropTypes$1n.number,
17204 children: PropTypes$1n.node.isRequired,
17205 };
17206 }
17207 catch (e) { }
17208 }
17209
17210 var __assign$1x = (undefined && undefined.__assign) || function () {
17211 __assign$1x = Object.assign || function(t) {
17212 for (var s, i = 1, n = arguments.length; i < n; i++) {
17213 s = arguments[i];
17214 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17215 t[p] = s[p];
17216 }
17217 return t;
17218 };
17219 return __assign$1x.apply(this, arguments);
17220 };
17221 /**
17222 * This component allows you to quickly configure different functionality within
17223 * `react-md` in one place with reasonable defaults.
17224 */
17225 var Configuration = function (_a) {
17226 var onAppResize = _a.onAppResize, children = _a.children, icons = _a.icons, formTheme = _a.formTheme, _b = _a.phoneMaxWidth, phoneMaxWidth = _b === void 0 ? DEFAULT_PHONE_MAX_WIDTH : _b, _c = _a.tabletMinWidth, tabletMinWidth = _c === void 0 ? DEFAULT_TABLET_MIN_WIDTH : _c, _d = _a.tabletMaxWidth, tabletMaxWidth = _d === void 0 ? DEFAULT_TABLET_MAX_WIDTH : _d, _e = _a.desktopMinWidth, desktopMinWidth = _e === void 0 ? DEFAULT_DESKTOP_MIN_WIDTH : _e, _f = _a.desktopLargeMinWidth, desktopLargeMinWidth = _f === void 0 ? DEFAULT_DESKTOP_LARGE_MIN_WIDTH : _f, _g = _a.defaultSize, defaultSize = _g === void 0 ? DEFAULT_APP_SIZE : _g, _h = _a.rippleTimeout, rippleTimeout = _h === void 0 ? DEFAULT_RIPPLE_TIMEOUT : _h, _j = _a.rippleClassNames, rippleClassNames = _j === void 0 ? DEFAULT_RIPPLE_CLASSNAMES : _j, _k = _a.disableRipple, disableRipple = _k === void 0 ? false : _k, _l = _a.disableProgrammaticRipple, disableProgrammaticRipple = _l === void 0 ? false : _l, _m = _a.disableTooltipHoverMode, disableTooltipHoverMode = _m === void 0 ? false : _m, _o = _a.tooltipDefaultDelay, tooltipDefaultDelay = _o === void 0 ? DEFAULT_TOOLTIP_DELAY : _o, _p = _a.tooltipDelayTimeout, tooltipDelayTimeout = _p === void 0 ? DEFAULT_TOOLTIP_DELAY : _p;
17227 return (React__default.createElement(AppSizeListener, { defaultSize: defaultSize, onChange: onAppResize, phoneMaxWidth: phoneMaxWidth, tabletMinWidth: tabletMinWidth, tabletMaxWidth: tabletMaxWidth, desktopMinWidth: desktopMinWidth, desktopLargeMinWidth: desktopLargeMinWidth },
17228 React__default.createElement(NestedDialogContextProvider, null,
17229 React__default.createElement(InteractionModeListener, null,
17230 React__default.createElement(StatesConfig, { disableRipple: disableRipple, disableProgrammaticRipple: disableProgrammaticRipple, rippleTimeout: rippleTimeout, rippleClassNames: rippleClassNames },
17231 React__default.createElement(TooltipHoverModeConfig, { enabled: !disableTooltipHoverMode, defaultDelay: tooltipDefaultDelay, delayTimeout: tooltipDelayTimeout },
17232 React__default.createElement(IconProvider, __assign$1x({}, icons),
17233 React__default.createElement(FormThemeProvider, __assign$1x({}, formTheme), children))))))));
17234 };
17235 {
17236 try {
17237 var PropTypes$1o = require("prop-types");
17238 var querySize$1 = PropTypes$1o.oneOfType([PropTypes$1o.string, PropTypes$1o.number]);
17239 Configuration.propTypes = {
17240 children: PropTypes$1o.node.isRequired,
17241 onAppResize: PropTypes$1o.func,
17242 phoneMaxWidth: querySize$1,
17243 tabletMinWidth: querySize$1,
17244 tabletMaxWidth: querySize$1,
17245 desktopMinWidth: querySize$1,
17246 desktopLargeMinWidth: querySize$1,
17247 defaultSize: PropTypes$1o.shape({
17248 isPhone: PropTypes$1o.bool.isRequired,
17249 isTablet: PropTypes$1o.bool.isRequired,
17250 isDesktop: PropTypes$1o.bool.isRequired,
17251 isLargeDesktop: PropTypes$1o.bool.isRequired,
17252 isLandscape: PropTypes$1o.bool.isRequired,
17253 }),
17254 rippleTimeout: PropTypes$1o.oneOfType([
17255 PropTypes$1o.number,
17256 PropTypes$1o.shape({
17257 enter: PropTypes$1o.number,
17258 exit: PropTypes$1o.number,
17259 }),
17260 ]),
17261 rippleClassNames: PropTypes$1o.oneOfType([
17262 PropTypes$1o.string,
17263 PropTypes$1o.shape({
17264 enter: PropTypes$1o.string,
17265 enterActive: PropTypes$1o.string,
17266 enterDone: PropTypes$1o.string,
17267 exit: PropTypes$1o.string,
17268 exitActive: PropTypes$1o.string,
17269 }),
17270 ]),
17271 disableRipple: PropTypes$1o.bool,
17272 disableProgrammaticRipple: PropTypes$1o.bool,
17273 tooltipDelayTimeout: PropTypes$1o.number,
17274 tooltipDefaultDelay: PropTypes$1o.number,
17275 disableTooltipHoverMode: PropTypes$1o.bool,
17276 icons: PropTypes$1o.shape({
17277 back: PropTypes$1o.node,
17278 checkbox: PropTypes$1o.node,
17279 expander: PropTypes$1o.node,
17280 dropdown: PropTypes$1o.node,
17281 download: PropTypes$1o.node,
17282 forward: PropTypes$1o.node,
17283 menu: PropTypes$1o.node,
17284 radio: PropTypes$1o.node,
17285 password: PropTypes$1o.node,
17286 notification: PropTypes$1o.node,
17287 sort: PropTypes$1o.node,
17288 }),
17289 formTheme: PropTypes$1o.shape({
17290 theme: PropTypes$1o.oneOf(["none", "underline", "outline", "filled"]),
17291 underlineDirection: PropTypes$1o.oneOf(["left", "center", "right"]),
17292 }),
17293 };
17294 }
17295 catch (e) { }
17296 }
17297
17298 var __assign$1y = (undefined && undefined.__assign) || function () {
17299 __assign$1y = Object.assign || function(t) {
17300 for (var s, i = 1, n = arguments.length; i < n; i++) {
17301 s = arguments[i];
17302 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17303 t[p] = s[p];
17304 }
17305 return t;
17306 };
17307 return __assign$1y.apply(this, arguments);
17308 };
17309 var __rest$1k = (undefined && undefined.__rest) || function (s, e) {
17310 var t = {};
17311 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17312 t[p] = s[p];
17313 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17314 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17315 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17316 t[p[i]] = s[p[i]];
17317 }
17318 return t;
17319 };
17320 var block$Z = bem("rmd-link");
17321 /**
17322 * The `Link` component is used to render links within your app with a basic
17323 * styles applied and some additional "security" built-in if using the
17324 * `rel="_blank"`. This can be used with a browser routing library like
17325 * `react-router` or `reach-router` by providing the `Link` as the
17326 * `linkComponent` prop.
17327 */
17328 var Link = React.forwardRef(function Link(_a, ref) {
17329 var propClassName = _a.className, _b = _a.component, Component = _b === void 0 ? "a" : _b, propHref = _a.href, children = _a.children, propRel = _a.rel, _c = _a.flexCentered, flexCentered = _c === void 0 ? false : _c, _d = _a.preventMaliciousTarget, preventMaliciousTarget = _d === void 0 ? true : _d, props = __rest$1k(_a, ["className", "component", "href", "children", "rel", "flexCentered", "preventMaliciousTarget"]);
17330 var target = props.target;
17331 var href = propHref === "" ? undefined : propHref;
17332 var className = classnames(block$Z({ "flex-centered": flexCentered }), propClassName);
17333 var rel = propRel;
17334 if (preventMaliciousTarget &&
17335 typeof rel !== "string" &&
17336 target === "_blank") {
17337 rel = "noopener noreferrer";
17338 }
17339 return (React__default.createElement(Component, __assign$1y({}, props, { className: className, ref: ref, rel: rel, href: href }), children));
17340 });
17341 {
17342 try {
17343 var PropTypes$1p = require("prop-types");
17344 Link.propTypes = {
17345 className: PropTypes$1p.string,
17346 href: PropTypes$1p.string,
17347 children: PropTypes$1p.node,
17348 component: PropTypes$1p.oneOfType([
17349 PropTypes$1p.string,
17350 PropTypes$1p.func,
17351 PropTypes$1p.object,
17352 ]),
17353 target: PropTypes$1p.string,
17354 rel: PropTypes$1p.string,
17355 preventMaliciousTarget: PropTypes$1p.bool,
17356 flexCentered: PropTypes$1p.bool,
17357 };
17358 }
17359 catch (e) { }
17360 }
17361
17362 var __assign$1z = (undefined && undefined.__assign) || function () {
17363 __assign$1z = Object.assign || function(t) {
17364 for (var s, i = 1, n = arguments.length; i < n; i++) {
17365 s = arguments[i];
17366 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17367 t[p] = s[p];
17368 }
17369 return t;
17370 };
17371 return __assign$1z.apply(this, arguments);
17372 };
17373 var __rest$1l = (undefined && undefined.__rest) || function (s, e) {
17374 var t = {};
17375 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17376 t[p] = s[p];
17377 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17378 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17379 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17380 t[p[i]] = s[p[i]];
17381 }
17382 return t;
17383 };
17384 var block$_ = bem("rmd-link-skip");
17385 /**
17386 * This component allows you to create a screen-reader only/keyboard focusable
17387 * only link that allows a user to skip to the main content of the page. This is
17388 * extremely useful when you have a lot of navigation items that must be tabbed
17389 * through before the main content can be focused and this component should
17390 * normally be the first focusable element on your page.
17391 */
17392 var SkipToMainContent = React.forwardRef(function SkipToMainContent(_a, ref) {
17393 var _b = _a.id, id = _b === void 0 ? "skip-to-main-content" : _b, _c = _a.children, children = _c === void 0 ? "Skip to main content" : _c, _d = _a.unstyled, unstyled = _d === void 0 ? false : _d, mainId = _a.mainId, className = _a.className, onClick = _a.onClick, props = __rest$1l(_a, ["id", "children", "unstyled", "mainId", "className", "onClick"]);
17394 var handleClick = React.useCallback(function (event) {
17395 if (onClick) {
17396 onClick(event);
17397 }
17398 event.preventDefault();
17399 var main = document.getElementById(mainId);
17400 if (!main) {
17401 {
17402 /* eslint-disable no-console */
17403 var foundMain = document.querySelector("main");
17404 var foundMainId = foundMain && foundMain.id;
17405 console.error("Unable to find a main element to focus with an id of: \"" + mainId + "\".");
17406 if (foundMainId) {
17407 console.error("However, a \"<main>\" element was found with an id: \"" + foundMainId + "\". Should this be the \"mainId\" prop for the \"SkipToMainContent\" component?");
17408 }
17409 }
17410 return;
17411 }
17412 main.focus();
17413 }, [mainId, onClick]);
17414 return (React__default.createElement(Link, __assign$1z({}, props, { id: id, ref: ref, href: "#" + mainId, onClick: handleClick, className: classnames(block$_({ styled: !unstyled }), className) }), children));
17415 });
17416 {
17417 try {
17418 var PropTypes$1q = require("prop-types");
17419 SkipToMainContent.propTypes = {
17420 id: PropTypes$1q.string,
17421 mainId: PropTypes$1q.string.isRequired,
17422 onClick: PropTypes$1q.func,
17423 className: PropTypes$1q.string,
17424 children: PropTypes$1q.node,
17425 unstyled: PropTypes$1q.bool,
17426 };
17427 }
17428 catch (e) { }
17429 }
17430
17431 var DEFAULT_PHONE_LAYOUT = "temporary";
17432 var DEFAULT_TABLET_LAYOUT = "toggleable";
17433 var DEFAULT_LANDSCAPE_TABLET_LAYOUT = "toggleable";
17434 var DEFAULT_DESKTOP_LAYOUT = "full-height";
17435 var DEFAULT_LAYOUT_MAIN_CLASSNAMES = {
17436 enter: "rmd-layout-transition--enter",
17437 enterActive: "rmd-layout-main--nav-offset",
17438 enterDone: "rmd-layout-main--nav-offset",
17439 exit: "rmd-layout-transition--exit",
17440 };
17441 var DEFFAULT_LAYOUT_NAV_TOGGLE_CLASSNAMES = {
17442 enter: "rmd-layout-transition--enter",
17443 enterActive: "rmd-layout-nav-toggle--offset",
17444 enterDone: "rmd-layout-nav-toggle--offset",
17445 exit: "rmd-layout-transition--exit",
17446 };
17447
17448 /**
17449 * Gets the current layout based on the app size and layout configuration.
17450 *
17451 * @return The current layout type
17452 */
17453 function getLayoutType(_a) {
17454 var appSize = _a.appSize, _b = _a.phoneLayout, phoneLayout = _b === void 0 ? DEFAULT_PHONE_LAYOUT : _b, _c = _a.tabletLayout, tabletLayout = _c === void 0 ? DEFAULT_TABLET_LAYOUT : _c, _d = _a.landscapeTabletLayout, landscapeTabletLayout = _d === void 0 ? DEFAULT_LANDSCAPE_TABLET_LAYOUT : _d, _e = _a.desktopLayout, desktopLayout = _e === void 0 ? DEFAULT_DESKTOP_LAYOUT : _e, _f = _a.largeDesktopLayout, largeDesktopLayout = _f === void 0 ? desktopLayout : _f;
17455 var isPhone = appSize.isPhone, isTablet = appSize.isTablet, isLargeDesktop = appSize.isLargeDesktop, isLandscape = appSize.isLandscape;
17456 if (isPhone) {
17457 return phoneLayout;
17458 }
17459 if (isTablet) {
17460 return isLandscape ? landscapeTabletLayout : tabletLayout;
17461 }
17462 if (isLargeDesktop) {
17463 return largeDesktopLayout;
17464 }
17465 return desktopLayout;
17466 }
17467 /**
17468 * Checks if the current `layout` is one of the temporary types
17469 *
17470 * @param layout The layout to check against
17471 * @return true if the current layout has a temporary navigation.
17472 */
17473 function isTemporaryLayout(layout) {
17474 return layout === "temporary" || layout === "temporary-mini";
17475 }
17476 /**
17477 * Checks if the current `layout` is one of the toggleable types
17478 *
17479 * @param layout The layout to check against
17480 * @return true if the current layout is toggleable.
17481 */
17482 function isToggleableLayout(layout) {
17483 return layout === "toggleable" || layout === "toggleable-mini";
17484 }
17485 /**
17486 * Checks if the current `layout` is `"clipped"`, `"floating"`, or `"full-height"`.
17487 *
17488 * @param layout The layout to check against
17489 * @return true if the current layout is persistent.
17490 */
17491 function isPersistentLayout(layout) {
17492 return (layout === "clipped" || layout === "floating" || layout === "full-height");
17493 }
17494 /**
17495 * Checks if the current `layout` is the `"full-height"` variant.
17496 *
17497 * @param layout The layout to check against
17498 * @return true if the current layout is the full height variant.
17499 */
17500 function isFullHeightLayout(layout) {
17501 return layout === "full-height";
17502 }
17503
17504 var __spreadArrays$4 = (undefined && undefined.__spreadArrays) || function () {
17505 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
17506 for (var r = Array(s), k = 0, i = 0; i < il; i++)
17507 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
17508 r[k] = a[j];
17509 return r;
17510 };
17511 /**
17512 * @private
17513 */
17514 var notInitialized = function (name) { return function () {
17515 {
17516 /* eslint-disable no-console */
17517 console.warn("Uh oh, something went wrong. Somehow the `LayoutNavigationConfiguration` context has not been initialized. " +
17518 ("This caused the \"" + name + "\" callback to do nothing."));
17519 }
17520 }; };
17521 var context$3 = React.createContext({
17522 baseId: "layout",
17523 layout: "temporary",
17524 visible: false,
17525 showNav: notInitialized("showNav"),
17526 hideNav: notInitialized("hideNav"),
17527 });
17528 /**
17529 * Gets the current layout state and configuration.
17530 */
17531 function useLayoutConfig() {
17532 return React.useContext(context$3);
17533 }
17534 var Provider$3 = context$3.Provider;
17535 /**
17536 * Determines the current layout based on the `LayoutConfiguration` and hooks
17537 * into the `AppSizeListener` to update on resize. This also initializes the
17538 * `LayLayoutContext` so that a custom layout implementation can be used along
17539 * with the `useLayoutConfig()` hook and the multiple `Layout` components.
17540 */
17541 var LayoutProvider = function (_a) {
17542 var baseId = _a.baseId, _b = _a.phoneLayout, phoneLayout = _b === void 0 ? DEFAULT_PHONE_LAYOUT : _b, _c = _a.tabletLayout, tabletLayout = _c === void 0 ? DEFAULT_TABLET_LAYOUT : _c, _d = _a.landscapeTabletLayout, landscapeTabletLayout = _d === void 0 ? DEFAULT_LANDSCAPE_TABLET_LAYOUT : _d, _e = _a.desktopLayout, desktopLayout = _e === void 0 ? DEFAULT_DESKTOP_LAYOUT : _e, largeDesktopLayout = _a.largeDesktopLayout, children = _a.children;
17543 var appSize = useAppSize();
17544 var layout = getLayoutType({
17545 appSize: appSize,
17546 phoneLayout: phoneLayout,
17547 tabletLayout: tabletLayout,
17548 landscapeTabletLayout: landscapeTabletLayout,
17549 desktopLayout: desktopLayout,
17550 largeDesktopLayout: largeDesktopLayout,
17551 });
17552 var isPersistent = isPersistentLayout(layout);
17553 var isDesktop = appSize.isDesktop;
17554 var _f = React.useState(isPersistent && isDesktop), visible = _f[0], setVisible = _f[1];
17555 var prevLayout = React.useRef(layout);
17556 if (prevLayout.current !== layout) {
17557 prevLayout.current = layout;
17558 if (visible !== isPersistent) {
17559 setVisible(isPersistent);
17560 }
17561 }
17562 var showNav = React.useCallback(function () {
17563 setVisible(true);
17564 }, []);
17565 var hideNav = React.useCallback(function () {
17566 if (!isPersistentLayout(layout)) {
17567 setVisible(false);
17568 }
17569 }, [layout]);
17570 var value = React.useMemo(function () { return ({
17571 baseId: baseId,
17572 layout: layout,
17573 visible: visible,
17574 showNav: showNav,
17575 hideNav: hideNav,
17576 }); }, [baseId, layout, visible, showNav, hideNav]);
17577 return React__default.createElement(Provider$3, { value: value }, children);
17578 };
17579 {
17580 try {
17581 context$3.displayName = "Layout";
17582 var PropTypes$1r = require("prop-types");
17583 var phoneLayouts = ["temporary", "temporary-mini"];
17584 var tabletLayouts = __spreadArrays$4(phoneLayouts, ["toggleable", "toggleable-mini"]);
17585 var wideLayouts = __spreadArrays$4(tabletLayouts, [
17586 "clipped",
17587 "floating",
17588 "full-height",
17589 ]);
17590 LayoutProvider.propTypes = {
17591 baseId: PropTypes$1r.string.isRequired,
17592 children: PropTypes$1r.node.isRequired,
17593 phoneLayout: PropTypes$1r.oneOf(phoneLayouts),
17594 tabletLayout: PropTypes$1r.oneOf(tabletLayouts),
17595 landscapeTabletLayout: PropTypes$1r.oneOf(wideLayouts),
17596 desktopLayout: PropTypes$1r.oneOf(wideLayouts),
17597 largeDesktopLayout: PropTypes$1r.oneOf(wideLayouts),
17598 };
17599 }
17600 catch (error) { }
17601 }
17602
17603 var __assign$1A = (undefined && undefined.__assign) || function () {
17604 __assign$1A = Object.assign || function(t) {
17605 for (var s, i = 1, n = arguments.length; i < n; i++) {
17606 s = arguments[i];
17607 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17608 t[p] = s[p];
17609 }
17610 return t;
17611 };
17612 return __assign$1A.apply(this, arguments);
17613 };
17614 var __rest$1m = (undefined && undefined.__rest) || function (s, e) {
17615 var t = {};
17616 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17617 t[p] = s[p];
17618 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17619 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17620 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17621 t[p[i]] = s[p[i]];
17622 }
17623 return t;
17624 };
17625 var styles$1 = bem("rmd-layout-title");
17626 /**
17627 * An extremely simple wrapper for the `AppBarTitle` that will automatically
17628 * apply an `id` and apply the correct margin for full-height layouts.
17629 */
17630 var LayoutAppBarTitle = React.forwardRef(function LayoutAppBarTitle(_a, ref) {
17631 var propId = _a.id, className = _a.className, children = _a.children, props = __rest$1m(_a, ["id", "className", "children"]);
17632 var _b = useLayoutConfig(), baseId = _b.baseId, layout = _b.layout;
17633 var id = propId !== null && propId !== void 0 ? propId : baseId + "-title";
17634 return (React__default.createElement(AppBarTitle, __assign$1A({}, props, { id: id, ref: ref, className: classnames(styles$1({ offset: isFullHeightLayout(layout) }), className) }), children));
17635 });
17636 {
17637 try {
17638 var PropTypes$1s = require("prop-types");
17639 LayoutAppBarTitle.propTypes = {
17640 id: PropTypes$1s.string,
17641 className: PropTypes$1s.string,
17642 children: PropTypes$1s.node,
17643 };
17644 }
17645 catch (error) { }
17646 }
17647
17648 var DEFAULT_SHEET_TIMEOUT = {
17649 enter: 200,
17650 exit: 150,
17651 };
17652 var DEFAULT_SHEET_CLASSNAMES = {
17653 appear: "rmd-sheet--offscreen",
17654 appearActive: "rmd-sheet--enter rmd-sheet--visible",
17655 enter: "rmd-sheet--offscreen",
17656 enterActive: "rmd-sheet--enter rmd-sheet--visible",
17657 exit: "rmd-sheet--exit",
17658 exitActive: "rmd-sheet--offscreen",
17659 exitDone: "rmd-sheet--offscreen rmd-sheet--hidden",
17660 };
17661
17662 var __assign$1B = (undefined && undefined.__assign) || function () {
17663 __assign$1B = Object.assign || function(t) {
17664 for (var s, i = 1, n = arguments.length; i < n; i++) {
17665 s = arguments[i];
17666 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17667 t[p] = s[p];
17668 }
17669 return t;
17670 };
17671 return __assign$1B.apply(this, arguments);
17672 };
17673 var __rest$1n = (undefined && undefined.__rest) || function (s, e) {
17674 var t = {};
17675 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17676 t[p] = s[p];
17677 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17678 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17679 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17680 t[p[i]] = s[p[i]];
17681 }
17682 return t;
17683 };
17684 var block$$ = bem("rmd-sheet");
17685 /**
17686 * The Sheet component is an extension of the `Dialog` except that it is fixed
17687 * to the edges of the viewport instead of centered or full page. This component
17688 * is great for rendering a navigation tree or menus on mobile devices.
17689 */
17690 var Sheet = React.forwardRef(function Sheet(_a, ref) {
17691 var _b;
17692 var className = _a.className, children = _a.children, visible = _a.visible, _c = _a.position, position = _c === void 0 ? "left" : _c, _d = _a.horizontalSize, horizontalSize = _d === void 0 ? "media" : _d, _e = _a.verticalSize, verticalSize = _e === void 0 ? "recommended" : _e, _f = _a.overlay, propOverlay = _f === void 0 ? true : _f, overlayClassName = _a.overlayClassName, _g = _a.role, role = _g === void 0 ? "dialog" : _g, _h = _a.component, component = _h === void 0 ? "div" : _h, _j = _a.tabIndex, tabIndex = _j === void 0 ? -1 : _j, _k = _a.appear, appear = _k === void 0 ? false : _k, _l = _a.enter, enter = _l === void 0 ? true : _l, _m = _a.exit, exit = _m === void 0 ? true : _m, onExited = _a.onExited, propHidden = _a.hidden, _o = _a.timeout, timeout = _o === void 0 ? DEFAULT_SHEET_TIMEOUT : _o, _p = _a.classNames, classNames = _p === void 0 ? DEFAULT_SHEET_CLASSNAMES : _p, _q = _a.disableTransition, disableTransition = _q === void 0 ? false : _q, _r = _a.mountOnEnter, mountOnEnter = _r === void 0 ? true : _r, _s = _a.unmountOnExit, unmountOnExit = _s === void 0 ? true : _s, _t = _a.portal, portal = _t === void 0 ? true : _t, _u = _a.overlayHidden, overlayHidden = _u === void 0 ? false : _u, _v = _a.defaultFocus, defaultFocus = _v === void 0 ? "first" : _v, _w = _a.disableScrollLock, disableScrollLock = _w === void 0 ? false : _w, _x = _a.disableEscapeClose, disableEscapeClose = _x === void 0 ? false : _x, _y = _a.disableFocusContainer, disableFocusContainer = _y === void 0 ? false : _y, _z = _a.disableNestedDialogFixes, disableNestedDialogFixes = _z === void 0 ? false : _z, props = __rest$1n(_a, ["className", "children", "visible", "position", "horizontalSize", "verticalSize", "overlay", "overlayClassName", "role", "component", "tabIndex", "appear", "enter", "exit", "onExited", "hidden", "timeout", "classNames", "disableTransition", "mountOnEnter", "unmountOnExit", "portal", "overlayHidden", "defaultFocus", "disableScrollLock", "disableEscapeClose", "disableFocusContainer", "disableNestedDialogFixes"]);
17693 var horizontal = position === "left" || position === "right";
17694 var overlay = role !== "none" && propOverlay;
17695 // if the sheet mounts while not visible and the conditional mounting isn't
17696 // enabled, need to default to the offscreen state which is normally handled
17697 // by the CSSTransition's exit state.
17698 var offscreen = React.useRef(!visible && !unmountOnExit && !mountOnEnter);
17699 if (offscreen.current && visible) {
17700 offscreen.current = false;
17701 }
17702 // when sheets are not unmounted on exit, need to set it to hidden so that
17703 // tabbing no longer focuses any of the elements inside
17704 var _0 = React.useState(!visible && !mountOnEnter), hidden = _0[0], setHidden = _0[1];
17705 if (hidden && visible) {
17706 setHidden(false);
17707 }
17708 var handleExited = React.useCallback(function (node) {
17709 if (onExited) {
17710 onExited(node);
17711 }
17712 setHidden(true);
17713 }, [onExited]);
17714 return (React__default.createElement(Dialog, __assign$1B({}, props, { ref: ref, type: "custom", role: role, visible: visible, className: classnames(block$$((_b = {
17715 horizontal: horizontal,
17716 vertical: !horizontal,
17717 raised: overlay,
17718 offscreen: offscreen.current
17719 },
17720 _b[position] = true,
17721 _b[horizontalSize + "-width"] = horizontal,
17722 _b["viewport-height"] = !horizontal && verticalSize === "none",
17723 _b["touchable-height"] = !horizontal && verticalSize === "touch",
17724 _b["recommended-height"] = !horizontal && verticalSize === "recommended",
17725 _b)), className), hidden: propHidden !== null && propHidden !== void 0 ? propHidden : hidden, overlay: overlay, overlayClassName: classnames("rmd-sheet-overlay", overlayClassName), component: component, tabIndex: tabIndex, appear: appear, enter: enter, exit: exit, timeout: timeout, classNames: classNames, disableTransition: disableTransition, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, onExited: handleExited, portal: portal, overlayHidden: overlayHidden, defaultFocus: defaultFocus, disableScrollLock: disableScrollLock, disableEscapeClose: disableEscapeClose, disableFocusContainer: disableFocusContainer, disableNestedDialogFixes: disableNestedDialogFixes }), children));
17726 });
17727 {
17728 try {
17729 var PropTypes$1t = require("prop-types");
17730 Sheet.propTypes = {
17731 id: PropTypes$1t.string.isRequired,
17732 "aria-label": PropTypes$1t.string,
17733 "aria-labelledby": PropTypes$1t.string,
17734 className: PropTypes$1t.string,
17735 tabIndex: PropTypes$1t.number,
17736 visible: PropTypes$1t.bool.isRequired,
17737 onRequestClose: PropTypes$1t.func.isRequired,
17738 mountOnEnter: PropTypes$1t.bool,
17739 unmountOnExit: PropTypes$1t.bool,
17740 overlay: PropTypes$1t.bool,
17741 overlayStyle: PropTypes$1t.object,
17742 overlayClassName: PropTypes$1t.string,
17743 overlayHidden: PropTypes$1t.bool,
17744 containerStyle: PropTypes$1t.object,
17745 containerClassName: PropTypes$1t.string,
17746 children: PropTypes$1t.node,
17747 classNames: PropTypes$1t.oneOfType([
17748 PropTypes$1t.string,
17749 PropTypes$1t.shape({
17750 appear: PropTypes$1t.string,
17751 appearActive: PropTypes$1t.string,
17752 enter: PropTypes$1t.string,
17753 enterActive: PropTypes$1t.string,
17754 enterDone: PropTypes$1t.string,
17755 exit: PropTypes$1t.string,
17756 exitActive: PropTypes$1t.string,
17757 exitDone: PropTypes$1t.string,
17758 }),
17759 ]),
17760 timeout: PropTypes$1t.oneOfType([
17761 PropTypes$1t.number,
17762 PropTypes$1t.shape({
17763 enter: PropTypes$1t.number,
17764 exit: PropTypes$1t.number,
17765 }),
17766 ]),
17767 appear: PropTypes$1t.bool,
17768 enter: PropTypes$1t.bool,
17769 exit: PropTypes$1t.bool,
17770 disableTransition: PropTypes$1t.bool,
17771 onEnter: PropTypes$1t.func,
17772 onEntering: PropTypes$1t.func,
17773 onEntered: PropTypes$1t.func,
17774 onExit: PropTypes$1t.func,
17775 onExiting: PropTypes$1t.func,
17776 onExited: PropTypes$1t.func,
17777 portal: PropTypes$1t.bool,
17778 portalInto: PropTypes$1t.oneOfType([
17779 PropTypes$1t.func,
17780 PropTypes$1t.string,
17781 PropTypes$1t.object,
17782 ]),
17783 portalIntoId: PropTypes$1t.string,
17784 defaultFocus: PropTypes$1t.oneOfType([
17785 PropTypes$1t.oneOf(["first", "last"]),
17786 PropTypes$1t.string,
17787 ]),
17788 disableScrollLock: PropTypes$1t.bool,
17789 disableEscapeClose: PropTypes$1t.bool,
17790 disableFocusContainer: PropTypes$1t.bool,
17791 disableNestedDialogFixes: PropTypes$1t.bool,
17792 position: PropTypes$1t.oneOf(["top", "right", "bottom", "left"]),
17793 horizontalSize: PropTypes$1t.oneOf(["none", "media", "touch", "static"]),
17794 verticalSize: PropTypes$1t.oneOf(["none", "touch", "recommended"]),
17795 role: PropTypes$1t.oneOf(["dialog", "menu", "none"]),
17796 hidden: PropTypes$1t.bool,
17797 component: PropTypes$1t.oneOf(["div", "nav"]),
17798 };
17799 }
17800 catch (e) { }
17801 }
17802
17803 var __assign$1C = (undefined && undefined.__assign) || function () {
17804 __assign$1C = Object.assign || function(t) {
17805 for (var s, i = 1, n = arguments.length; i < n; i++) {
17806 s = arguments[i];
17807 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17808 t[p] = s[p];
17809 }
17810 return t;
17811 };
17812 return __assign$1C.apply(this, arguments);
17813 };
17814 var __rest$1o = (undefined && undefined.__rest) || function (s, e) {
17815 var t = {};
17816 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17817 t[p] = s[p];
17818 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17819 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17820 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17821 t[p[i]] = s[p[i]];
17822 }
17823 return t;
17824 };
17825 /**
17826 * This is the default implementation for the navigation toggle button within
17827 * the `Layout` component and should normally be the first child for the
17828 * `LayoutAppBar`. In addition, this component will automatically update itself
17829 * to provide an accessible `aria-label` for screen readers and change to a
17830 * toggle button for toggleable layouts.
17831 */
17832 var LayoutNavToggle = React.forwardRef(function LayoutNavToggle(_a, forwardedRef) {
17833 var propAriaLabel = _a["aria-label"], propAriaPressed = _a["aria-pressed"], propChildren = _a.children, propClassName = _a.className, _b = _a.buttonType, buttonType = _b === void 0 ? "icon" : _b, onClick = _a.onClick, propOffset = _a.offset, rendered = _a.rendered, propTabIndex = _a.tabIndex, _c = _a.timeout, timeout = _c === void 0 ? DEFAULT_SHEET_TIMEOUT : _c, _d = _a.classNames, classNames = _d === void 0 ? DEFFAULT_LAYOUT_NAV_TOGGLE_CLASSNAMES : _d, props = __rest$1o(_a, ["aria-label", "aria-pressed", "children", "className", "buttonType", "onClick", "offset", "rendered", "tabIndex", "timeout", "classNames"]);
17834 var icon = useIcon("menu");
17835 var _e = useLayoutConfig(), baseId = _e.baseId, layout = _e.layout, showNav = _e.showNav, hideNav = _e.hideNav, visible = _e.visible;
17836 var isToggleable = isToggleableLayout(layout);
17837 var isTemporary = isTemporaryLayout(layout);
17838 var isRendered = rendered;
17839 if (typeof isRendered === "undefined") {
17840 isRendered = isTemporary || isToggleable;
17841 }
17842 var offset = propOffset;
17843 if (typeof offset === "undefined") {
17844 offset = isToggleable && visible;
17845 }
17846 var _f = useCSSTransition({
17847 ref: forwardedRef,
17848 transitionIn: offset,
17849 temporary: false,
17850 className: propClassName,
17851 timeout: timeout,
17852 classNames: classNames,
17853 }), _g = _f[1], ref = _g.ref, className = _g.className;
17854 if (!isRendered) {
17855 return null;
17856 }
17857 var children = propChildren;
17858 if (buttonType === "icon" && typeof children === "undefined") {
17859 children = icon;
17860 }
17861 var tabIndex = propTabIndex;
17862 if (typeof tabIndex === "undefined" && visible && isToggleable) {
17863 // set to -1 so it isn't tab focusable but is still programmatically
17864 // focusable for temporary navigation drawers to re-focus once closed
17865 tabIndex = -1;
17866 }
17867 var ariaPressed = propAriaPressed;
17868 if (typeof ariaPressed === "undefined" && isToggleable) {
17869 ariaPressed = visible;
17870 }
17871 var ariaLabel = propAriaLabel;
17872 if (typeof ariaLabel === "undefined" &&
17873 typeof props["aria-labelledby"] === "undefined") {
17874 ariaLabel = isToggleable ? "Navigation" : "Show Navigation";
17875 }
17876 return (React__default.createElement(AppBarNav, __assign$1C({ id: baseId + "-nav-toggle" }, props, { "aria-label": ariaLabel, "aria-pressed": ariaPressed, ref: ref, onClick: function (event) {
17877 if (onClick) {
17878 onClick(event);
17879 }
17880 if (!visible) {
17881 showNav();
17882 }
17883 else {
17884 hideNav();
17885 }
17886 }, buttonType: buttonType, tabIndex: tabIndex, className: classnames("rmd-layout-nav-toggle", className) }), children));
17887 });
17888 {
17889 try {
17890 var PropTypes$1u = require("prop-types");
17891 LayoutNavToggle.propTypes = {
17892 "aria-label": PropTypes$1u.string,
17893 "aria-labelledby": PropTypes$1u.string,
17894 "aria-pressed": PropTypes$1u.bool,
17895 className: PropTypes$1u.string,
17896 children: PropTypes$1u.node,
17897 onClick: PropTypes$1u.func,
17898 rendered: PropTypes$1u.bool,
17899 tabIndex: PropTypes$1u.number,
17900 buttonType: PropTypes$1u.oneOf(["text", "icon"]),
17901 offset: PropTypes$1u.bool,
17902 timeout: PropTypes$1u.oneOfType([
17903 PropTypes$1u.number,
17904 PropTypes$1u.shape({
17905 appear: PropTypes$1u.number,
17906 enter: PropTypes$1u.number,
17907 exit: PropTypes$1u.number,
17908 }),
17909 ]),
17910 classNames: PropTypes$1u.oneOfType([
17911 PropTypes$1u.string,
17912 PropTypes$1u.shape({
17913 appear: PropTypes$1u.string,
17914 appearActive: PropTypes$1u.string,
17915 enter: PropTypes$1u.string,
17916 enterActive: PropTypes$1u.string,
17917 enterDone: PropTypes$1u.string,
17918 exit: PropTypes$1u.string,
17919 exitActive: PropTypes$1u.string,
17920 exitDone: PropTypes$1u.string,
17921 }),
17922 ]),
17923 };
17924 }
17925 catch (error) { }
17926 }
17927
17928 var __assign$1D = (undefined && undefined.__assign) || function () {
17929 __assign$1D = Object.assign || function(t) {
17930 for (var s, i = 1, n = arguments.length; i < n; i++) {
17931 s = arguments[i];
17932 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17933 t[p] = s[p];
17934 }
17935 return t;
17936 };
17937 return __assign$1D.apply(this, arguments);
17938 };
17939 var __rest$1p = (undefined && undefined.__rest) || function (s, e) {
17940 var t = {};
17941 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17942 t[p] = s[p];
17943 if (s != null && typeof Object.getOwnPropertySymbols === "function")
17944 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17945 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17946 t[p[i]] = s[p[i]];
17947 }
17948 return t;
17949 };
17950 /**
17951 * This is the default implementation for an `AppBar` within the `Layout` that
17952 * will conditionally render the default `LayoutNavToggle` button and
17953 * `AppBarTitle` depending on specific props that were provided.
17954 */
17955 var LayoutAppBar = React.forwardRef(function LayoutAppBar(_a, ref) {
17956 var children = _a.children, _b = _a.fixed, fixed = _b === void 0 ? true : _b, propNavToggle = _a.navToggle, navToggleProps = _a.navToggleProps, customTitle = _a.customTitle, titleChildren = _a.title, titleProps = _a.titleProps, props = __rest$1p(_a, ["children", "fixed", "navToggle", "navToggleProps", "customTitle", "title", "titleProps"]);
17957 var _c = useLayoutConfig(), baseId = _c.baseId, layout = _c.layout;
17958 var nav = propNavToggle;
17959 if (typeof nav === "undefined") {
17960 // set the key to the current layout since we want the button to re-mount
17961 // on layout changes so the transition does not occur
17962 nav = React__default.createElement(LayoutNavToggle, __assign$1D({ key: layout }, navToggleProps));
17963 }
17964 var title = customTitle;
17965 if (typeof title === "undefined") {
17966 title = (React__default.createElement(LayoutAppBarTitle, __assign$1D({}, titleProps), titleChildren));
17967 }
17968 return (React__default.createElement(AppBar, __assign$1D({ id: baseId + "-header" }, props, { ref: ref, fixed: fixed }),
17969 nav,
17970 title,
17971 children));
17972 });
17973 {
17974 try {
17975 var PropTypes$1v = require("prop-types");
17976 LayoutAppBar.propTypes = {
17977 fixed: PropTypes$1v.bool,
17978 navToggle: PropTypes$1v.node,
17979 navToggleProps: PropTypes$1v.object,
17980 className: PropTypes$1v.string,
17981 customTitle: PropTypes$1v.node,
17982 title: PropTypes$1v.node,
17983 titleProps: PropTypes$1v.object,
17984 children: PropTypes$1v.node,
17985 };
17986 }
17987 catch (error) { }
17988 }
17989
17990 var __assign$1E = (undefined && undefined.__assign) || function () {
17991 __assign$1E = Object.assign || function(t) {
17992 for (var s, i = 1, n = arguments.length; i < n; i++) {
17993 s = arguments[i];
17994 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17995 t[p] = s[p];
17996 }
17997 return t;
17998 };
17999 return __assign$1E.apply(this, arguments);
18000 };
18001 var __rest$1q = (undefined && undefined.__rest) || function (s, e) {
18002 var t = {};
18003 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
18004 t[p] = s[p];
18005 if (s != null && typeof Object.getOwnPropertySymbols === "function")
18006 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18007 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18008 t[p[i]] = s[p[i]];
18009 }
18010 return t;
18011 };
18012 var styles$2 = bem("rmd-layout-main");
18013 /**
18014 * This is the `<main>` element for your app that has some built in styles to be
18015 * able to update based on the current layout types.
18016 */
18017 var LayoutMain = React.forwardRef(function LayoutMain(_a, forwardedRef) {
18018 var propClassName = _a.className, propTabIndex = _a.tabIndex, _b = _a.component, Component = _b === void 0 ? "main" : _b, propNavOffset = _a.navOffset, _c = _a.headerOffset, headerOffset = _c === void 0 ? false : _c, _d = _a.timeout, propTimeout = _d === void 0 ? DEFAULT_SHEET_TIMEOUT : _d, _e = _a.classNames, classNames = _e === void 0 ? DEFAULT_LAYOUT_MAIN_CLASSNAMES : _e, props = __rest$1q(_a, ["className", "tabIndex", "component", "navOffset", "headerOffset", "timeout", "classNames"]);
18019 // this makes it so that the SkipToMainContent button can still
18020 // focus the `<main>` element, but the `<main>` will no longer be
18021 // focused if the user clicks inside. This is super nice since one
18022 // of my bigger patterns is to click somewhere then press tab to
18023 // focus a specific element. Without this fix, the first element in
18024 // the `<main>` tag would be focused instead of the closest focusable
18025 // element to the click area.
18026 var tabIndex = propTabIndex;
18027 if (useIsUserInteractionMode("keyboard") &&
18028 typeof propTabIndex === "undefined") {
18029 tabIndex = -1;
18030 }
18031 var _f = useLayoutConfig(), layout = _f.layout, visible = _f.visible;
18032 var navOffset = propNavOffset;
18033 if (typeof navOffset === "undefined") {
18034 navOffset = visible && !isTemporaryLayout(layout);
18035 }
18036 var timeout = propTimeout;
18037 var prevLayout = React.useRef(layout);
18038 if (prevLayout.current !== layout) {
18039 // this is kind of weird and hacky, but this will allow for the required
18040 // classnames to be applied to the main element based on the current
18041 // layout type without needing a unique `key` for the main content. this
18042 // is super nice since we really don't want to remount the full app each
18043 // time the layout changes.
18044 timeout = 0;
18045 }
18046 var _g = useCSSTransition({
18047 ref: forwardedRef,
18048 transitionIn: !!navOffset,
18049 temporary: false,
18050 className: propClassName,
18051 timeout: timeout,
18052 classNames: classNames,
18053 onEntered: function () {
18054 prevLayout.current = layout;
18055 },
18056 onExited: function () {
18057 prevLayout.current = layout;
18058 },
18059 }), _h = _g[1], ref = _h.ref, className = _h.className;
18060 return (React__default.createElement(Component, __assign$1E({}, props, { ref: ref, tabIndex: tabIndex, className: classnames(styles$2({ "header-offset": headerOffset }), className) })));
18061 });
18062 {
18063 try {
18064 var PropTypes$1w = require("prop-types");
18065 LayoutMain.propTypes = {
18066 component: PropTypes$1w.oneOf(["div", "main"]),
18067 className: PropTypes$1w.string,
18068 tabIndex: PropTypes$1w.number,
18069 navOffset: PropTypes$1w.bool,
18070 headerOffset: PropTypes$1w.bool,
18071 timeout: PropTypes$1w.oneOfType([
18072 PropTypes$1w.number,
18073 PropTypes$1w.shape({
18074 appear: PropTypes$1w.number,
18075 enter: PropTypes$1w.number,
18076 exit: PropTypes$1w.number,
18077 }),
18078 ]),
18079 classNames: PropTypes$1w.oneOfType([
18080 PropTypes$1w.string,
18081 PropTypes$1w.shape({
18082 appear: PropTypes$1w.string,
18083 appearActive: PropTypes$1w.string,
18084 enter: PropTypes$1w.string,
18085 enterActive: PropTypes$1w.string,
18086 enterDone: PropTypes$1w.string,
18087 exit: PropTypes$1w.string,
18088 exitActive: PropTypes$1w.string,
18089 exitDone: PropTypes$1w.string,
18090 }),
18091 ]),
18092 };
18093 }
18094 catch (error) { }
18095 }
18096
18097 var __assign$1F = (undefined && undefined.__assign) || function () {
18098 __assign$1F = Object.assign || function(t) {
18099 for (var s, i = 1, n = arguments.length; i < n; i++) {
18100 s = arguments[i];
18101 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18102 t[p] = s[p];
18103 }
18104 return t;
18105 };
18106 return __assign$1F.apply(this, arguments);
18107 };
18108 var __rest$1r = (undefined && undefined.__rest) || function (s, e) {
18109 var t = {};
18110 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
18111 t[p] = s[p];
18112 if (s != null && typeof Object.getOwnPropertySymbols === "function")
18113 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18114 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18115 t[p[i]] = s[p[i]];
18116 }
18117 return t;
18118 };
18119 /**
18120 * The `LayoutCloseNavigationButton` is used to close the navigation panel for
18121 * toggleable layouts.
18122 */
18123 var LayoutCloseNavigationButton = React.forwardRef(function LayoutCloseNavigationButton(_a, ref) {
18124 var propId = _a.id, ariaLabelledBy = _a["aria-labelledby"], _b = _a["aria-label"], ariaLabel = _b === void 0 ? ariaLabelledBy ? undefined : "Hide Navigation" : _b, onClick = _a.onClick, _c = _a.first, first = _c === void 0 ? true : _c, _d = _a.last, last = _d === void 0 ? true : _d, _e = _a.buttonType, buttonType = _e === void 0 ? "icon" : _e, propChildren = _a.children, rendered = _a.rendered, props = __rest$1r(_a, ["id", "aria-labelledby", "aria-label", "onClick", "first", "last", "buttonType", "children", "rendered"]);
18125 var children = useIcon("back", propChildren);
18126 var _f = useLayoutConfig(), baseId = _f.baseId, layout = _f.layout, hideNav = _f.hideNav;
18127 var handleClick = React.useCallback(function (event) {
18128 if (onClick) {
18129 onClick(event);
18130 }
18131 hideNav();
18132 }, [onClick, hideNav]);
18133 var id = propId !== null && propId !== void 0 ? propId : baseId + "-nav-x";
18134 var isRendered = rendered !== null && rendered !== void 0 ? rendered : isToggleableLayout(layout);
18135 if (!isRendered) {
18136 return null;
18137 }
18138 return (React__default.createElement(AppBarAction, __assign$1F({}, props, { id: id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ref: ref, first: first, last: last, buttonType: buttonType, onClick: handleClick }), children));
18139 });
18140 {
18141 try {
18142 var PropTypes$1x = require("prop-types");
18143 LayoutCloseNavigationButton.propTypes = {
18144 id: PropTypes$1x.string,
18145 "aria-label": PropTypes$1x.string,
18146 "aria-labelledby": PropTypes$1x.string,
18147 first: PropTypes$1x.bool,
18148 last: PropTypes$1x.bool,
18149 onClick: PropTypes$1x.func,
18150 children: PropTypes$1x.node,
18151 buttonType: PropTypes$1x.oneOf(["icon", "text"]),
18152 rendered: PropTypes$1x.bool,
18153 };
18154 }
18155 catch (error) { }
18156 }
18157
18158 var __assign$1G = (undefined && undefined.__assign) || function () {
18159 __assign$1G = Object.assign || function(t) {
18160 for (var s, i = 1, n = arguments.length; i < n; i++) {
18161 s = arguments[i];
18162 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18163 t[p] = s[p];
18164 }
18165 return t;
18166 };
18167 return __assign$1G.apply(this, arguments);
18168 };
18169 var __rest$1s = (undefined && undefined.__rest) || function (s, e) {
18170 var t = {};
18171 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
18172 t[p] = s[p];
18173 if (s != null && typeof Object.getOwnPropertySymbols === "function")
18174 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18175 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18176 t[p[i]] = s[p[i]];
18177 }
18178 return t;
18179 };
18180 var styles$3 = bem("rmd-layout-nav-header");
18181 /**
18182 * The default implementation for the `AppBar` within the `LayoutNavigation`
18183 * that allows for rendering a title along with the `LayoutCloseNavigationButton`.
18184 */
18185 var LayoutNavigationHeader = React.forwardRef(function LayoutNavigationHeader(_a, ref) {
18186 var _b = _a.theme, theme = _b === void 0 ? "clear" : _b, children = _a.children, className = _a.className, closeNav = _a.closeNav, closeNavProps = _a.closeNavProps, propTitle = _a.title, titleProps = _a.titleProps, _c = _a.disableBorderBottom, disableBorderBottom = _c === void 0 ? false : _c, props = __rest$1s(_a, ["theme", "children", "className", "closeNav", "closeNavProps", "title", "titleProps", "disableBorderBottom"]);
18187 var layout = useLayoutConfig().layout;
18188 if (layout === "clipped" || layout === "floating") {
18189 return null;
18190 }
18191 var title = null;
18192 if (propTitle) {
18193 title = React__default.createElement(AppBarTitle, __assign$1G({}, titleProps), propTitle);
18194 }
18195 var action = closeNav;
18196 if (typeof action === "undefined") {
18197 action = React__default.createElement(LayoutCloseNavigationButton, __assign$1G({}, closeNavProps));
18198 }
18199 return (React__default.createElement(AppBar, __assign$1G({}, props, { ref: ref, theme: theme, className: classnames(styles$3({ bordered: !disableBorderBottom }), className) }),
18200 title,
18201 children,
18202 action));
18203 });
18204 {
18205 try {
18206 var PropTypes$1y = require("prop-types");
18207 LayoutNavigationHeader.propTypes = {
18208 disableBorderBottom: PropTypes$1y.bool,
18209 className: PropTypes$1y.string,
18210 closeNav: PropTypes$1y.node,
18211 closeNavProps: PropTypes$1y.object,
18212 theme: PropTypes$1y.oneOf(["clear", "primary", "secondary", "default"]),
18213 children: PropTypes$1y.node,
18214 title: PropTypes$1y.node,
18215 titleProps: PropTypes$1y.object,
18216 };
18217 }
18218 catch (error) { }
18219 }
18220
18221 /**
18222 * A hook that implements the base functionality for expanding different tree
18223 * items.
18224 *
18225 * @param defaultExpandedIds Either a list of tree item ids to be expanded by
18226 * default or a function that will return the list of tree item ids to be
18227 * expanded by default
18228 * @return An object containing props that can be passed to the `Tree` component
18229 * to handle the expansion state within the tree.
18230 */
18231 function useTreeItemExpansion(defaultExpandedIds) {
18232 var _a = React.useState(defaultExpandedIds), expandedIds = _a[0], setExpandedIds = _a[1];
18233 var onItemExpansion = React.useCallback(function (itemId, expanded) {
18234 setExpandedIds(function (expandedIds) {
18235 var nextExpandedIds = expandedIds;
18236 var i = expandedIds.indexOf(itemId);
18237 if (i === -1 && expanded) {
18238 nextExpandedIds = expandedIds.slice();
18239 nextExpandedIds.push(itemId);
18240 }
18241 else if (i !== -1 && !expanded) {
18242 nextExpandedIds = expandedIds.slice();
18243 nextExpandedIds.splice(i, 1);
18244 }
18245 return nextExpandedIds;
18246 });
18247 }, []);
18248 var onMultiItemExpansion = React.useCallback(function (itemIds) {
18249 setExpandedIds(itemIds);
18250 }, []);
18251 return {
18252 expandedIds: expandedIds,
18253 onItemExpansion: onItemExpansion,
18254 onMultiItemExpansion: onMultiItemExpansion,
18255 };
18256 }
18257
18258 /**
18259 * A hook that implements the base functionality for selecting different tree
18260 * items.
18261 *
18262 * @param defaultSelectedIds The default list of tree item ids that should be
18263 * expanded by default
18264 * @param multiSelect Boolean if the tree can have multiple items selected or
18265 * not.
18266 * @return an object containing props that can be passed to the `Tree` component
18267 * to handle the selection state within the tree
18268 */
18269 function useTreeItemSelection(defaultSelectedIds, multiSelect) {
18270 if (multiSelect === void 0) { multiSelect = false; }
18271 var _a = React.useState(defaultSelectedIds), selectedIds = _a[0], setSelectedIds = _a[1];
18272 var onItemSelect = React.useCallback(function (itemId) {
18273 setSelectedIds(function (selectedIds) {
18274 if (!multiSelect) {
18275 if (selectedIds[0] === itemId && selectedIds.length === 1) {
18276 return selectedIds;
18277 }
18278 return [itemId];
18279 }
18280 var i = selectedIds.indexOf(itemId);
18281 var nextSelectedIds = selectedIds.slice();
18282 if (i === -1) {
18283 nextSelectedIds.push(itemId);
18284 }
18285 else {
18286 nextSelectedIds.splice(i, 1);
18287 }
18288 return nextSelectedIds;
18289 });
18290 }, [multiSelect]);
18291 var onMultiItemSelect = React.useCallback(function (itemIds) {
18292 setSelectedIds(itemIds);
18293 }, []);
18294 return {
18295 selectedIds: selectedIds,
18296 multiSelect: multiSelect,
18297 onItemSelect: onItemSelect,
18298 onMultiItemSelect: onMultiItemSelect,
18299 };
18300 }
18301
18302 /**
18303 * A "reasonable" default implementation for rendering a label for a tree item.
18304 *
18305 * @private
18306 */
18307 function defaultGetItemLabel(item, labelKey) {
18308 var result = item[labelKey];
18309 if (typeof result === "undefined") {
18310 result = item.children;
18311 }
18312 if (typeof result === "undefined") {
18313 result = null;
18314 }
18315 return result;
18316 }
18317
18318 var warnedOnce = false;
18319 /**
18320 * A "reasonable" default implementation for the getItemValue prop on a tree
18321 * that will warn about items that are not keyboard searchable in non-production
18322 * environments.
18323 *
18324 * @private
18325 */
18326 function defaultGetItemValue(item, valueKey) {
18327 var result = item[valueKey];
18328 {
18329 var type = typeof result;
18330 if (!warnedOnce && type !== "string" && type !== "number") {
18331 warnedOnce = true;
18332 /* eslint-disable no-console */
18333 console.warn("Unable to extract a string or number from an item within the tree for the item:");
18334 console.warn(item);
18335 console.warn("");
18336 console.warn("This will make the item unable to be searched by typing within the tree and should be fixed before pushing to production.");
18337 console.warn(new Error().stack);
18338 }
18339 }
18340 return "" + result;
18341 }
18342
18343 var __assign$1H = (undefined && undefined.__assign) || function () {
18344 __assign$1H = Object.assign || function(t) {
18345 for (var s, i = 1, n = arguments.length; i < n; i++) {
18346 s = arguments[i];
18347 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18348 t[p] = s[p];
18349 }
18350 return t;
18351 };
18352 return __assign$1H.apply(this, arguments);
18353 };
18354 var __rest$1t = (undefined && undefined.__rest) || function (s, e) {
18355 var t = {};
18356 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
18357 t[p] = s[p];
18358 if (s != null && typeof Object.getOwnPropertySymbols === "function")
18359 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18360 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18361 t[p[i]] = s[p[i]];
18362 }
18363 return t;
18364 };
18365 /**
18366 * The `TreeGroup` component is used to render a tree item's nested items
18367 * whenever the `expanded` prop is `true`. It uses the `Collapse` component
18368 * behind the scenes to animate in-and-out of view and will fully unrender when
18369 * the `expanded` prop is `false`.
18370 */
18371 var TreeGroup = React.forwardRef(function TreeGroup(_a, ref) {
18372 var style = _a.style, className = _a.className, collapsed = _a.collapsed, minHeight = _a.minHeight, minPaddingBottom = _a.minPaddingBottom, minPaddingTop = _a.minPaddingTop, timeout = _a.timeout, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, children = _a.children, temporary = _a.temporary, props = __rest$1t(_a, ["style", "className", "collapsed", "minHeight", "minPaddingBottom", "minPaddingTop", "timeout", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "children", "temporary"]);
18373 return (React__default.createElement(Collapse, { style: style, className: classnames("rmd-tree-group", className), collapsed: collapsed, minHeight: minHeight, minPaddingBottom: minPaddingBottom, minPaddingTop: minPaddingTop, timeout: timeout, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, temporary: temporary },
18374 React__default.createElement(List, __assign$1H({}, props, { ref: ref, role: "group" }), children)));
18375 });
18376 {
18377 try {
18378 var PropTypes$1z = require("prop-types");
18379 TreeGroup.propTypes = {
18380 style: PropTypes$1z.object,
18381 className: PropTypes$1z.string,
18382 collapsed: PropTypes$1z.bool.isRequired,
18383 minHeight: PropTypes$1z.oneOfType([PropTypes$1z.string, PropTypes$1z.number]),
18384 minPaddingTop: PropTypes$1z.oneOfType([PropTypes$1z.string, PropTypes$1z.number]),
18385 minPaddingBottom: PropTypes$1z.oneOfType([
18386 PropTypes$1z.string,
18387 PropTypes$1z.number,
18388 ]),
18389 timeout: PropTypes$1z.oneOfType([
18390 PropTypes$1z.number,
18391 PropTypes$1z.shape({
18392 appear: PropTypes$1z.number,
18393 enter: PropTypes$1z.number,
18394 exit: PropTypes$1z.number,
18395 }),
18396 ]),
18397 temporary: PropTypes$1z.bool,
18398 children: PropTypes$1z.node,
18399 onEnter: PropTypes$1z.func,
18400 onEntering: PropTypes$1z.func,
18401 onEntered: PropTypes$1z.func,
18402 onExit: PropTypes$1z.func,
18403 onExiting: PropTypes$1z.func,
18404 onExited: PropTypes$1z.func,
18405 };
18406 }
18407 catch (e) { }
18408 }
18409
18410 var __assign$1I = (undefined && undefined.__assign) || function () {
18411 __assign$1I = Object.assign || function(t) {
18412 for (var s, i = 1, n = arguments.length; i < n; i++) {
18413 s = arguments[i];
18414 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18415 t[p] = s[p];
18416 }
18417 return t;
18418 };
18419 return __assign$1I.apply(this, arguments);
18420 };
18421 var __rest$1u = (undefined && undefined.__rest) || function (s, e) {
18422 var t = {};
18423 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
18424 t[p] = s[p];
18425 if (s != null && typeof Object.getOwnPropertySymbols === "function")
18426 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18427 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18428 t[p[i]] = s[p[i]];
18429 }
18430 return t;
18431 };
18432 var block$10 = bem("rmd-tree-item");
18433 /**
18434 * The `TreeItemExpanderIcon` is a simple wrapper of the `IconRotator` prop to
18435 * be used within a `TreeView`.
18436 */
18437 function TreeItemExpanderIcon(_a) {
18438 var className = _a.className, children = _a.children, _b = _a.rotated, rotated = _b === void 0 ? false : _b, props = __rest$1u(_a, ["className", "children", "rotated"]);
18439 var icon = useIcon("expander", children);
18440 return (React__default.createElement(IconRotator, __assign$1I({}, props, { rotated: rotated, className: classnames(block$10("rotator-icon"), className) }), icon));
18441 }
18442
18443 var __assign$1J = (undefined && undefined.__assign) || function () {
18444 __assign$1J = Object.assign || function(t) {
18445 for (var s, i = 1, n = arguments.length; i < n; i++) {
18446 s = arguments[i];
18447 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18448 t[p] = s[p];
18449 }
18450 return t;
18451 };
18452 return __assign$1J.apply(this, arguments);
18453 };
18454 var __rest$1v = (undefined && undefined.__rest) || function (s, e) {
18455 var t = {};
18456 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
18457 t[p] = s[p];
18458 if (s != null && typeof Object.getOwnPropertySymbols === "function")
18459 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18460 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18461 t[p[i]] = s[p[i]];
18462 }
18463 return t;
18464 };
18465 var block$11 = bem("rmd-tree-item");
18466 /**
18467 * This component renders an item within a tree with optional child items. This
18468 * should almost always be used from the `itemRenderer` prop from the `Tree`
18469 * component as it provides a lot of the required a11y props for you.
18470 */
18471 var TreeItem = React.forwardRef(function TreeItem(_a, ref) {
18472 var _b;
18473 var id = _a.id, propClassName = _a.className, liStyle = _a.liStyle, liClassName = _a.liClassName, liRef = _a.liRef, depth = _a.depth, listSize = _a.listSize, itemIndex = _a.itemIndex, renderChildItems = _a.renderChildItems, expanded = _a.expanded, selected = _a.selected, focused = _a.focused, propExpanderIcon = _a.expanderIcon, _c = _a.expanderLeft, expanderLeft = _c === void 0 ? false : _c, textClassName = _a.textClassName, secondaryTextClassName = _a.secondaryTextClassName, _d = _a.textChildren, textChildren = _d === void 0 ? true : _d, primaryText = _a.primaryText, secondaryText = _a.secondaryText, propLeftAddon = _a.leftAddon, _e = _a.leftAddonType, leftAddonType = _e === void 0 ? "icon" : _e, _f = _a.leftAddonPosition, leftAddonPosition = _f === void 0 ? "middle" : _f, propRightAddon = _a.rightAddon, _g = _a.rightAddonType, rightAddonType = _g === void 0 ? "icon" : _g, _h = _a.rightAddonPosition, rightAddonPosition = _h === void 0 ? "middle" : _h, forceAddonWrap = _a.forceAddonWrap, _j = _a.height, height = _j === void 0 ? "auto" : _j, _k = _a.threeLines, threeLines = _k === void 0 ? false : _k, children = _a.children, _l = _a.contentComponent, Content = _l === void 0 ? "span" : _l, propIsLink = _a.isLink, _m = _a.disabled, disabled = _m === void 0 ? false : _m, readOnly = _a.readOnly, onFocus = _a.onFocus, props = __rest$1v(_a, ["id", "className", "liStyle", "liClassName", "liRef", "depth", "listSize", "itemIndex", "renderChildItems", "expanded", "selected", "focused", "expanderIcon", "expanderLeft", "textClassName", "secondaryTextClassName", "textChildren", "primaryText", "secondaryText", "leftAddon", "leftAddonType", "leftAddonPosition", "rightAddon", "rightAddonType", "rightAddonPosition", "forceAddonWrap", "height", "threeLines", "children", "contentComponent", "isLink", "disabled", "readOnly", "onFocus"]);
18474 var expanderIcon = useIcon("expander", propExpanderIcon);
18475 var isLink = typeof propIsLink === "boolean"
18476 ? propIsLink
18477 : typeof Content !== "string" || Content === "a";
18478 var _o = useInteractionStates({
18479 disabled: disabled,
18480 className: propClassName,
18481 handlers: isLink ? props : undefined,
18482 disableSpacebarClick: isLink,
18483 }), ripples = _o.ripples, className = _o.className, handlers = _o.handlers;
18484 var group;
18485 var leftAddon = propLeftAddon;
18486 var rightAddon = propRightAddon;
18487 if (renderChildItems) {
18488 var icon = (React__default.createElement(TreeItemExpanderIcon, { rotated: expanded }, expanderIcon));
18489 if (expanderLeft) {
18490 leftAddon = icon;
18491 }
18492 else {
18493 rightAddon = icon;
18494 }
18495 group = React__default.createElement(TreeGroup, { collapsed: !expanded }, renderChildItems());
18496 }
18497 var handleFocus = React.useCallback(function (event) {
18498 if (onFocus) {
18499 onFocus(event);
18500 }
18501 event.preventDefault();
18502 var tree = event.currentTarget.closest('[role="tree"]');
18503 if (tree) {
18504 tree.focus();
18505 }
18506 }, [onFocus]);
18507 var a11y = __assign$1J(__assign$1J({ "aria-expanded": renderChildItems ? expanded : undefined, "aria-level": depth + 1, "aria-setsize": listSize, "aria-posinset": itemIndex + 1, "aria-disabled": disabled ? "true" : undefined, id: id, role: "treeitem", tabIndex: -1 }, handlers), { onFocus: handleFocus });
18508 var noA11y = { role: "none" };
18509 return (React__default.createElement("li", __assign$1J({}, (isLink ? noA11y : a11y), { ref: liRef, style: liStyle, className: classnames(block$11(), liClassName) }),
18510 React__default.createElement(Content, __assign$1J({}, props, (isLink ? a11y : undefined), { ref: ref, className: classnames(block$11("content", (_b = {
18511 link: isLink,
18512 clickable: !disabled && !readOnly
18513 },
18514 _b[height] = height !== "auto" && height !== "normal",
18515 _b["three-lines"] = !!secondaryText && threeLines,
18516 _b.selected = selected,
18517 _b.focused = focused,
18518 _b)), className) }),
18519 React__default.createElement(ListItemChildren, { textClassName: textClassName, secondaryTextClassName: secondaryTextClassName, textChildren: textChildren, primaryText: primaryText, secondaryText: secondaryText, leftAddon: leftAddon, leftAddonType: leftAddonType, leftAddonPosition: leftAddonPosition, rightAddon: rightAddon, rightAddonType: rightAddonType, rightAddonPosition: rightAddonPosition, forceAddonWrap: forceAddonWrap }, children),
18520 ripples),
18521 group));
18522 });
18523 {
18524 try {
18525 var PropTypes$1A = require("prop-types");
18526 TreeItem.propTypes = {
18527 id: PropTypes$1A.string.isRequired,
18528 depth: PropTypes$1A.number.isRequired,
18529 itemIndex: PropTypes$1A.number.isRequired,
18530 listSize: PropTypes$1A.number.isRequired,
18531 selected: PropTypes$1A.bool.isRequired,
18532 expanded: PropTypes$1A.bool.isRequired,
18533 focused: PropTypes$1A.bool.isRequired,
18534 renderChildItems: PropTypes$1A.func,
18535 className: PropTypes$1A.string,
18536 liRef: PropTypes$1A.oneOfType([PropTypes$1A.func, PropTypes$1A.object]),
18537 liStyle: PropTypes$1A.object,
18538 liClassName: PropTypes$1A.string,
18539 textClassName: PropTypes$1A.string,
18540 secondaryTextClassName: PropTypes$1A.string,
18541 isLink: PropTypes$1A.bool,
18542 onFocus: PropTypes$1A.func,
18543 contentComponent: PropTypes$1A.oneOfType([
18544 PropTypes$1A.string,
18545 PropTypes$1A.func,
18546 PropTypes$1A.object,
18547 ]),
18548 disabled: PropTypes$1A.bool,
18549 readOnly: PropTypes$1A.bool,
18550 expanderLeft: PropTypes$1A.bool,
18551 expanderIcon: PropTypes$1A.node,
18552 height: PropTypes$1A.oneOf([
18553 "auto",
18554 "normal",
18555 "medium",
18556 "large",
18557 "extra-large",
18558 ]),
18559 threeLines: PropTypes$1A.bool,
18560 textChildren: PropTypes$1A.bool,
18561 children: PropTypes$1A.node,
18562 primaryText: PropTypes$1A.node,
18563 secondaryText: PropTypes$1A.node,
18564 leftAddon: PropTypes$1A.node,
18565 leftAddonType: PropTypes$1A.oneOf([
18566 "icon",
18567 "avatar",
18568 "media",
18569 "large-media",
18570 ]),
18571 leftAddonPosition: PropTypes$1A.oneOf(["top", "middle", "bottom"]),
18572 rightAddon: PropTypes$1A.node,
18573 rightAddonType: PropTypes$1A.oneOf([
18574 "icon",
18575 "avatar",
18576 "media",
18577 "large-media",
18578 ]),
18579 rightAddonPosition: PropTypes$1A.oneOf(["top", "middle", "bottom"]),
18580 forceAddonWrap: PropTypes$1A.bool,
18581 };
18582 }
18583 catch (e) { }
18584 }
18585
18586 var __assign$1K = (undefined && undefined.__assign) || function () {
18587 __assign$1K = Object.assign || function(t) {
18588 for (var s, i = 1, n = arguments.length; i < n; i++) {
18589 s = arguments[i];
18590 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18591 t[p] = s[p];
18592 }
18593 return t;
18594 };
18595 return __assign$1K.apply(this, arguments);
18596 };
18597 function isElementType(contentComponent) {
18598 return typeof contentComponent !== "undefined";
18599 }
18600 /**
18601 * A "reasonable" default implementation for rendering a tree item that extracts
18602 * the most used ListItem props and passes them down to the `TreeItem`.
18603 *
18604 * This is actually exported from this package so it can be used along with a
18605 * custom renderer for all items that have `isCustom` enabled.
18606 *
18607 * ```tsx
18608 * const itemRenderer: TreeItemRenderer<MyTreeItem> = (
18609 * itemProps,
18610 * item,
18611 * treeProps
18612 * ) => {
18613 * const { key } = itemProps;
18614 * const { isCustom } = item;
18615 * if (isCustom) {
18616 * return <MyFancyNonTreeItem item={item} key={key} />
18617 * }
18618 *
18619 * return defaultTreeItemRenderer(itemProps, item, treeProps);
18620 * }
18621 * ```
18622 *
18623 * @param itemProps The providied tree item props that should be passed down for
18624 * keyboard functionality, accessibility, and a `key` for the item.
18625 * @param item The item itself. This is used to extract any of the common
18626 * ListItemChildren props.
18627 * @param treeProps The props for the Tree this item is being rendered in. This
18628 * is really used so the `expanderLeft`, `expanderIcon`, `labelKey`,
18629 * `getItemLabel`, and `getItemProps` can be used to render the TreeItem itself.
18630 * @return a `TreeItem` or a custom `ReactElement`
18631 */
18632 function defaultTreeItemRenderer(itemProps, item, treeProps) {
18633 var treeItem = item;
18634 var focused = itemProps.focused, selected = itemProps.selected, expanded = itemProps.expanded;
18635 var expanderLeft = treeProps.expanderLeft, expanderIcon = treeProps.expanderIcon, labelKey = treeProps.labelKey, getItemLabel = treeProps.getItemLabel, getItemProps = treeProps.getItemProps, linkComponent = treeProps.linkComponent;
18636 var leftAddon = treeItem.leftAddon, leftAddonType = treeItem.leftAddonType, leftAddonPosition = treeItem.leftAddonPosition, rightAddon = treeItem.rightAddon, rightAddonType = treeItem.rightAddonType, rightAddonPosition = treeItem.rightAddonPosition, as = treeItem.as, to = treeItem.to, href = treeItem.href;
18637 var isLink;
18638 var readOnly;
18639 var disabled;
18640 if (typeof treeItem.isLink === "boolean") {
18641 (isLink = treeItem.isLink);
18642 }
18643 if (typeof treeItem.readOnly === "boolean") {
18644 (readOnly = treeItem.readOnly);
18645 }
18646 if (typeof treeItem.disabled === "boolean") {
18647 (disabled = treeItem.disabled);
18648 }
18649 var overrides = getItemProps(__assign$1K(__assign$1K({}, treeItem), { focused: focused,
18650 selected: selected,
18651 expanded: expanded }));
18652 var children = (overrides && overrides.children) || undefined;
18653 if (typeof children === "undefined") {
18654 children = getItemLabel(treeItem, labelKey);
18655 }
18656 var contentComponent;
18657 if (isElementType(treeItem.contentComponent)) {
18658 (contentComponent = treeItem.contentComponent);
18659 }
18660 if (isLink !== false && (to || href || isLink)) {
18661 contentComponent = contentComponent || linkComponent;
18662 }
18663 return (React__default.createElement(TreeItem, __assign$1K({}, itemProps, { as: as, to: to, href: href, isLink: isLink, contentComponent: contentComponent, readOnly: readOnly, disabled: disabled, leftAddon: leftAddon, leftAddonType: leftAddonType, leftAddonPosition: leftAddonPosition, rightAddon: rightAddon, rightAddonType: rightAddonType, rightAddonPosition: rightAddonPosition, expanderLeft: expanderLeft, expanderIcon: expanderIcon }, overrides), children));
18664 }
18665
18666 /**
18667 * A small util for recursively generating a unique id for each tree item based
18668 * on the current depth within the tree and the index within the current list.
18669 *
18670 * @param treeId The base id of the tree element
18671 * @param index The current index of the item
18672 * @param parentIndexes A list of parent indexes that are joined together with
18673 * `'-'` to generate the full id.
18674 * @private
18675 */
18676 function getTreeItemId(treeId, index, parentIndexes) {
18677 if (parentIndexes === void 0) { parentIndexes = []; }
18678 if (!parentIndexes.length) {
18679 return treeId + "-item-" + (index + 1);
18680 }
18681 return treeId + "-item-" + parentIndexes.join("-") + "-" + (index + 1);
18682 }
18683
18684 var __spreadArrays$5 = (undefined && undefined.__spreadArrays) || function () {
18685 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
18686 for (var r = Array(s), k = 0, i = 0; i < il; i++)
18687 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
18688 r[k] = a[j];
18689 return r;
18690 };
18691 function flatten(_a) {
18692 var list = _a.list, item = _a.item, index = _a.index, baseId = _a.baseId, parentIndexes = _a.parentIndexes, valueKey = _a.valueKey, getItemValue = _a.getItemValue;
18693 if (item.isCustom) {
18694 return list;
18695 }
18696 var id = getTreeItemId(baseId, index, parentIndexes);
18697 var value = getItemValue(item, valueKey);
18698 var itemId = item.itemId, parentId = item.parentId, childItems = item.childItems;
18699 list.push({
18700 id: id,
18701 itemId: itemId,
18702 parentId: parentId,
18703 isParent: !!childItems,
18704 value: value,
18705 });
18706 if (!childItems) {
18707 return list;
18708 }
18709 var nextIndexes = __spreadArrays$5(parentIndexes, [index + 1]);
18710 childItems.forEach(function (child, childIndex) {
18711 flatten({
18712 list: list,
18713 item: child,
18714 index: childIndex,
18715 valueKey: valueKey,
18716 getItemValue: getItemValue,
18717 baseId: baseId,
18718 parentIndexes: nextIndexes,
18719 });
18720 });
18721 return list;
18722 }
18723 /**
18724 * Creates a flattened and ordered list of all the tree items that are current visible
18725 * in the DOM based on the expanded ids. This is only required for handling keyboard
18726 * navigation with `aria-activedescendant` movement so the items can be "focused" with
18727 * typeahead and keyboard movement since the keyboard movement API requires DOM refs
18728 * to be passed to each element.
18729 *
18730 * This flattened list will remove the `childItems` (if it existed) on each item for
18731 * simplicity and the child items aren't needed for this flattened list.
18732 *
18733 * @private
18734 */
18735 function useFlattenedTreeList(_a) {
18736 var id = _a.id, items = _a.items, rootId = _a.rootId, expandedIds = _a.expandedIds, valueKey = _a.valueKey, getItemValue = _a.getItemValue;
18737 var flattenedItems = React.useMemo(function () {
18738 return items.reduce(function (list, item, index) {
18739 return flatten({
18740 list: list,
18741 item: item,
18742 index: index,
18743 valueKey: valueKey,
18744 getItemValue: getItemValue,
18745 baseId: id,
18746 parentIndexes: [],
18747 });
18748 }, []);
18749 }, [getItemValue, id, items, valueKey]);
18750 var _b = React.useMemo(function () {
18751 var index = 0;
18752 return flattenedItems.reduce(function (collection, item) {
18753 var _a, _b;
18754 var parentId = item.parentId, itemId = item.itemId;
18755 var isVisible = parentId === rootId;
18756 if (parentId !== null && expandedIds.includes(parentId)) {
18757 // need to also make sure that the parent is visible
18758 isVisible =
18759 ((_b = (_a = collection.itemRefs[parentId]) === null || _a === void 0 ? void 0 : _a.visibleIndex) !== null && _b !== void 0 ? _b : -1) !== -1;
18760 }
18761 collection.itemRefs[itemId] = {
18762 id: item.id,
18763 ref: { current: null },
18764 visibleIndex: isVisible ? index : -1,
18765 };
18766 if (isVisible) {
18767 index += 1;
18768 collection.visibleItems.push(item);
18769 }
18770 return collection;
18771 }, { visibleItems: [], itemRefs: {} });
18772 }, [expandedIds, flattenedItems, rootId]), visibleItems = _b.visibleItems, itemRefs = _b.itemRefs;
18773 return [visibleItems, itemRefs, flattenedItems];
18774 }
18775
18776 var __assign$1L = (undefined && undefined.__assign) || function () {
18777 __assign$1L = Object.assign || function(t) {
18778 for (var s, i = 1, n = arguments.length; i < n; i++) {
18779 s = arguments[i];
18780 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18781 t[p] = s[p];
18782 }
18783 return t;
18784 };
18785 return __assign$1L.apply(this, arguments);
18786 };
18787 /**
18788 * This util performantly builds a nested list of tree items from a giant flat
18789 * list of items by linking items together with the provided `parentId`. This
18790 * will also recursively build the tree and _hopefully_ all items will be added.
18791 *
18792 * If there are no children for a specific item
18793 *
18794 * TODO: Add a dev-only warning/error if the tree is built, but there are some
18795 * items that never referenced another `itemId`
18796 *
18797 * @private
18798 */
18799 function buildTree(parentId, items, sort) {
18800 var childItems = [];
18801 // doing a "reverse" order filter/move so that the items array shrinks while
18802 // looping. This makes it so that the entire items array doesn't need to
18803 // continually be looped through as more items are added to the tree, only the
18804 // remaining items will have to be looped
18805 var i = items.length;
18806 while (i > 0) {
18807 i -= 1;
18808 if (items[i] && items[i].parentId === parentId) {
18809 var item = items.splice(i, 1)[0];
18810 // shallow cloning so childItems doesn't get applied to the original data
18811 // set
18812 childItems.unshift(__assign$1L({}, item));
18813 }
18814 }
18815 if (!childItems.length) {
18816 return undefined;
18817 }
18818 childItems.forEach(function (childItem) {
18819 childItem.childItems = buildTree(childItem.itemId, items, sort);
18820 });
18821 return sort ? sort(childItems) : childItems;
18822 }
18823 /**
18824 * This is an internal hook that will create a renderable nested list view of
18825 * the tree data.
18826 *
18827 * @private
18828 * @param tree The full tree to convert to a nested list representation
18829 * @param sort An optional function that sorts the items at each level
18830 * @param rootId The starting `parentId` to use while building the tree. This
18831 * defaults to `null` since this is most likely the general use case, but if
18832 * there's a different unique identifier for the "root level" items, that can be
18833 * used instead.
18834 */
18835 function useNestedTreeList(tree, sort, rootId) {
18836 if (rootId === void 0) { rootId = null; }
18837 return React.useMemo(function () { return buildTree(rootId, Object.values(tree), sort) || []; }, [
18838 rootId,
18839 sort,
18840 tree,
18841 ]);
18842 }
18843
18844 var __assign$1M = (undefined && undefined.__assign) || function () {
18845 __assign$1M = Object.assign || function(t) {
18846 for (var s, i = 1, n = arguments.length; i < n; i++) {
18847 s = arguments[i];
18848 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
18849 t[p] = s[p];
18850 }
18851 return t;
18852 };
18853 return __assign$1M.apply(this, arguments);
18854 };
18855 var __spreadArrays$6 = (undefined && undefined.__spreadArrays) || function () {
18856 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
18857 for (var r = Array(s), k = 0, i = 0; i < il; i++)
18858 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
18859 r[k] = a[j];
18860 return r;
18861 };
18862 /**
18863 * This hook handles all the complex and "fun" stuff for selecting keyboard
18864 * accessibility within a tree and enabling keyboard movement, selection, and
18865 * expansion.
18866 *
18867 * @private
18868 */
18869 function useTreeMovement(_a) {
18870 var id = _a.id, data = _a.data, rootId = _a.rootId, sort = _a.sort, onBlur = _a.onBlur, onFocus = _a.onFocus, onKeyDown = _a.onKeyDown, multiSelect = _a.multiSelect, selectedIds = _a.selectedIds, onItemSelect = _a.onItemSelect, onMultiItemSelect = _a.onMultiItemSelect, expandedIds = _a.expandedIds, onItemExpansion = _a.onItemExpansion, onMultiItemExpansion = _a.onMultiItemExpansion, valueKey = _a.valueKey, getItemValue = _a.getItemValue;
18871 var items = useNestedTreeList(data, sort, rootId);
18872 var _b = useFlattenedTreeList({
18873 id: id,
18874 items: items,
18875 expandedIds: expandedIds,
18876 rootId: rootId,
18877 valueKey: valueKey,
18878 getItemValue: getItemValue,
18879 }), visibleItems = _b[0], itemIdRefs = _b[1], flattenedItems = _b[2];
18880 var isKeyboard = useIsUserInteractionMode("keyboard");
18881 var _c = useActiveDescendantMovement(__assign$1M(__assign$1M({}, VERTICAL_TREE), { items: visibleItems, baseId: id, getId: function (_baseId, index) {
18882 return (visibleItems[index] || { id: "" }).id;
18883 },
18884 onSpace: function (focusedIndex) {
18885 var item = visibleItems[focusedIndex];
18886 if (!item) {
18887 return;
18888 }
18889 var itemId = item.itemId;
18890 onItemSelect(itemId);
18891 },
18892 onChange: function (data) {
18893 var index = data.index, target = data.target, query = data.query;
18894 var itemId = visibleItems[index].itemId;
18895 var item = itemIdRefs[itemId].ref.current;
18896 if (item && target && target.scrollHeight > target.offsetHeight) {
18897 scrollIntoView(target, item);
18898 }
18899 if (!multiSelect) {
18900 return;
18901 }
18902 var isToStart = query.endsWith(exports.JumpMovementKey.ControlShiftHome);
18903 var isToEnd = query.endsWith(exports.JumpMovementKey.ControlShiftEnd);
18904 if (!isToStart && !isToEnd) {
18905 return;
18906 }
18907 var start = isToStart ? 0 : focusedIndex;
18908 var end = isToStart ? focusedIndex + 1 : undefined;
18909 var jumpSelectedIds = visibleItems
18910 .slice(start, end)
18911 .map(function (_a) {
18912 var itemId = _a.itemId;
18913 return itemId;
18914 });
18915 var uniqueSelectedIds = Array.from(new Set(__spreadArrays$6(selectedIds, jumpSelectedIds)));
18916 if (selectedIds.length !== uniqueSelectedIds.length) {
18917 onMultiItemSelect(uniqueSelectedIds);
18918 }
18919 },
18920 onKeyDown: function (event) {
18921 var _a, _b, _c, _d;
18922 if (onKeyDown) {
18923 onKeyDown(event);
18924 }
18925 var item = visibleItems[focusedIndex];
18926 if (!item) {
18927 return;
18928 }
18929 var itemId = item.itemId, parentId = item.parentId, isParent = item.isParent;
18930 switch (event.key) {
18931 case "Enter": {
18932 if (isParent) {
18933 onItemExpansion(itemId, !expandedIds.includes(itemId));
18934 return;
18935 }
18936 var node = itemIdRefs[itemId].ref.current;
18937 var anchor = node &&
18938 node.getAttribute("role") === "none" &&
18939 node.querySelector("a[href]");
18940 if (!anchor) {
18941 onItemSelect(itemId);
18942 return;
18943 }
18944 // if a user is navigating through the app with a keyboard and presses
18945 // cmd+shift+enter (Mac) or ctrl+shift+enter (Windows), the link will
18946 // be forcefully opened in a new tab irregardless of the target
18947 // attribute on the anchor tag. Since a tree doesn't actually focus
18948 // the link in this case, need to "polyfill" it with this workaround.
18949 // the `meta` key is for Mac and `ctrlKey` for Windows
18950 var forceNewTab = event.shiftKey && (event.metaKey || event.ctrlKey);
18951 var prevTarget = anchor.target;
18952 if (forceNewTab) {
18953 anchor.target = "_blank";
18954 }
18955 anchor.click();
18956 if (forceNewTab) {
18957 anchor.target = prevTarget;
18958 }
18959 break;
18960 }
18961 case "ArrowRight":
18962 if (!isParent) {
18963 return;
18964 }
18965 if (!expandedIds.includes(itemId)) {
18966 onItemExpansion(itemId, true);
18967 }
18968 else {
18969 var nextIndex = focusedIndex + 1;
18970 var nextItem = (_b = itemIdRefs[(_a = visibleItems[nextIndex]) === null || _a === void 0 ? void 0 : _a.itemId]) === null || _b === void 0 ? void 0 : _b.ref.current;
18971 setFocusedIndex(nextIndex);
18972 scrollIntoView(event.currentTarget, nextItem);
18973 }
18974 break;
18975 case "ArrowLeft":
18976 if (isParent && expandedIds.includes(itemId)) {
18977 onItemExpansion(itemId, false);
18978 }
18979 else if (parentId !== rootId) {
18980 var parentIndex = visibleItems.findIndex(function (item) { return item.itemId === parentId; });
18981 var parentItem = (_d = itemIdRefs[(_c = visibleItems[parentIndex]) === null || _c === void 0 ? void 0 : _c.itemId]) === null || _d === void 0 ? void 0 : _d.ref.current;
18982 setFocusedIndex(parentIndex);
18983 scrollIntoView(event.currentTarget, parentItem);
18984 }
18985 break;
18986 case "a": {
18987 if (!multiSelect || !event.ctrlKey) {
18988 return;
18989 }
18990 event.preventDefault();
18991 var allItemIds = visibleItems.map(function (_a) {
18992 var itemId = _a.itemId;
18993 return itemId;
18994 });
18995 if (selectedIds.length === allItemIds.length) {
18996 onMultiItemSelect([]);
18997 }
18998 else {
18999 onMultiItemSelect(allItemIds);
19000 }
19001 break;
19002 }
19003 case "*": {
19004 var item_1 = visibleItems[focusedIndex];
19005 if (!item_1) {
19006 return;
19007 }
19008 var expectedExpandedIds = visibleItems
19009 .filter(function (_a) {
19010 var isParent = _a.isParent, parentId = _a.parentId;
19011 return isParent && parentId === item_1.parentId;
19012 })
19013 .map(function (_a) {
19014 var itemId = _a.itemId;
19015 return itemId;
19016 });
19017 var nextIds = Array.from(new Set(__spreadArrays$6(expandedIds, expectedExpandedIds)));
19018 if (nextIds.length !== expandedIds.length) {
19019 onMultiItemExpansion(nextIds);
19020 // since new items will be rendered, need to also update the focused
19021 // index so the currently active item is still the "focused" item
19022 //
19023 // TODO: Look into a much better way to handle this sort of stuff..
19024 // This still doesn't correctly scroll the active element into view.
19025 // I should probably move all the scroll behavior into a useEffect
19026 // for whenever the focusedIndex changes.
19027 var visibleCount = 0;
19028 var lookup = {};
19029 for (var i = 0; i < flattenedItems.length; i += 1) {
19030 var item_2 = flattenedItems[i];
19031 var isVisible = item_2.parentId === rootId;
19032 if (item_2.parentId !== null && nextIds.includes(item_2.parentId)) {
19033 isVisible = !!lookup[item_2.parentId];
19034 }
19035 lookup[item_2.itemId] = isVisible;
19036 if (itemId === item_2.itemId) {
19037 setFocusedIndex(visibleCount);
19038 return;
19039 }
19040 if (isVisible) {
19041 visibleCount += 1;
19042 }
19043 }
19044 }
19045 }
19046 // no default
19047 }
19048 } })), activeId = _c.activeId, handleKeyDown = _c.onKeyDown, focusedIndex = _c.focusedIndex, setFocusedIndex = _c.setFocusedIndex;
19049 var lastFocus = React.useRef(0);
19050 var handleBlur = React.useCallback(function (event) {
19051 if (onBlur) {
19052 onBlur(event);
19053 }
19054 if (document.activeElement &&
19055 event.currentTarget.contains(document.activeElement)) {
19056 return;
19057 }
19058 lastFocus.current = focusedIndex;
19059 setFocusedIndex(-1);
19060 }, [focusedIndex, onBlur, setFocusedIndex]);
19061 var handleFocus = React.useCallback(function (event) {
19062 var _a, _b;
19063 if (onFocus) {
19064 onFocus(event);
19065 }
19066 if (focusedIndex !== -1) {
19067 // this happens when a tree item is clicked with the mouse or touch
19068 return;
19069 }
19070 var index = -1;
19071 // try to "focus" the first selected itemId if there is a selection.
19072 if (selectedIds.length) {
19073 index = visibleItems.findIndex(function (item) {
19074 return selectedIds.includes(item.itemId);
19075 });
19076 }
19077 // fallback to the first visible tree item if there were no selected ids
19078 if (index === -1) {
19079 index = Math.max(0, Math.min(lastFocus.current, visibleItems.length));
19080 }
19081 var currentItem = (_b = itemIdRefs[(_a = visibleItems[index]) === null || _a === void 0 ? void 0 : _a.itemId]) === null || _b === void 0 ? void 0 : _b.ref.current;
19082 if (currentItem && isKeyboard) {
19083 scrollIntoView(event.currentTarget, currentItem);
19084 }
19085 setFocusedIndex(index);
19086 }, [
19087 focusedIndex,
19088 isKeyboard,
19089 itemIdRefs,
19090 onFocus,
19091 selectedIds,
19092 setFocusedIndex,
19093 visibleItems,
19094 ]);
19095 var setActiveId = React.useCallback(function (itemId) {
19096 var index = visibleItems.findIndex(function (item) { return item.itemId === itemId; });
19097 if (index !== -1) {
19098 setFocusedIndex(index);
19099 }
19100 }, [setFocusedIndex, visibleItems]);
19101 return {
19102 items: items,
19103 activeId: activeId,
19104 setActiveId: setActiveId,
19105 itemIdRefs: itemIdRefs,
19106 handleBlur: handleBlur,
19107 handleFocus: handleFocus,
19108 handleKeyDown: handleKeyDown,
19109 };
19110 }
19111
19112 var __assign$1N = (undefined && undefined.__assign) || function () {
19113 __assign$1N = Object.assign || function(t) {
19114 for (var s, i = 1, n = arguments.length; i < n; i++) {
19115 s = arguments[i];
19116 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19117 t[p] = s[p];
19118 }
19119 return t;
19120 };
19121 return __assign$1N.apply(this, arguments);
19122 };
19123 var __rest$1w = (undefined && undefined.__rest) || function (s, e) {
19124 var t = {};
19125 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
19126 t[p] = s[p];
19127 if (s != null && typeof Object.getOwnPropertySymbols === "function")
19128 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19129 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19130 t[p[i]] = s[p[i]];
19131 }
19132 return t;
19133 };
19134 var __spreadArrays$7 = (undefined && undefined.__spreadArrays) || function () {
19135 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
19136 for (var r = Array(s), k = 0, i = 0; i < il; i++)
19137 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
19138 r[k] = a[j];
19139 return r;
19140 };
19141 var block$12 = bem("rmd-tree");
19142 var defaultGetItemProps = function () { return undefined; };
19143 /**
19144 * Creates an accessible tree widget that allows you to show hierarchical data
19145 * in a list presentation view. This component requires the selection and
19146 * expansion state to be provided/controlled but you can use the
19147 * `useTreeItemSelection` and `useTreeItemExpansion` hooks for a great starting
19148 * point for this functionality.
19149 */
19150 var Tree = React.forwardRef(function Tree(// eslint-disable-line @typescript-eslint/no-explicit-any
19151 _a, ref) {
19152 var id = _a.id, className = _a.className, _b = _a.itemRenderer, itemRenderer = _b === void 0 ? defaultTreeItemRenderer : _b, data = _a.data, _c = _a.multiSelect, multiSelect = _c === void 0 ? false : _c, selectedIds = _a.selectedIds, onItemSelect = _a.onItemSelect, onMultiItemSelect = _a.onMultiItemSelect, expandedIds = _a.expandedIds, onItemExpansion = _a.onItemExpansion, onMultiItemExpansion = _a.onMultiItemExpansion, _d = _a.expanderLeft, expanderLeft = _d === void 0 ? false : _d, propExpanderIcon = _a.expanderIcon, _e = _a.labelKey, labelKey = _e === void 0 ? "name" : _e, _f = _a.valueKey, valueKey = _f === void 0 ? "name" : _f, _g = _a.getItemLabel, getItemLabel = _g === void 0 ? defaultGetItemLabel : _g, _h = _a.getItemValue, getItemValue = _h === void 0 ? defaultGetItemValue : _h, _j = _a.getItemProps, getItemProps = _j === void 0 ? defaultGetItemProps : _j, linkComponent = _a.linkComponent, sort = _a.sort, _k = _a.rootId, rootId = _k === void 0 ? null : _k, onBlur = _a.onBlur, onFocus = _a.onFocus, onKeyDown = _a.onKeyDown, props = __rest$1w(_a, // eslint-disable-line @typescript-eslint/no-explicit-any
19153 ["id", "className", "itemRenderer", "data", "multiSelect", "selectedIds", "onItemSelect", "onMultiItemSelect", "expandedIds", "onItemExpansion", "onMultiItemExpansion", "expanderLeft", "expanderIcon", "labelKey", "valueKey", "getItemLabel", "getItemValue", "getItemProps", "linkComponent", "sort", "rootId", "onBlur", "onFocus", "onKeyDown"]);
19154 var expanderIcon = useIcon("dropdown", propExpanderIcon);
19155 var _l = useTreeMovement({
19156 id: id,
19157 data: data,
19158 sort: sort,
19159 rootId: rootId,
19160 onBlur: onBlur,
19161 onFocus: onFocus,
19162 onKeyDown: onKeyDown,
19163 multiSelect: multiSelect,
19164 selectedIds: selectedIds,
19165 onItemSelect: onItemSelect,
19166 onMultiItemSelect: onMultiItemSelect,
19167 expandedIds: expandedIds,
19168 onItemExpansion: onItemExpansion,
19169 onMultiItemExpansion: onMultiItemExpansion,
19170 valueKey: valueKey,
19171 getItemValue: getItemValue,
19172 }), items = _l.items, activeId = _l.activeId, setActiveId = _l.setActiveId, itemIdRefs = _l.itemIdRefs, handleBlur = _l.handleBlur, handleFocus = _l.handleFocus, handleKeyDown = _l.handleKeyDown;
19173 var renderChildItems = function (items, depth, parentIndexes) {
19174 var listSize = items.length;
19175 return items.map(function (item, index) {
19176 var _a;
19177 var itemId = item.itemId, childItems = item.childItems, isCustom = item.isCustom;
19178 var selected = selectedIds.includes(itemId);
19179 var expanded = expandedIds.includes(itemId);
19180 var id = "";
19181 var ref;
19182 var visibleIndex = -1;
19183 if (!isCustom) {
19184 (_a = itemIdRefs[itemId], id = _a.id, ref = _a.ref, visibleIndex = _a.visibleIndex);
19185 }
19186 var focused = id === activeId;
19187 return itemRenderer({
19188 key: itemId,
19189 id: id,
19190 liRef: ref,
19191 depth: depth,
19192 listSize: listSize,
19193 itemIndex: index,
19194 selected: selected,
19195 expanded: expanded,
19196 focused: focused,
19197 onClick: function () {
19198 setActiveId(itemId);
19199 onItemSelect(itemId);
19200 if (childItems) {
19201 onItemExpansion(itemId, !expanded);
19202 }
19203 },
19204 renderChildItems: childItems
19205 ? function () {
19206 return renderChildItems(childItems, depth + 1, __spreadArrays$7(parentIndexes, [
19207 index + 1,
19208 ]));
19209 }
19210 : undefined,
19211 }, __assign$1N(__assign$1N({}, item), { visibleIndex: visibleIndex }), __assign$1N({ id: id,
19212 expanderLeft: expanderLeft, expanderIcon: expanderIcon, multiSelect: multiSelect,
19213 labelKey: labelKey,
19214 valueKey: valueKey,
19215 getItemLabel: getItemLabel,
19216 getItemValue: getItemValue,
19217 getItemProps: getItemProps,
19218 linkComponent: linkComponent,
19219 rootId: rootId }, props));
19220 });
19221 };
19222 return (React__default.createElement(List, __assign$1N({}, props, { ref: ref, id: id, "aria-activedescendant": activeId, "aria-multiselectable": multiSelect || undefined, role: "tree", tabIndex: 0, className: classnames(block$12(), className), onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown }), renderChildItems(items, 0, [])));
19223 });
19224 {
19225 try {
19226 var PropTypes$1B = require("prop-types");
19227 Tree.propTypes = {
19228 id: PropTypes$1B.string.isRequired,
19229 className: PropTypes$1B.string,
19230 onBlur: PropTypes$1B.func,
19231 onFocus: PropTypes$1B.func,
19232 onKeyDown: PropTypes$1B.func,
19233 "aria-label": PropTypes$1B.string,
19234 "aria-labelledby": PropTypes$1B.string,
19235 // TODO: Update to custom prop validation for itemId and parentId
19236 data: PropTypes$1B.object.isRequired,
19237 rootId: PropTypes$1B.string,
19238 sort: PropTypes$1B.func,
19239 selectedIds: PropTypes$1B.arrayOf(PropTypes$1B.string).isRequired,
19240 onItemSelect: PropTypes$1B.func.isRequired,
19241 onMultiItemSelect: PropTypes$1B.func.isRequired,
19242 expandedIds: PropTypes$1B.arrayOf(PropTypes$1B.string).isRequired,
19243 onItemExpansion: PropTypes$1B.func.isRequired,
19244 onMultiItemExpansion: PropTypes$1B.func.isRequired,
19245 multiSelect: PropTypes$1B.bool,
19246 expanderLeft: PropTypes$1B.bool,
19247 expanderIcon: PropTypes$1B.node,
19248 itemRenderer: PropTypes$1B.func,
19249 labelKey: PropTypes$1B.string,
19250 valueKey: PropTypes$1B.string,
19251 getItemLabel: PropTypes$1B.func,
19252 getItemValue: PropTypes$1B.func,
19253 getItemProps: PropTypes$1B.func,
19254 linkComponent: PropTypes$1B.oneOfType([
19255 PropTypes$1B.func,
19256 PropTypes$1B.object,
19257 PropTypes$1B.oneOf(["a"]),
19258 ]),
19259 };
19260 }
19261 catch (e) { }
19262 }
19263
19264 var __spreadArrays$8 = (undefined && undefined.__spreadArrays) || function () {
19265 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
19266 for (var r = Array(s), k = 0, i = 0; i < il; i++)
19267 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
19268 r[k] = a[j];
19269 return r;
19270 };
19271 /**
19272 * Gets all the child items for a specific parent item id. If the `recursive`
19273 * argument is enabled, all children of the items will also be returned instead
19274 * of only the top level items.
19275 *
19276 * @param data Either the flattened tree data or a list of all the tree data to
19277 * iterate over
19278 * @param parentId The parent id to get children of
19279 * @param recursive Boolean if the children's children should also be returned
19280 * @return a list of all the items for a specific parent item id. Note: if the
19281 * recursive param is enabled, the list will be ordered so that the children of
19282 * a item will appear before the next item at the same level. So you either need
19283 * to sort by `parentId` or something else if you want a specific order.
19284 */
19285 function getChildItems(data, parentId, recursive) {
19286 if (recursive === void 0) { recursive = false; }
19287 var items = Array.isArray(data) ? data : Object.values(data);
19288 return items.reduce(function (list, item) {
19289 if (parentId !== item.parentId) {
19290 return list;
19291 }
19292 return __spreadArrays$8(list, [
19293 item
19294 ], (recursive ? getChildItems(items, item.itemId, recursive) : []));
19295 }, []);
19296 }
19297
19298 /**
19299 * This will get all the items from the provided itemId up to the root of the
19300 * tree that can be used for drag and drop behavior or building a breadcrumb
19301 * list.
19302 *
19303 * @param data The flattened tree data to navigate.
19304 * @param itemId The item id to start the search at.
19305 * @return an ordered list of the current item followed by all the direct
19306 * parents of that item.
19307 */
19308 function getItemsFrom(data, itemId) {
19309 var items = [];
19310 var currentId = itemId;
19311 while (currentId) {
19312 var item = data[currentId];
19313 currentId = (item && item.parentId) || null;
19314 if (item) {
19315 items.push(item);
19316 }
19317 }
19318 return items;
19319 }
19320
19321 /**
19322 * This is the default navigation item renderer provided by the layout package
19323 * that has some reasonable defaults for creating a navigation tree. This is
19324 * just an extension of the base `defaultTreeItemRenderer` from the
19325 * `@react-md/tree` package that adds in some support for also rendering
19326 * dividers and subheader elements.
19327 */
19328 var defaultNavigationItemRenderer = function (itemProps, item, treeProps) {
19329 var key = itemProps.key;
19330 var divider = item.divider, subheader = item.subheader;
19331 if (divider) {
19332 return React__default.createElement(Divider, { key: key });
19333 }
19334 if (subheader) {
19335 return (React__default.createElement(ListSubheader, { key: key, role: "none" }, item.children));
19336 }
19337 return defaultTreeItemRenderer(itemProps, item, treeProps);
19338 };
19339
19340 var __assign$1O = (undefined && undefined.__assign) || function () {
19341 __assign$1O = Object.assign || function(t) {
19342 for (var s, i = 1, n = arguments.length; i < n; i++) {
19343 s = arguments[i];
19344 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19345 t[p] = s[p];
19346 }
19347 return t;
19348 };
19349 return __assign$1O.apply(this, arguments);
19350 };
19351 var __rest$1x = (undefined && undefined.__rest) || function (s, e) {
19352 var t = {};
19353 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
19354 t[p] = s[p];
19355 if (s != null && typeof Object.getOwnPropertySymbols === "function")
19356 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19357 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19358 t[p[i]] = s[p[i]];
19359 }
19360 return t;
19361 };
19362 /**
19363 * Renders the navigation tree for the Layout component that adds some
19364 * reasonable defaults to work with navigation items.
19365 */
19366 var LayoutTree = React.forwardRef(function LayoutTree(_a, ref) {
19367 var propId = _a.id, ariaLabelledBy = _a["aria-labelledby"], _b = _a["aria-label"], ariaLabel = _b === void 0 ? ariaLabelledBy ? undefined : "Navigation" : _b, className = _a.className, navStyle = _a.navStyle, navClassName = _a.navClassName, navItems = _a.navItems, _c = _a.labelKey, labelKey = _c === void 0 ? "children" : _c, _d = _a.valueKey, valueKey = _d === void 0 ? "children" : _d, _e = _a.itemRenderer, itemRenderer = _e === void 0 ? defaultNavigationItemRenderer : _e, selectedIds = _a.selectedIds, _f = _a.disableTemporaryAutoclose, disableTemporaryAutoclose = _f === void 0 ? false : _f, props = __rest$1x(_a, ["id", "aria-labelledby", "aria-label", "className", "navStyle", "navClassName", "navItems", "labelKey", "valueKey", "itemRenderer", "selectedIds", "disableTemporaryAutoclose"]);
19368 var _g = useLayoutConfig(), baseId = _g.baseId, layout = _g.layout, hideNav = _g.hideNav, visible = _g.visible;
19369 var selectedId = selectedIds[0];
19370 var lastSelectedId = React.useRef(selectedId);
19371 var isTemporary = isTemporaryLayout(layout);
19372 var id = propId !== null && propId !== void 0 ? propId : baseId + "-navigation-tree";
19373 React.useEffect(function () {
19374 if (disableTemporaryAutoclose ||
19375 !isTemporary ||
19376 !visible ||
19377 lastSelectedId.current === selectedId) {
19378 // need to update the lastSelectedId since the selectedId might've changed
19379 // by a route change OUTSIDE of the navigation drawer. if it isn't
19380 // updated, it'll automatically close the next time it is opened.
19381 lastSelectedId.current = selectedId;
19382 return;
19383 }
19384 lastSelectedId.current = selectedId;
19385 hideNav();
19386 }, [disableTemporaryAutoclose, isTemporary, visible, hideNav, selectedId]);
19387 return (React__default.createElement("nav", { id: id + "-nav", style: navStyle, className: classnames("rmd-layout-nav", navClassName) },
19388 React__default.createElement(Tree, __assign$1O({}, props, { id: id, ref: ref, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, data: navItems, labelKey: labelKey, valueKey: valueKey, selectedIds: selectedIds, itemRenderer: itemRenderer, className: classnames("rmd-layout-tree", className) }))));
19389 });
19390 {
19391 try {
19392 var PropTypes$1C = require("prop-types");
19393 LayoutTree.propTypes = {
19394 id: PropTypes$1C.string,
19395 "aria-label": PropTypes$1C.string,
19396 "aria-labelledby": PropTypes$1C.string,
19397 className: PropTypes$1C.string,
19398 navStyle: PropTypes$1C.object,
19399 navClassName: PropTypes$1C.string,
19400 children: PropTypes$1C.node,
19401 labelKey: PropTypes$1C.string,
19402 valueKey: PropTypes$1C.string,
19403 navItems: PropTypes$1C.object.isRequired,
19404 selectedIds: PropTypes$1C.arrayOf(PropTypes$1C.string).isRequired,
19405 itemRenderer: PropTypes$1C.func,
19406 disableTemporaryAutoclose: PropTypes$1C.bool,
19407 };
19408 }
19409 catch (error) { }
19410 }
19411
19412 var __assign$1P = (undefined && undefined.__assign) || function () {
19413 __assign$1P = Object.assign || function(t) {
19414 for (var s, i = 1, n = arguments.length; i < n; i++) {
19415 s = arguments[i];
19416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19417 t[p] = s[p];
19418 }
19419 return t;
19420 };
19421 return __assign$1P.apply(this, arguments);
19422 };
19423 var __rest$1y = (undefined && undefined.__rest) || function (s, e) {
19424 var t = {};
19425 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
19426 t[p] = s[p];
19427 if (s != null && typeof Object.getOwnPropertySymbols === "function")
19428 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19429 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19430 t[p[i]] = s[p[i]];
19431 }
19432 return t;
19433 };
19434 var styles$4 = bem("rmd-layout-navigation");
19435 /**
19436 * The container for the main navigation within the `Layout` that renders
19437 * differently depending on the current layout type.
19438 */
19439 var LayoutNavigation = React.forwardRef(function LayoutNavigation(_a, ref) {
19440 var propId = _a.id, _b = _a["aria-label"], ariaLabel = _b === void 0 ? "Navigation" : _b, ariaLabelledby = _a["aria-labelledby"], className = _a.className, children = _a.children, propHeader = _a.header, headerProps = _a.headerProps, headerTitle = _a.headerTitle, headerTitleProps = _a.headerTitleProps, closeNav = _a.closeNav, closeNavProps = _a.closeNavProps, treeProps = _a.treeProps, props = __rest$1y(_a, ["id", "aria-label", "aria-labelledby", "className", "children", "header", "headerProps", "headerTitle", "headerTitleProps", "closeNav", "closeNavProps", "treeProps"]);
19441 var _c = useLayoutConfig(), baseId = _c.baseId, layout = _c.layout, visible = _c.visible, hideNav = _c.hideNav;
19442 var id = propId || baseId + "-nav-container";
19443 var isTemporary = isTemporaryLayout(layout);
19444 var isPersistent = isPersistentLayout(layout);
19445 var isToggleable = isToggleableLayout(layout);
19446 var floating = layout === "floating";
19447 var header = propHeader;
19448 if (typeof header === "undefined") {
19449 header = (React__default.createElement(LayoutNavigationHeader, __assign$1P({ closeNav: closeNav, closeNavProps: closeNavProps, title: headerTitle, titleProps: headerTitleProps }, headerProps)));
19450 }
19451 return (React__default.createElement(Sheet, __assign$1P({}, props, { key: layout, id: id, ref: ref, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, role: !isPersistent ? "dialog" : "none", visible: visible, onRequestClose: hideNav,
19452 // do not want to portal for the other types so that logical tab order
19453 // is preserved
19454 portal: isTemporary, overlay: isTemporary, disableScrollLock: !isTemporary, disableTabFocusWrap: isToggleable, className: classnames(styles$4({
19455 floating: floating,
19456 "header-offset": layout === "clipped" || floating,
19457 }), className) }),
19458 header,
19459 treeProps && React__default.createElement(LayoutTree, __assign$1P({}, treeProps)),
19460 children));
19461 });
19462 {
19463 try {
19464 var PropTypes$1D = require("prop-types");
19465 LayoutNavigation.propTypes = {
19466 id: PropTypes$1D.string,
19467 "aria-label": PropTypes$1D.string,
19468 "aria-labelledby": PropTypes$1D.string,
19469 className: PropTypes$1D.string,
19470 children: PropTypes$1D.node,
19471 treeProps: PropTypes$1D.object,
19472 header: PropTypes$1D.node,
19473 headerProps: PropTypes$1D.object,
19474 headerTitle: PropTypes$1D.node,
19475 headerTitleProps: PropTypes$1D.object,
19476 closeNav: PropTypes$1D.node,
19477 closeNavProps: PropTypes$1D.object,
19478 };
19479 }
19480 catch (error) { }
19481 }
19482
19483 var __assign$1Q = (undefined && undefined.__assign) || function () {
19484 __assign$1Q = Object.assign || function(t) {
19485 for (var s, i = 1, n = arguments.length; i < n; i++) {
19486 s = arguments[i];
19487 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19488 t[p] = s[p];
19489 }
19490 return t;
19491 };
19492 return __assign$1Q.apply(this, arguments);
19493 };
19494 var __spreadArrays$9 = (undefined && undefined.__spreadArrays) || function () {
19495 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
19496 for (var r = Array(s), k = 0, i = 0; i < il; i++)
19497 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
19498 r[k] = a[j];
19499 return r;
19500 };
19501 /**
19502 * The layout to use for your app. There are 9 different types of layouts
19503 * supported out of the box that work for a decent amount of apps out of the
19504 * box.
19505 *
19506 * Note: You will need to ensure that the base `Configuration` component is a
19507 * parent of this `Layout` component to work since it relies on the
19508 * `AppSizeContext` for automatically updating the layout based on media
19509 * queries.
19510 */
19511 var Layout = function (_a) {
19512 var _b;
19513 var _c = _a.id, id = _c === void 0 ? "layout" : _c, propAppBar = _a.appBar, appBarProps = _a.appBarProps, _d = _a.navAfterAppBar, navAfterAppBar = _d === void 0 ? false : _d, children = _a.children, skipProps = _a.skipProps, mainProps = _a.mainProps, _e = _a.phoneLayout, phoneLayout = _e === void 0 ? DEFAULT_PHONE_LAYOUT : _e, _f = _a.tabletLayout, tabletLayout = _f === void 0 ? DEFAULT_TABLET_LAYOUT : _f, _g = _a.landscapeTabletLayout, landscapeTabletLayout = _g === void 0 ? DEFAULT_LANDSCAPE_TABLET_LAYOUT : _g, _h = _a.desktopLayout, desktopLayout = _h === void 0 ? DEFAULT_DESKTOP_LAYOUT : _h, largeDesktopLayout = _a.largeDesktopLayout, customTitle = _a.customTitle, title = _a.title, titleProps = _a.titleProps, navToggle = _a.navToggle, navToggleProps = _a.navToggleProps, propNav = _a.nav, navProps = _a.navProps, navHeader = _a.navHeader, navHeaderProps = _a.navHeaderProps, navHeaderTitle = _a.navHeaderTitle, navHeaderTitleProps = _a.navHeaderTitleProps, closeNav = _a.closeNav, closeNavProps = _a.closeNavProps, treeProps = _a.treeProps;
19514 var fixedAppBar = (_b = appBarProps === null || appBarProps === void 0 ? void 0 : appBarProps.fixed) !== null && _b !== void 0 ? _b : typeof propAppBar === "undefined";
19515 var mainId = (mainProps === null || mainProps === void 0 ? void 0 : mainProps.id) || id + "-main";
19516 var appBar = propAppBar;
19517 if (typeof appBar === "undefined") {
19518 appBar = (React__default.createElement(LayoutAppBar, __assign$1Q({}, appBarProps, { customTitle: customTitle, title: title, titleProps: titleProps, navToggle: navToggle, navToggleProps: navToggleProps })));
19519 }
19520 var nav = propNav;
19521 if (typeof nav === "undefined") {
19522 nav = (React__default.createElement(LayoutNavigation, __assign$1Q({ header: navHeader, headerProps: navHeaderProps, headerTitle: navHeaderTitle, headerTitleProps: navHeaderTitleProps, closeNav: closeNav, closeNavProps: closeNavProps, treeProps: treeProps }, navProps)));
19523 }
19524 return (React__default.createElement(LayoutProvider, { baseId: id, phoneLayout: phoneLayout, tabletLayout: tabletLayout, landscapeTabletLayout: landscapeTabletLayout, desktopLayout: desktopLayout, largeDesktopLayout: largeDesktopLayout },
19525 React__default.createElement(SkipToMainContent, __assign$1Q({}, skipProps, { mainId: mainId })),
19526 navAfterAppBar && appBar,
19527 nav,
19528 !navAfterAppBar && appBar,
19529 React__default.createElement(LayoutMain, __assign$1Q({ headerOffset: fixedAppBar }, mainProps, { id: mainId }), children)));
19530 };
19531 {
19532 try {
19533 var PropTypes$1E = require("prop-types");
19534 var phoneLayouts$1 = ["temporary", "temporary-mini"];
19535 var tabletLayouts$1 = __spreadArrays$9(phoneLayouts$1, ["toggleable", "toggleable-mini"]);
19536 var wideLayouts$1 = __spreadArrays$9(tabletLayouts$1, [
19537 "clipped",
19538 "floating",
19539 "full-height",
19540 ]);
19541 Layout.propTypes = {
19542 id: PropTypes$1E.string,
19543 children: PropTypes$1E.node,
19544 phoneLayout: PropTypes$1E.oneOf(phoneLayouts$1),
19545 tabletLayout: PropTypes$1E.oneOf(tabletLayouts$1),
19546 landscapeTabletLayout: PropTypes$1E.oneOf(wideLayouts$1),
19547 desktopLayout: PropTypes$1E.oneOf(wideLayouts$1),
19548 largeDesktopLayout: PropTypes$1E.oneOf(wideLayouts$1),
19549 appBar: PropTypes$1E.node,
19550 appBarProps: PropTypes$1E.object,
19551 navAfterAppBar: PropTypes$1E.bool,
19552 customTitle: PropTypes$1E.node,
19553 title: PropTypes$1E.node,
19554 titleProps: PropTypes$1E.object,
19555 navToggle: PropTypes$1E.node,
19556 navToggleProps: PropTypes$1E.object,
19557 skipProps: PropTypes$1E.object,
19558 nav: PropTypes$1E.node,
19559 navProps: PropTypes$1E.object,
19560 navHeader: PropTypes$1E.node,
19561 navHeaderProps: PropTypes$1E.object,
19562 navHeaderTitle: PropTypes$1E.node,
19563 navHeaderTitleProps: PropTypes$1E.object,
19564 closeNav: PropTypes$1E.node,
19565 closeNavProps: PropTypes$1E.object,
19566 treeProps: PropTypes$1E.object,
19567 mainProps: PropTypes$1E.object,
19568 };
19569 }
19570 catch (error) { }
19571 }
19572
19573 var __spreadArrays$a = (undefined && undefined.__spreadArrays) || function () {
19574 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
19575 for (var r = Array(s), k = 0, i = 0; i < il; i++)
19576 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
19577 r[k] = a[j];
19578 return r;
19579 };
19580 /**
19581 * @private
19582 */
19583 var getParentIds = function (itemId, navItems) { return getItemsFrom(navItems, itemId).map(function (_a) {
19584 var itemId = _a.itemId;
19585 return itemId;
19586 }); };
19587 /**
19588 * This is used to disable the item select and multi item select functionality
19589 * since only one id can be selected at a time, and it'll always be the current
19590 * pathname's itemId
19591 *
19592 * @private
19593 */
19594 var noop$4 = function () { };
19595 /**
19596 * This is a pretty reasonable default implementation for having a navigation
19597 * tree within the Layout component. The way it'll work is that the current
19598 * route will be the only selected item within the tree. When the pathname
19599 * changes, the selectedIds will be updated to only be the current pathname once
19600 * again.
19601 *
19602 * This means that you can use whatever routing library or history provider that
19603 * ensures that your layout re-renders on a path change.
19604 *
19605 * @see LayoutNavigationTree for description of the navItems
19606 * @param navItems All the navigation items within your layout. This is used for
19607 * determining which parent tree items should be expanded when the route changes
19608 * so the current route won't be hidden from view. This sort of flow happens if
19609 * you have a link outside of the navigation tree.
19610 * @param pathname The current pathname
19611 * @param linkComponent The link component to use within the navigation tree for
19612 * any item that has a `to` or `href` attribute. This defaults to the `Link`
19613 * from `@react-md/link` but should be changed to whatever link component you
19614 * need if using a routing library like `react-router`.
19615 * @return the required `Tree` selection and expansion state and handlers that
19616 * should be passed to the `Layout` component.
19617 */
19618 function useLayoutNavigation(navItems, pathname, linkComponent) {
19619 if (linkComponent === void 0) { linkComponent = Link; }
19620 var itemId = pathname.replace(/\?.*$/, "");
19621 var _a = useTreeItemExpansion(function () { return getParentIds(itemId, navItems); }), expandedIds = _a.expandedIds, onItemExpansion = _a.onItemExpansion, onMultiItemExpansion = _a.onMultiItemExpansion;
19622 var prevItemId = React.useRef(itemId);
19623 var prevNavItems = React.useRef(navItems);
19624 if (prevItemId.current !== itemId || prevNavItems.current !== navItems) {
19625 prevItemId.current = itemId;
19626 prevNavItems.current = navItems;
19627 onMultiItemExpansion(Array.from(new Set(__spreadArrays$a(expandedIds, getParentIds(itemId, navItems)))));
19628 }
19629 return {
19630 navItems: navItems,
19631 multiSelect: false,
19632 selectedIds: [itemId],
19633 onItemSelect: noop$4,
19634 onMultiItemSelect: noop$4,
19635 expandedIds: expandedIds,
19636 onItemExpansion: onItemExpansion,
19637 onMultiItemExpansion: onMultiItemExpansion,
19638 linkComponent: linkComponent,
19639 };
19640 }
19641
19642 var __assign$1R = (undefined && undefined.__assign) || function () {
19643 __assign$1R = Object.assign || function(t) {
19644 for (var s, i = 1, n = arguments.length; i < n; i++) {
19645 s = arguments[i];
19646 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19647 t[p] = s[p];
19648 }
19649 return t;
19650 };
19651 return __assign$1R.apply(this, arguments);
19652 };
19653 var Rotation3DFontIcon = React.forwardRef(function Rotation3DFontIcon(props, ref) {
19654 return (React__default.createElement(FontIcon, __assign$1R({}, props, { ref: ref }), "3d_rotation"));
19655 });
19656
19657 var __assign$1S = (undefined && undefined.__assign) || function () {
19658 __assign$1S = Object.assign || function(t) {
19659 for (var s, i = 1, n = arguments.length; i < n; i++) {
19660 s = arguments[i];
19661 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19662 t[p] = s[p];
19663 }
19664 return t;
19665 };
19666 return __assign$1S.apply(this, arguments);
19667 };
19668 var AcUnitFontIcon = React.forwardRef(function AcUnitFontIcon(props, ref) {
19669 return (React__default.createElement(FontIcon, __assign$1S({}, props, { ref: ref }), "ac_unit"));
19670 });
19671
19672 var __assign$1T = (undefined && undefined.__assign) || function () {
19673 __assign$1T = Object.assign || function(t) {
19674 for (var s, i = 1, n = arguments.length; i < n; i++) {
19675 s = arguments[i];
19676 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19677 t[p] = s[p];
19678 }
19679 return t;
19680 };
19681 return __assign$1T.apply(this, arguments);
19682 };
19683 var AccessAlarmFontIcon = React.forwardRef(function AccessAlarmFontIcon(props, ref) {
19684 return (React__default.createElement(FontIcon, __assign$1T({}, props, { ref: ref }), "access_alarm"));
19685 });
19686
19687 var __assign$1U = (undefined && undefined.__assign) || function () {
19688 __assign$1U = Object.assign || function(t) {
19689 for (var s, i = 1, n = arguments.length; i < n; i++) {
19690 s = arguments[i];
19691 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19692 t[p] = s[p];
19693 }
19694 return t;
19695 };
19696 return __assign$1U.apply(this, arguments);
19697 };
19698 var AccessAlarmsFontIcon = React.forwardRef(function AccessAlarmsFontIcon(props, ref) {
19699 return (React__default.createElement(FontIcon, __assign$1U({}, props, { ref: ref }), "access_alarms"));
19700 });
19701
19702 var __assign$1V = (undefined && undefined.__assign) || function () {
19703 __assign$1V = Object.assign || function(t) {
19704 for (var s, i = 1, n = arguments.length; i < n; i++) {
19705 s = arguments[i];
19706 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19707 t[p] = s[p];
19708 }
19709 return t;
19710 };
19711 return __assign$1V.apply(this, arguments);
19712 };
19713 var AccessTimeFontIcon = React.forwardRef(function AccessTimeFontIcon(props, ref) {
19714 return (React__default.createElement(FontIcon, __assign$1V({}, props, { ref: ref }), "access_time"));
19715 });
19716
19717 var __assign$1W = (undefined && undefined.__assign) || function () {
19718 __assign$1W = Object.assign || function(t) {
19719 for (var s, i = 1, n = arguments.length; i < n; i++) {
19720 s = arguments[i];
19721 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19722 t[p] = s[p];
19723 }
19724 return t;
19725 };
19726 return __assign$1W.apply(this, arguments);
19727 };
19728 var AccessibilityFontIcon = React.forwardRef(function AccessibilityFontIcon(props, ref) {
19729 return (React__default.createElement(FontIcon, __assign$1W({}, props, { ref: ref }), "accessibility"));
19730 });
19731
19732 var __assign$1X = (undefined && undefined.__assign) || function () {
19733 __assign$1X = Object.assign || function(t) {
19734 for (var s, i = 1, n = arguments.length; i < n; i++) {
19735 s = arguments[i];
19736 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19737 t[p] = s[p];
19738 }
19739 return t;
19740 };
19741 return __assign$1X.apply(this, arguments);
19742 };
19743 var AccessibleFontIcon = React.forwardRef(function AccessibleFontIcon(props, ref) {
19744 return (React__default.createElement(FontIcon, __assign$1X({}, props, { ref: ref }), "accessible"));
19745 });
19746
19747 var __assign$1Y = (undefined && undefined.__assign) || function () {
19748 __assign$1Y = Object.assign || function(t) {
19749 for (var s, i = 1, n = arguments.length; i < n; i++) {
19750 s = arguments[i];
19751 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19752 t[p] = s[p];
19753 }
19754 return t;
19755 };
19756 return __assign$1Y.apply(this, arguments);
19757 };
19758 var AccountBalanceWalletFontIcon = React.forwardRef(function AccountBalanceWalletFontIcon(props, ref) {
19759 return (React__default.createElement(FontIcon, __assign$1Y({}, props, { ref: ref }), "account_balance_wallet"));
19760 });
19761
19762 var __assign$1Z = (undefined && undefined.__assign) || function () {
19763 __assign$1Z = Object.assign || function(t) {
19764 for (var s, i = 1, n = arguments.length; i < n; i++) {
19765 s = arguments[i];
19766 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19767 t[p] = s[p];
19768 }
19769 return t;
19770 };
19771 return __assign$1Z.apply(this, arguments);
19772 };
19773 var AccountBalanceFontIcon = React.forwardRef(function AccountBalanceFontIcon(props, ref) {
19774 return (React__default.createElement(FontIcon, __assign$1Z({}, props, { ref: ref }), "account_balance"));
19775 });
19776
19777 var __assign$1_ = (undefined && undefined.__assign) || function () {
19778 __assign$1_ = Object.assign || function(t) {
19779 for (var s, i = 1, n = arguments.length; i < n; i++) {
19780 s = arguments[i];
19781 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19782 t[p] = s[p];
19783 }
19784 return t;
19785 };
19786 return __assign$1_.apply(this, arguments);
19787 };
19788 var AccountBoxFontIcon = React.forwardRef(function AccountBoxFontIcon(props, ref) {
19789 return (React__default.createElement(FontIcon, __assign$1_({}, props, { ref: ref }), "account_box"));
19790 });
19791
19792 var __assign$1$ = (undefined && undefined.__assign) || function () {
19793 __assign$1$ = Object.assign || function(t) {
19794 for (var s, i = 1, n = arguments.length; i < n; i++) {
19795 s = arguments[i];
19796 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19797 t[p] = s[p];
19798 }
19799 return t;
19800 };
19801 return __assign$1$.apply(this, arguments);
19802 };
19803 var AccountCircleFontIcon = React.forwardRef(function AccountCircleFontIcon(props, ref) {
19804 return (React__default.createElement(FontIcon, __assign$1$({}, props, { ref: ref }), "account_circle"));
19805 });
19806
19807 var __assign$20 = (undefined && undefined.__assign) || function () {
19808 __assign$20 = Object.assign || function(t) {
19809 for (var s, i = 1, n = arguments.length; i < n; i++) {
19810 s = arguments[i];
19811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19812 t[p] = s[p];
19813 }
19814 return t;
19815 };
19816 return __assign$20.apply(this, arguments);
19817 };
19818 var AdbFontIcon = React.forwardRef(function AdbFontIcon(props, ref) {
19819 return (React__default.createElement(FontIcon, __assign$20({}, props, { ref: ref }), "adb"));
19820 });
19821
19822 var __assign$21 = (undefined && undefined.__assign) || function () {
19823 __assign$21 = Object.assign || function(t) {
19824 for (var s, i = 1, n = arguments.length; i < n; i++) {
19825 s = arguments[i];
19826 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19827 t[p] = s[p];
19828 }
19829 return t;
19830 };
19831 return __assign$21.apply(this, arguments);
19832 };
19833 var AddAPhotoFontIcon = React.forwardRef(function AddAPhotoFontIcon(props, ref) {
19834 return (React__default.createElement(FontIcon, __assign$21({}, props, { ref: ref }), "add_a_photo"));
19835 });
19836
19837 var __assign$22 = (undefined && undefined.__assign) || function () {
19838 __assign$22 = Object.assign || function(t) {
19839 for (var s, i = 1, n = arguments.length; i < n; i++) {
19840 s = arguments[i];
19841 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19842 t[p] = s[p];
19843 }
19844 return t;
19845 };
19846 return __assign$22.apply(this, arguments);
19847 };
19848 var AddAlarmFontIcon = React.forwardRef(function AddAlarmFontIcon(props, ref) {
19849 return (React__default.createElement(FontIcon, __assign$22({}, props, { ref: ref }), "add_alarm"));
19850 });
19851
19852 var __assign$23 = (undefined && undefined.__assign) || function () {
19853 __assign$23 = Object.assign || function(t) {
19854 for (var s, i = 1, n = arguments.length; i < n; i++) {
19855 s = arguments[i];
19856 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19857 t[p] = s[p];
19858 }
19859 return t;
19860 };
19861 return __assign$23.apply(this, arguments);
19862 };
19863 var AddAlertFontIcon = React.forwardRef(function AddAlertFontIcon(props, ref) {
19864 return (React__default.createElement(FontIcon, __assign$23({}, props, { ref: ref }), "add_alert"));
19865 });
19866
19867 var __assign$24 = (undefined && undefined.__assign) || function () {
19868 __assign$24 = Object.assign || function(t) {
19869 for (var s, i = 1, n = arguments.length; i < n; i++) {
19870 s = arguments[i];
19871 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19872 t[p] = s[p];
19873 }
19874 return t;
19875 };
19876 return __assign$24.apply(this, arguments);
19877 };
19878 var AddBoxFontIcon = React.forwardRef(function AddBoxFontIcon(props, ref) {
19879 return (React__default.createElement(FontIcon, __assign$24({}, props, { ref: ref }), "add_box"));
19880 });
19881
19882 var __assign$25 = (undefined && undefined.__assign) || function () {
19883 __assign$25 = Object.assign || function(t) {
19884 for (var s, i = 1, n = arguments.length; i < n; i++) {
19885 s = arguments[i];
19886 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19887 t[p] = s[p];
19888 }
19889 return t;
19890 };
19891 return __assign$25.apply(this, arguments);
19892 };
19893 var AddCircleOutlineFontIcon = React.forwardRef(function AddCircleOutlineFontIcon(props, ref) {
19894 return (React__default.createElement(FontIcon, __assign$25({}, props, { ref: ref }), "add_circle_outline"));
19895 });
19896
19897 var __assign$26 = (undefined && undefined.__assign) || function () {
19898 __assign$26 = Object.assign || function(t) {
19899 for (var s, i = 1, n = arguments.length; i < n; i++) {
19900 s = arguments[i];
19901 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19902 t[p] = s[p];
19903 }
19904 return t;
19905 };
19906 return __assign$26.apply(this, arguments);
19907 };
19908 var AddCircleFontIcon = React.forwardRef(function AddCircleFontIcon(props, ref) {
19909 return (React__default.createElement(FontIcon, __assign$26({}, props, { ref: ref }), "add_circle"));
19910 });
19911
19912 var __assign$27 = (undefined && undefined.__assign) || function () {
19913 __assign$27 = Object.assign || function(t) {
19914 for (var s, i = 1, n = arguments.length; i < n; i++) {
19915 s = arguments[i];
19916 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19917 t[p] = s[p];
19918 }
19919 return t;
19920 };
19921 return __assign$27.apply(this, arguments);
19922 };
19923 var AddLocationFontIcon = React.forwardRef(function AddLocationFontIcon(props, ref) {
19924 return (React__default.createElement(FontIcon, __assign$27({}, props, { ref: ref }), "add_location"));
19925 });
19926
19927 var __assign$28 = (undefined && undefined.__assign) || function () {
19928 __assign$28 = Object.assign || function(t) {
19929 for (var s, i = 1, n = arguments.length; i < n; i++) {
19930 s = arguments[i];
19931 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19932 t[p] = s[p];
19933 }
19934 return t;
19935 };
19936 return __assign$28.apply(this, arguments);
19937 };
19938 var AddShoppingCartFontIcon = React.forwardRef(function AddShoppingCartFontIcon(props, ref) {
19939 return (React__default.createElement(FontIcon, __assign$28({}, props, { ref: ref }), "add_shopping_cart"));
19940 });
19941
19942 var __assign$29 = (undefined && undefined.__assign) || function () {
19943 __assign$29 = Object.assign || function(t) {
19944 for (var s, i = 1, n = arguments.length; i < n; i++) {
19945 s = arguments[i];
19946 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19947 t[p] = s[p];
19948 }
19949 return t;
19950 };
19951 return __assign$29.apply(this, arguments);
19952 };
19953 var AddToPhotosFontIcon = React.forwardRef(function AddToPhotosFontIcon(props, ref) {
19954 return (React__default.createElement(FontIcon, __assign$29({}, props, { ref: ref }), "add_to_photos"));
19955 });
19956
19957 var __assign$2a = (undefined && undefined.__assign) || function () {
19958 __assign$2a = Object.assign || function(t) {
19959 for (var s, i = 1, n = arguments.length; i < n; i++) {
19960 s = arguments[i];
19961 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19962 t[p] = s[p];
19963 }
19964 return t;
19965 };
19966 return __assign$2a.apply(this, arguments);
19967 };
19968 var AddToQueueFontIcon = React.forwardRef(function AddToQueueFontIcon(props, ref) {
19969 return (React__default.createElement(FontIcon, __assign$2a({}, props, { ref: ref }), "add_to_queue"));
19970 });
19971
19972 var __assign$2b = (undefined && undefined.__assign) || function () {
19973 __assign$2b = Object.assign || function(t) {
19974 for (var s, i = 1, n = arguments.length; i < n; i++) {
19975 s = arguments[i];
19976 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19977 t[p] = s[p];
19978 }
19979 return t;
19980 };
19981 return __assign$2b.apply(this, arguments);
19982 };
19983 var AddFontIcon = React.forwardRef(function AddFontIcon(props, ref) {
19984 return (React__default.createElement(FontIcon, __assign$2b({}, props, { ref: ref }), "add"));
19985 });
19986
19987 var __assign$2c = (undefined && undefined.__assign) || function () {
19988 __assign$2c = Object.assign || function(t) {
19989 for (var s, i = 1, n = arguments.length; i < n; i++) {
19990 s = arguments[i];
19991 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19992 t[p] = s[p];
19993 }
19994 return t;
19995 };
19996 return __assign$2c.apply(this, arguments);
19997 };
19998 var AdjustFontIcon = React.forwardRef(function AdjustFontIcon(props, ref) {
19999 return (React__default.createElement(FontIcon, __assign$2c({}, props, { ref: ref }), "adjust"));
20000 });
20001
20002 var __assign$2d = (undefined && undefined.__assign) || function () {
20003 __assign$2d = Object.assign || function(t) {
20004 for (var s, i = 1, n = arguments.length; i < n; i++) {
20005 s = arguments[i];
20006 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20007 t[p] = s[p];
20008 }
20009 return t;
20010 };
20011 return __assign$2d.apply(this, arguments);
20012 };
20013 var AirlineSeatFlatAngledFontIcon = React.forwardRef(function AirlineSeatFlatAngledFontIcon(props, ref) {
20014 return (React__default.createElement(FontIcon, __assign$2d({}, props, { ref: ref }), "airline_seat_flat_angled"));
20015 });
20016
20017 var __assign$2e = (undefined && undefined.__assign) || function () {
20018 __assign$2e = Object.assign || function(t) {
20019 for (var s, i = 1, n = arguments.length; i < n; i++) {
20020 s = arguments[i];
20021 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20022 t[p] = s[p];
20023 }
20024 return t;
20025 };
20026 return __assign$2e.apply(this, arguments);
20027 };
20028 var AirlineSeatFlatFontIcon = React.forwardRef(function AirlineSeatFlatFontIcon(props, ref) {
20029 return (React__default.createElement(FontIcon, __assign$2e({}, props, { ref: ref }), "airline_seat_flat"));
20030 });
20031
20032 var __assign$2f = (undefined && undefined.__assign) || function () {
20033 __assign$2f = Object.assign || function(t) {
20034 for (var s, i = 1, n = arguments.length; i < n; i++) {
20035 s = arguments[i];
20036 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20037 t[p] = s[p];
20038 }
20039 return t;
20040 };
20041 return __assign$2f.apply(this, arguments);
20042 };
20043 var AirlineSeatIndividualSuiteFontIcon = React.forwardRef(function AirlineSeatIndividualSuiteFontIcon(props, ref) {
20044 return (React__default.createElement(FontIcon, __assign$2f({}, props, { ref: ref }), "airline_seat_individual_suite"));
20045 });
20046
20047 var __assign$2g = (undefined && undefined.__assign) || function () {
20048 __assign$2g = Object.assign || function(t) {
20049 for (var s, i = 1, n = arguments.length; i < n; i++) {
20050 s = arguments[i];
20051 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20052 t[p] = s[p];
20053 }
20054 return t;
20055 };
20056 return __assign$2g.apply(this, arguments);
20057 };
20058 var AirlineSeatLegroomExtraFontIcon = React.forwardRef(function AirlineSeatLegroomExtraFontIcon(props, ref) {
20059 return (React__default.createElement(FontIcon, __assign$2g({}, props, { ref: ref }), "airline_seat_legroom_extra"));
20060 });
20061
20062 var __assign$2h = (undefined && undefined.__assign) || function () {
20063 __assign$2h = Object.assign || function(t) {
20064 for (var s, i = 1, n = arguments.length; i < n; i++) {
20065 s = arguments[i];
20066 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20067 t[p] = s[p];
20068 }
20069 return t;
20070 };
20071 return __assign$2h.apply(this, arguments);
20072 };
20073 var AirlineSeatLegroomNormalFontIcon = React.forwardRef(function AirlineSeatLegroomNormalFontIcon(props, ref) {
20074 return (React__default.createElement(FontIcon, __assign$2h({}, props, { ref: ref }), "airline_seat_legroom_normal"));
20075 });
20076
20077 var __assign$2i = (undefined && undefined.__assign) || function () {
20078 __assign$2i = Object.assign || function(t) {
20079 for (var s, i = 1, n = arguments.length; i < n; i++) {
20080 s = arguments[i];
20081 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20082 t[p] = s[p];
20083 }
20084 return t;
20085 };
20086 return __assign$2i.apply(this, arguments);
20087 };
20088 var AirlineSeatLegroomReducedFontIcon = React.forwardRef(function AirlineSeatLegroomReducedFontIcon(props, ref) {
20089 return (React__default.createElement(FontIcon, __assign$2i({}, props, { ref: ref }), "airline_seat_legroom_reduced"));
20090 });
20091
20092 var __assign$2j = (undefined && undefined.__assign) || function () {
20093 __assign$2j = Object.assign || function(t) {
20094 for (var s, i = 1, n = arguments.length; i < n; i++) {
20095 s = arguments[i];
20096 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20097 t[p] = s[p];
20098 }
20099 return t;
20100 };
20101 return __assign$2j.apply(this, arguments);
20102 };
20103 var AirlineSeatReclineExtraFontIcon = React.forwardRef(function AirlineSeatReclineExtraFontIcon(props, ref) {
20104 return (React__default.createElement(FontIcon, __assign$2j({}, props, { ref: ref }), "airline_seat_recline_extra"));
20105 });
20106
20107 var __assign$2k = (undefined && undefined.__assign) || function () {
20108 __assign$2k = Object.assign || function(t) {
20109 for (var s, i = 1, n = arguments.length; i < n; i++) {
20110 s = arguments[i];
20111 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20112 t[p] = s[p];
20113 }
20114 return t;
20115 };
20116 return __assign$2k.apply(this, arguments);
20117 };
20118 var AirlineSeatReclineNormalFontIcon = React.forwardRef(function AirlineSeatReclineNormalFontIcon(props, ref) {
20119 return (React__default.createElement(FontIcon, __assign$2k({}, props, { ref: ref }), "airline_seat_recline_normal"));
20120 });
20121
20122 var __assign$2l = (undefined && undefined.__assign) || function () {
20123 __assign$2l = Object.assign || function(t) {
20124 for (var s, i = 1, n = arguments.length; i < n; i++) {
20125 s = arguments[i];
20126 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20127 t[p] = s[p];
20128 }
20129 return t;
20130 };
20131 return __assign$2l.apply(this, arguments);
20132 };
20133 var AirplanemodeActiveFontIcon = React.forwardRef(function AirplanemodeActiveFontIcon(props, ref) {
20134 return (React__default.createElement(FontIcon, __assign$2l({}, props, { ref: ref }), "airplanemode_active"));
20135 });
20136
20137 var __assign$2m = (undefined && undefined.__assign) || function () {
20138 __assign$2m = Object.assign || function(t) {
20139 for (var s, i = 1, n = arguments.length; i < n; i++) {
20140 s = arguments[i];
20141 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20142 t[p] = s[p];
20143 }
20144 return t;
20145 };
20146 return __assign$2m.apply(this, arguments);
20147 };
20148 var AirplanemodeInactiveFontIcon = React.forwardRef(function AirplanemodeInactiveFontIcon(props, ref) {
20149 return (React__default.createElement(FontIcon, __assign$2m({}, props, { ref: ref }), "airplanemode_inactive"));
20150 });
20151
20152 var __assign$2n = (undefined && undefined.__assign) || function () {
20153 __assign$2n = Object.assign || function(t) {
20154 for (var s, i = 1, n = arguments.length; i < n; i++) {
20155 s = arguments[i];
20156 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20157 t[p] = s[p];
20158 }
20159 return t;
20160 };
20161 return __assign$2n.apply(this, arguments);
20162 };
20163 var AirplayFontIcon = React.forwardRef(function AirplayFontIcon(props, ref) {
20164 return (React__default.createElement(FontIcon, __assign$2n({}, props, { ref: ref }), "airplay"));
20165 });
20166
20167 var __assign$2o = (undefined && undefined.__assign) || function () {
20168 __assign$2o = Object.assign || function(t) {
20169 for (var s, i = 1, n = arguments.length; i < n; i++) {
20170 s = arguments[i];
20171 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20172 t[p] = s[p];
20173 }
20174 return t;
20175 };
20176 return __assign$2o.apply(this, arguments);
20177 };
20178 var AirportShuttleFontIcon = React.forwardRef(function AirportShuttleFontIcon(props, ref) {
20179 return (React__default.createElement(FontIcon, __assign$2o({}, props, { ref: ref }), "airport_shuttle"));
20180 });
20181
20182 var __assign$2p = (undefined && undefined.__assign) || function () {
20183 __assign$2p = Object.assign || function(t) {
20184 for (var s, i = 1, n = arguments.length; i < n; i++) {
20185 s = arguments[i];
20186 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20187 t[p] = s[p];
20188 }
20189 return t;
20190 };
20191 return __assign$2p.apply(this, arguments);
20192 };
20193 var AlarmAddFontIcon = React.forwardRef(function AlarmAddFontIcon(props, ref) {
20194 return (React__default.createElement(FontIcon, __assign$2p({}, props, { ref: ref }), "alarm_add"));
20195 });
20196
20197 var __assign$2q = (undefined && undefined.__assign) || function () {
20198 __assign$2q = Object.assign || function(t) {
20199 for (var s, i = 1, n = arguments.length; i < n; i++) {
20200 s = arguments[i];
20201 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20202 t[p] = s[p];
20203 }
20204 return t;
20205 };
20206 return __assign$2q.apply(this, arguments);
20207 };
20208 var AlarmOffFontIcon = React.forwardRef(function AlarmOffFontIcon(props, ref) {
20209 return (React__default.createElement(FontIcon, __assign$2q({}, props, { ref: ref }), "alarm_off"));
20210 });
20211
20212 var __assign$2r = (undefined && undefined.__assign) || function () {
20213 __assign$2r = Object.assign || function(t) {
20214 for (var s, i = 1, n = arguments.length; i < n; i++) {
20215 s = arguments[i];
20216 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20217 t[p] = s[p];
20218 }
20219 return t;
20220 };
20221 return __assign$2r.apply(this, arguments);
20222 };
20223 var AlarmOnFontIcon = React.forwardRef(function AlarmOnFontIcon(props, ref) {
20224 return (React__default.createElement(FontIcon, __assign$2r({}, props, { ref: ref }), "alarm_on"));
20225 });
20226
20227 var __assign$2s = (undefined && undefined.__assign) || function () {
20228 __assign$2s = Object.assign || function(t) {
20229 for (var s, i = 1, n = arguments.length; i < n; i++) {
20230 s = arguments[i];
20231 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20232 t[p] = s[p];
20233 }
20234 return t;
20235 };
20236 return __assign$2s.apply(this, arguments);
20237 };
20238 var AlarmFontIcon = React.forwardRef(function AlarmFontIcon(props, ref) {
20239 return (React__default.createElement(FontIcon, __assign$2s({}, props, { ref: ref }), "alarm"));
20240 });
20241
20242 var __assign$2t = (undefined && undefined.__assign) || function () {
20243 __assign$2t = Object.assign || function(t) {
20244 for (var s, i = 1, n = arguments.length; i < n; i++) {
20245 s = arguments[i];
20246 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20247 t[p] = s[p];
20248 }
20249 return t;
20250 };
20251 return __assign$2t.apply(this, arguments);
20252 };
20253 var AlbumFontIcon = React.forwardRef(function AlbumFontIcon(props, ref) {
20254 return (React__default.createElement(FontIcon, __assign$2t({}, props, { ref: ref }), "album"));
20255 });
20256
20257 var __assign$2u = (undefined && undefined.__assign) || function () {
20258 __assign$2u = Object.assign || function(t) {
20259 for (var s, i = 1, n = arguments.length; i < n; i++) {
20260 s = arguments[i];
20261 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20262 t[p] = s[p];
20263 }
20264 return t;
20265 };
20266 return __assign$2u.apply(this, arguments);
20267 };
20268 var AllInclusiveFontIcon = React.forwardRef(function AllInclusiveFontIcon(props, ref) {
20269 return (React__default.createElement(FontIcon, __assign$2u({}, props, { ref: ref }), "all_inclusive"));
20270 });
20271
20272 var __assign$2v = (undefined && undefined.__assign) || function () {
20273 __assign$2v = Object.assign || function(t) {
20274 for (var s, i = 1, n = arguments.length; i < n; i++) {
20275 s = arguments[i];
20276 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20277 t[p] = s[p];
20278 }
20279 return t;
20280 };
20281 return __assign$2v.apply(this, arguments);
20282 };
20283 var AllOutFontIcon = React.forwardRef(function AllOutFontIcon(props, ref) {
20284 return (React__default.createElement(FontIcon, __assign$2v({}, props, { ref: ref }), "all_out"));
20285 });
20286
20287 var __assign$2w = (undefined && undefined.__assign) || function () {
20288 __assign$2w = Object.assign || function(t) {
20289 for (var s, i = 1, n = arguments.length; i < n; i++) {
20290 s = arguments[i];
20291 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20292 t[p] = s[p];
20293 }
20294 return t;
20295 };
20296 return __assign$2w.apply(this, arguments);
20297 };
20298 var AndroidFontIcon = React.forwardRef(function AndroidFontIcon(props, ref) {
20299 return (React__default.createElement(FontIcon, __assign$2w({}, props, { ref: ref }), "android"));
20300 });
20301
20302 var __assign$2x = (undefined && undefined.__assign) || function () {
20303 __assign$2x = Object.assign || function(t) {
20304 for (var s, i = 1, n = arguments.length; i < n; i++) {
20305 s = arguments[i];
20306 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20307 t[p] = s[p];
20308 }
20309 return t;
20310 };
20311 return __assign$2x.apply(this, arguments);
20312 };
20313 var AnnouncementFontIcon = React.forwardRef(function AnnouncementFontIcon(props, ref) {
20314 return (React__default.createElement(FontIcon, __assign$2x({}, props, { ref: ref }), "announcement"));
20315 });
20316
20317 var __assign$2y = (undefined && undefined.__assign) || function () {
20318 __assign$2y = Object.assign || function(t) {
20319 for (var s, i = 1, n = arguments.length; i < n; i++) {
20320 s = arguments[i];
20321 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20322 t[p] = s[p];
20323 }
20324 return t;
20325 };
20326 return __assign$2y.apply(this, arguments);
20327 };
20328 var AppsFontIcon = React.forwardRef(function AppsFontIcon(props, ref) {
20329 return (React__default.createElement(FontIcon, __assign$2y({}, props, { ref: ref }), "apps"));
20330 });
20331
20332 var __assign$2z = (undefined && undefined.__assign) || function () {
20333 __assign$2z = Object.assign || function(t) {
20334 for (var s, i = 1, n = arguments.length; i < n; i++) {
20335 s = arguments[i];
20336 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20337 t[p] = s[p];
20338 }
20339 return t;
20340 };
20341 return __assign$2z.apply(this, arguments);
20342 };
20343 var ArchiveFontIcon = React.forwardRef(function ArchiveFontIcon(props, ref) {
20344 return (React__default.createElement(FontIcon, __assign$2z({}, props, { ref: ref }), "archive"));
20345 });
20346
20347 var __assign$2A = (undefined && undefined.__assign) || function () {
20348 __assign$2A = Object.assign || function(t) {
20349 for (var s, i = 1, n = arguments.length; i < n; i++) {
20350 s = arguments[i];
20351 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20352 t[p] = s[p];
20353 }
20354 return t;
20355 };
20356 return __assign$2A.apply(this, arguments);
20357 };
20358 var ArrowBackFontIcon = React.forwardRef(function ArrowBackFontIcon(props, ref) {
20359 return (React__default.createElement(FontIcon, __assign$2A({}, props, { ref: ref }), "arrow_back"));
20360 });
20361
20362 var __assign$2B = (undefined && undefined.__assign) || function () {
20363 __assign$2B = Object.assign || function(t) {
20364 for (var s, i = 1, n = arguments.length; i < n; i++) {
20365 s = arguments[i];
20366 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20367 t[p] = s[p];
20368 }
20369 return t;
20370 };
20371 return __assign$2B.apply(this, arguments);
20372 };
20373 var ArrowDownwardFontIcon = React.forwardRef(function ArrowDownwardFontIcon(props, ref) {
20374 return (React__default.createElement(FontIcon, __assign$2B({}, props, { ref: ref }), "arrow_downward"));
20375 });
20376
20377 var __assign$2C = (undefined && undefined.__assign) || function () {
20378 __assign$2C = Object.assign || function(t) {
20379 for (var s, i = 1, n = arguments.length; i < n; i++) {
20380 s = arguments[i];
20381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20382 t[p] = s[p];
20383 }
20384 return t;
20385 };
20386 return __assign$2C.apply(this, arguments);
20387 };
20388 var ArrowDropDownCircleFontIcon = React.forwardRef(function ArrowDropDownCircleFontIcon(props, ref) {
20389 return (React__default.createElement(FontIcon, __assign$2C({}, props, { ref: ref }), "arrow_drop_down_circle"));
20390 });
20391
20392 var __assign$2D = (undefined && undefined.__assign) || function () {
20393 __assign$2D = Object.assign || function(t) {
20394 for (var s, i = 1, n = arguments.length; i < n; i++) {
20395 s = arguments[i];
20396 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20397 t[p] = s[p];
20398 }
20399 return t;
20400 };
20401 return __assign$2D.apply(this, arguments);
20402 };
20403 var ArrowDropDownFontIcon = React.forwardRef(function ArrowDropDownFontIcon(props, ref) {
20404 return (React__default.createElement(FontIcon, __assign$2D({}, props, { ref: ref }), "arrow_drop_down"));
20405 });
20406
20407 var __assign$2E = (undefined && undefined.__assign) || function () {
20408 __assign$2E = Object.assign || function(t) {
20409 for (var s, i = 1, n = arguments.length; i < n; i++) {
20410 s = arguments[i];
20411 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20412 t[p] = s[p];
20413 }
20414 return t;
20415 };
20416 return __assign$2E.apply(this, arguments);
20417 };
20418 var ArrowDropUpFontIcon = React.forwardRef(function ArrowDropUpFontIcon(props, ref) {
20419 return (React__default.createElement(FontIcon, __assign$2E({}, props, { ref: ref }), "arrow_drop_up"));
20420 });
20421
20422 var __assign$2F = (undefined && undefined.__assign) || function () {
20423 __assign$2F = Object.assign || function(t) {
20424 for (var s, i = 1, n = arguments.length; i < n; i++) {
20425 s = arguments[i];
20426 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20427 t[p] = s[p];
20428 }
20429 return t;
20430 };
20431 return __assign$2F.apply(this, arguments);
20432 };
20433 var ArrowForwardFontIcon = React.forwardRef(function ArrowForwardFontIcon(props, ref) {
20434 return (React__default.createElement(FontIcon, __assign$2F({}, props, { ref: ref }), "arrow_forward"));
20435 });
20436
20437 var __assign$2G = (undefined && undefined.__assign) || function () {
20438 __assign$2G = Object.assign || function(t) {
20439 for (var s, i = 1, n = arguments.length; i < n; i++) {
20440 s = arguments[i];
20441 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20442 t[p] = s[p];
20443 }
20444 return t;
20445 };
20446 return __assign$2G.apply(this, arguments);
20447 };
20448 var ArrowUpwardFontIcon = React.forwardRef(function ArrowUpwardFontIcon(props, ref) {
20449 return (React__default.createElement(FontIcon, __assign$2G({}, props, { ref: ref }), "arrow_upward"));
20450 });
20451
20452 var __assign$2H = (undefined && undefined.__assign) || function () {
20453 __assign$2H = Object.assign || function(t) {
20454 for (var s, i = 1, n = arguments.length; i < n; i++) {
20455 s = arguments[i];
20456 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20457 t[p] = s[p];
20458 }
20459 return t;
20460 };
20461 return __assign$2H.apply(this, arguments);
20462 };
20463 var ArtTrackFontIcon = React.forwardRef(function ArtTrackFontIcon(props, ref) {
20464 return (React__default.createElement(FontIcon, __assign$2H({}, props, { ref: ref }), "art_track"));
20465 });
20466
20467 var __assign$2I = (undefined && undefined.__assign) || function () {
20468 __assign$2I = Object.assign || function(t) {
20469 for (var s, i = 1, n = arguments.length; i < n; i++) {
20470 s = arguments[i];
20471 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20472 t[p] = s[p];
20473 }
20474 return t;
20475 };
20476 return __assign$2I.apply(this, arguments);
20477 };
20478 var AspectRatioFontIcon = React.forwardRef(function AspectRatioFontIcon(props, ref) {
20479 return (React__default.createElement(FontIcon, __assign$2I({}, props, { ref: ref }), "aspect_ratio"));
20480 });
20481
20482 var __assign$2J = (undefined && undefined.__assign) || function () {
20483 __assign$2J = Object.assign || function(t) {
20484 for (var s, i = 1, n = arguments.length; i < n; i++) {
20485 s = arguments[i];
20486 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20487 t[p] = s[p];
20488 }
20489 return t;
20490 };
20491 return __assign$2J.apply(this, arguments);
20492 };
20493 var AssessmentFontIcon = React.forwardRef(function AssessmentFontIcon(props, ref) {
20494 return (React__default.createElement(FontIcon, __assign$2J({}, props, { ref: ref }), "assessment"));
20495 });
20496
20497 var __assign$2K = (undefined && undefined.__assign) || function () {
20498 __assign$2K = Object.assign || function(t) {
20499 for (var s, i = 1, n = arguments.length; i < n; i++) {
20500 s = arguments[i];
20501 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20502 t[p] = s[p];
20503 }
20504 return t;
20505 };
20506 return __assign$2K.apply(this, arguments);
20507 };
20508 var AssignmentIndFontIcon = React.forwardRef(function AssignmentIndFontIcon(props, ref) {
20509 return (React__default.createElement(FontIcon, __assign$2K({}, props, { ref: ref }), "assignment_ind"));
20510 });
20511
20512 var __assign$2L = (undefined && undefined.__assign) || function () {
20513 __assign$2L = Object.assign || function(t) {
20514 for (var s, i = 1, n = arguments.length; i < n; i++) {
20515 s = arguments[i];
20516 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20517 t[p] = s[p];
20518 }
20519 return t;
20520 };
20521 return __assign$2L.apply(this, arguments);
20522 };
20523 var AssignmentLateFontIcon = React.forwardRef(function AssignmentLateFontIcon(props, ref) {
20524 return (React__default.createElement(FontIcon, __assign$2L({}, props, { ref: ref }), "assignment_late"));
20525 });
20526
20527 var __assign$2M = (undefined && undefined.__assign) || function () {
20528 __assign$2M = Object.assign || function(t) {
20529 for (var s, i = 1, n = arguments.length; i < n; i++) {
20530 s = arguments[i];
20531 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20532 t[p] = s[p];
20533 }
20534 return t;
20535 };
20536 return __assign$2M.apply(this, arguments);
20537 };
20538 var AssignmentReturnFontIcon = React.forwardRef(function AssignmentReturnFontIcon(props, ref) {
20539 return (React__default.createElement(FontIcon, __assign$2M({}, props, { ref: ref }), "assignment_return"));
20540 });
20541
20542 var __assign$2N = (undefined && undefined.__assign) || function () {
20543 __assign$2N = Object.assign || function(t) {
20544 for (var s, i = 1, n = arguments.length; i < n; i++) {
20545 s = arguments[i];
20546 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20547 t[p] = s[p];
20548 }
20549 return t;
20550 };
20551 return __assign$2N.apply(this, arguments);
20552 };
20553 var AssignmentReturnedFontIcon = React.forwardRef(function AssignmentReturnedFontIcon(props, ref) {
20554 return (React__default.createElement(FontIcon, __assign$2N({}, props, { ref: ref }), "assignment_returned"));
20555 });
20556
20557 var __assign$2O = (undefined && undefined.__assign) || function () {
20558 __assign$2O = Object.assign || function(t) {
20559 for (var s, i = 1, n = arguments.length; i < n; i++) {
20560 s = arguments[i];
20561 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20562 t[p] = s[p];
20563 }
20564 return t;
20565 };
20566 return __assign$2O.apply(this, arguments);
20567 };
20568 var AssignmentTurnedInFontIcon = React.forwardRef(function AssignmentTurnedInFontIcon(props, ref) {
20569 return (React__default.createElement(FontIcon, __assign$2O({}, props, { ref: ref }), "assignment_turned_in"));
20570 });
20571
20572 var __assign$2P = (undefined && undefined.__assign) || function () {
20573 __assign$2P = Object.assign || function(t) {
20574 for (var s, i = 1, n = arguments.length; i < n; i++) {
20575 s = arguments[i];
20576 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20577 t[p] = s[p];
20578 }
20579 return t;
20580 };
20581 return __assign$2P.apply(this, arguments);
20582 };
20583 var AssignmentFontIcon = React.forwardRef(function AssignmentFontIcon(props, ref) {
20584 return (React__default.createElement(FontIcon, __assign$2P({}, props, { ref: ref }), "assignment"));
20585 });
20586
20587 var __assign$2Q = (undefined && undefined.__assign) || function () {
20588 __assign$2Q = Object.assign || function(t) {
20589 for (var s, i = 1, n = arguments.length; i < n; i++) {
20590 s = arguments[i];
20591 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20592 t[p] = s[p];
20593 }
20594 return t;
20595 };
20596 return __assign$2Q.apply(this, arguments);
20597 };
20598 var AssistantPhotoFontIcon = React.forwardRef(function AssistantPhotoFontIcon(props, ref) {
20599 return (React__default.createElement(FontIcon, __assign$2Q({}, props, { ref: ref }), "assistant_photo"));
20600 });
20601
20602 var __assign$2R = (undefined && undefined.__assign) || function () {
20603 __assign$2R = Object.assign || function(t) {
20604 for (var s, i = 1, n = arguments.length; i < n; i++) {
20605 s = arguments[i];
20606 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20607 t[p] = s[p];
20608 }
20609 return t;
20610 };
20611 return __assign$2R.apply(this, arguments);
20612 };
20613 var AssistantFontIcon = React.forwardRef(function AssistantFontIcon(props, ref) {
20614 return (React__default.createElement(FontIcon, __assign$2R({}, props, { ref: ref }), "assistant"));
20615 });
20616
20617 var __assign$2S = (undefined && undefined.__assign) || function () {
20618 __assign$2S = Object.assign || function(t) {
20619 for (var s, i = 1, n = arguments.length; i < n; i++) {
20620 s = arguments[i];
20621 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20622 t[p] = s[p];
20623 }
20624 return t;
20625 };
20626 return __assign$2S.apply(this, arguments);
20627 };
20628 var AttachFileFontIcon = React.forwardRef(function AttachFileFontIcon(props, ref) {
20629 return (React__default.createElement(FontIcon, __assign$2S({}, props, { ref: ref }), "attach_file"));
20630 });
20631
20632 var __assign$2T = (undefined && undefined.__assign) || function () {
20633 __assign$2T = Object.assign || function(t) {
20634 for (var s, i = 1, n = arguments.length; i < n; i++) {
20635 s = arguments[i];
20636 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20637 t[p] = s[p];
20638 }
20639 return t;
20640 };
20641 return __assign$2T.apply(this, arguments);
20642 };
20643 var AttachMoneyFontIcon = React.forwardRef(function AttachMoneyFontIcon(props, ref) {
20644 return (React__default.createElement(FontIcon, __assign$2T({}, props, { ref: ref }), "attach_money"));
20645 });
20646
20647 var __assign$2U = (undefined && undefined.__assign) || function () {
20648 __assign$2U = Object.assign || function(t) {
20649 for (var s, i = 1, n = arguments.length; i < n; i++) {
20650 s = arguments[i];
20651 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20652 t[p] = s[p];
20653 }
20654 return t;
20655 };
20656 return __assign$2U.apply(this, arguments);
20657 };
20658 var AttachmentFontIcon = React.forwardRef(function AttachmentFontIcon(props, ref) {
20659 return (React__default.createElement(FontIcon, __assign$2U({}, props, { ref: ref }), "attachment"));
20660 });
20661
20662 var __assign$2V = (undefined && undefined.__assign) || function () {
20663 __assign$2V = Object.assign || function(t) {
20664 for (var s, i = 1, n = arguments.length; i < n; i++) {
20665 s = arguments[i];
20666 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20667 t[p] = s[p];
20668 }
20669 return t;
20670 };
20671 return __assign$2V.apply(this, arguments);
20672 };
20673 var AudiotrackFontIcon = React.forwardRef(function AudiotrackFontIcon(props, ref) {
20674 return (React__default.createElement(FontIcon, __assign$2V({}, props, { ref: ref }), "audiotrack"));
20675 });
20676
20677 var __assign$2W = (undefined && undefined.__assign) || function () {
20678 __assign$2W = Object.assign || function(t) {
20679 for (var s, i = 1, n = arguments.length; i < n; i++) {
20680 s = arguments[i];
20681 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20682 t[p] = s[p];
20683 }
20684 return t;
20685 };
20686 return __assign$2W.apply(this, arguments);
20687 };
20688 var AutorenewFontIcon = React.forwardRef(function AutorenewFontIcon(props, ref) {
20689 return (React__default.createElement(FontIcon, __assign$2W({}, props, { ref: ref }), "autorenew"));
20690 });
20691
20692 var __assign$2X = (undefined && undefined.__assign) || function () {
20693 __assign$2X = Object.assign || function(t) {
20694 for (var s, i = 1, n = arguments.length; i < n; i++) {
20695 s = arguments[i];
20696 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20697 t[p] = s[p];
20698 }
20699 return t;
20700 };
20701 return __assign$2X.apply(this, arguments);
20702 };
20703 var AvTimerFontIcon = React.forwardRef(function AvTimerFontIcon(props, ref) {
20704 return (React__default.createElement(FontIcon, __assign$2X({}, props, { ref: ref }), "av_timer"));
20705 });
20706
20707 var __assign$2Y = (undefined && undefined.__assign) || function () {
20708 __assign$2Y = Object.assign || function(t) {
20709 for (var s, i = 1, n = arguments.length; i < n; i++) {
20710 s = arguments[i];
20711 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20712 t[p] = s[p];
20713 }
20714 return t;
20715 };
20716 return __assign$2Y.apply(this, arguments);
20717 };
20718 var BackspaceFontIcon = React.forwardRef(function BackspaceFontIcon(props, ref) {
20719 return (React__default.createElement(FontIcon, __assign$2Y({}, props, { ref: ref }), "backspace"));
20720 });
20721
20722 var __assign$2Z = (undefined && undefined.__assign) || function () {
20723 __assign$2Z = Object.assign || function(t) {
20724 for (var s, i = 1, n = arguments.length; i < n; i++) {
20725 s = arguments[i];
20726 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20727 t[p] = s[p];
20728 }
20729 return t;
20730 };
20731 return __assign$2Z.apply(this, arguments);
20732 };
20733 var BackupFontIcon = React.forwardRef(function BackupFontIcon(props, ref) {
20734 return (React__default.createElement(FontIcon, __assign$2Z({}, props, { ref: ref }), "backup"));
20735 });
20736
20737 var __assign$2_ = (undefined && undefined.__assign) || function () {
20738 __assign$2_ = Object.assign || function(t) {
20739 for (var s, i = 1, n = arguments.length; i < n; i++) {
20740 s = arguments[i];
20741 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20742 t[p] = s[p];
20743 }
20744 return t;
20745 };
20746 return __assign$2_.apply(this, arguments);
20747 };
20748 var BatteryAlertFontIcon = React.forwardRef(function BatteryAlertFontIcon(props, ref) {
20749 return (React__default.createElement(FontIcon, __assign$2_({}, props, { ref: ref }), "battery_alert"));
20750 });
20751
20752 var __assign$2$ = (undefined && undefined.__assign) || function () {
20753 __assign$2$ = Object.assign || function(t) {
20754 for (var s, i = 1, n = arguments.length; i < n; i++) {
20755 s = arguments[i];
20756 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20757 t[p] = s[p];
20758 }
20759 return t;
20760 };
20761 return __assign$2$.apply(this, arguments);
20762 };
20763 var BatteryChargingFullFontIcon = React.forwardRef(function BatteryChargingFullFontIcon(props, ref) {
20764 return (React__default.createElement(FontIcon, __assign$2$({}, props, { ref: ref }), "battery_charging_full"));
20765 });
20766
20767 var __assign$30 = (undefined && undefined.__assign) || function () {
20768 __assign$30 = Object.assign || function(t) {
20769 for (var s, i = 1, n = arguments.length; i < n; i++) {
20770 s = arguments[i];
20771 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20772 t[p] = s[p];
20773 }
20774 return t;
20775 };
20776 return __assign$30.apply(this, arguments);
20777 };
20778 var BatteryFullFontIcon = React.forwardRef(function BatteryFullFontIcon(props, ref) {
20779 return (React__default.createElement(FontIcon, __assign$30({}, props, { ref: ref }), "battery_full"));
20780 });
20781
20782 var __assign$31 = (undefined && undefined.__assign) || function () {
20783 __assign$31 = Object.assign || function(t) {
20784 for (var s, i = 1, n = arguments.length; i < n; i++) {
20785 s = arguments[i];
20786 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20787 t[p] = s[p];
20788 }
20789 return t;
20790 };
20791 return __assign$31.apply(this, arguments);
20792 };
20793 var BatteryStdFontIcon = React.forwardRef(function BatteryStdFontIcon(props, ref) {
20794 return (React__default.createElement(FontIcon, __assign$31({}, props, { ref: ref }), "battery_std"));
20795 });
20796
20797 var __assign$32 = (undefined && undefined.__assign) || function () {
20798 __assign$32 = Object.assign || function(t) {
20799 for (var s, i = 1, n = arguments.length; i < n; i++) {
20800 s = arguments[i];
20801 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20802 t[p] = s[p];
20803 }
20804 return t;
20805 };
20806 return __assign$32.apply(this, arguments);
20807 };
20808 var BatteryUnknownFontIcon = React.forwardRef(function BatteryUnknownFontIcon(props, ref) {
20809 return (React__default.createElement(FontIcon, __assign$32({}, props, { ref: ref }), "battery_unknown"));
20810 });
20811
20812 var __assign$33 = (undefined && undefined.__assign) || function () {
20813 __assign$33 = Object.assign || function(t) {
20814 for (var s, i = 1, n = arguments.length; i < n; i++) {
20815 s = arguments[i];
20816 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20817 t[p] = s[p];
20818 }
20819 return t;
20820 };
20821 return __assign$33.apply(this, arguments);
20822 };
20823 var BeachAccessFontIcon = React.forwardRef(function BeachAccessFontIcon(props, ref) {
20824 return (React__default.createElement(FontIcon, __assign$33({}, props, { ref: ref }), "beach_access"));
20825 });
20826
20827 var __assign$34 = (undefined && undefined.__assign) || function () {
20828 __assign$34 = Object.assign || function(t) {
20829 for (var s, i = 1, n = arguments.length; i < n; i++) {
20830 s = arguments[i];
20831 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20832 t[p] = s[p];
20833 }
20834 return t;
20835 };
20836 return __assign$34.apply(this, arguments);
20837 };
20838 var BeenhereFontIcon = React.forwardRef(function BeenhereFontIcon(props, ref) {
20839 return (React__default.createElement(FontIcon, __assign$34({}, props, { ref: ref }), "beenhere"));
20840 });
20841
20842 var __assign$35 = (undefined && undefined.__assign) || function () {
20843 __assign$35 = Object.assign || function(t) {
20844 for (var s, i = 1, n = arguments.length; i < n; i++) {
20845 s = arguments[i];
20846 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20847 t[p] = s[p];
20848 }
20849 return t;
20850 };
20851 return __assign$35.apply(this, arguments);
20852 };
20853 var BlockFontIcon = React.forwardRef(function BlockFontIcon(props, ref) {
20854 return (React__default.createElement(FontIcon, __assign$35({}, props, { ref: ref }), "block"));
20855 });
20856
20857 var __assign$36 = (undefined && undefined.__assign) || function () {
20858 __assign$36 = Object.assign || function(t) {
20859 for (var s, i = 1, n = arguments.length; i < n; i++) {
20860 s = arguments[i];
20861 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20862 t[p] = s[p];
20863 }
20864 return t;
20865 };
20866 return __assign$36.apply(this, arguments);
20867 };
20868 var BluetoothAudioFontIcon = React.forwardRef(function BluetoothAudioFontIcon(props, ref) {
20869 return (React__default.createElement(FontIcon, __assign$36({}, props, { ref: ref }), "bluetooth_audio"));
20870 });
20871
20872 var __assign$37 = (undefined && undefined.__assign) || function () {
20873 __assign$37 = Object.assign || function(t) {
20874 for (var s, i = 1, n = arguments.length; i < n; i++) {
20875 s = arguments[i];
20876 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20877 t[p] = s[p];
20878 }
20879 return t;
20880 };
20881 return __assign$37.apply(this, arguments);
20882 };
20883 var BluetoothConnectedFontIcon = React.forwardRef(function BluetoothConnectedFontIcon(props, ref) {
20884 return (React__default.createElement(FontIcon, __assign$37({}, props, { ref: ref }), "bluetooth_connected"));
20885 });
20886
20887 var __assign$38 = (undefined && undefined.__assign) || function () {
20888 __assign$38 = Object.assign || function(t) {
20889 for (var s, i = 1, n = arguments.length; i < n; i++) {
20890 s = arguments[i];
20891 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20892 t[p] = s[p];
20893 }
20894 return t;
20895 };
20896 return __assign$38.apply(this, arguments);
20897 };
20898 var BluetoothDisabledFontIcon = React.forwardRef(function BluetoothDisabledFontIcon(props, ref) {
20899 return (React__default.createElement(FontIcon, __assign$38({}, props, { ref: ref }), "bluetooth_disabled"));
20900 });
20901
20902 var __assign$39 = (undefined && undefined.__assign) || function () {
20903 __assign$39 = Object.assign || function(t) {
20904 for (var s, i = 1, n = arguments.length; i < n; i++) {
20905 s = arguments[i];
20906 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20907 t[p] = s[p];
20908 }
20909 return t;
20910 };
20911 return __assign$39.apply(this, arguments);
20912 };
20913 var BluetoothSearchingFontIcon = React.forwardRef(function BluetoothSearchingFontIcon(props, ref) {
20914 return (React__default.createElement(FontIcon, __assign$39({}, props, { ref: ref }), "bluetooth_searching"));
20915 });
20916
20917 var __assign$3a = (undefined && undefined.__assign) || function () {
20918 __assign$3a = Object.assign || function(t) {
20919 for (var s, i = 1, n = arguments.length; i < n; i++) {
20920 s = arguments[i];
20921 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20922 t[p] = s[p];
20923 }
20924 return t;
20925 };
20926 return __assign$3a.apply(this, arguments);
20927 };
20928 var BluetoothFontIcon = React.forwardRef(function BluetoothFontIcon(props, ref) {
20929 return (React__default.createElement(FontIcon, __assign$3a({}, props, { ref: ref }), "bluetooth"));
20930 });
20931
20932 var __assign$3b = (undefined && undefined.__assign) || function () {
20933 __assign$3b = Object.assign || function(t) {
20934 for (var s, i = 1, n = arguments.length; i < n; i++) {
20935 s = arguments[i];
20936 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20937 t[p] = s[p];
20938 }
20939 return t;
20940 };
20941 return __assign$3b.apply(this, arguments);
20942 };
20943 var BlurCircularFontIcon = React.forwardRef(function BlurCircularFontIcon(props, ref) {
20944 return (React__default.createElement(FontIcon, __assign$3b({}, props, { ref: ref }), "blur_circular"));
20945 });
20946
20947 var __assign$3c = (undefined && undefined.__assign) || function () {
20948 __assign$3c = Object.assign || function(t) {
20949 for (var s, i = 1, n = arguments.length; i < n; i++) {
20950 s = arguments[i];
20951 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20952 t[p] = s[p];
20953 }
20954 return t;
20955 };
20956 return __assign$3c.apply(this, arguments);
20957 };
20958 var BlurLinearFontIcon = React.forwardRef(function BlurLinearFontIcon(props, ref) {
20959 return (React__default.createElement(FontIcon, __assign$3c({}, props, { ref: ref }), "blur_linear"));
20960 });
20961
20962 var __assign$3d = (undefined && undefined.__assign) || function () {
20963 __assign$3d = Object.assign || function(t) {
20964 for (var s, i = 1, n = arguments.length; i < n; i++) {
20965 s = arguments[i];
20966 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20967 t[p] = s[p];
20968 }
20969 return t;
20970 };
20971 return __assign$3d.apply(this, arguments);
20972 };
20973 var BlurOffFontIcon = React.forwardRef(function BlurOffFontIcon(props, ref) {
20974 return (React__default.createElement(FontIcon, __assign$3d({}, props, { ref: ref }), "blur_off"));
20975 });
20976
20977 var __assign$3e = (undefined && undefined.__assign) || function () {
20978 __assign$3e = Object.assign || function(t) {
20979 for (var s, i = 1, n = arguments.length; i < n; i++) {
20980 s = arguments[i];
20981 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20982 t[p] = s[p];
20983 }
20984 return t;
20985 };
20986 return __assign$3e.apply(this, arguments);
20987 };
20988 var BlurOnFontIcon = React.forwardRef(function BlurOnFontIcon(props, ref) {
20989 return (React__default.createElement(FontIcon, __assign$3e({}, props, { ref: ref }), "blur_on"));
20990 });
20991
20992 var __assign$3f = (undefined && undefined.__assign) || function () {
20993 __assign$3f = Object.assign || function(t) {
20994 for (var s, i = 1, n = arguments.length; i < n; i++) {
20995 s = arguments[i];
20996 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20997 t[p] = s[p];
20998 }
20999 return t;
21000 };
21001 return __assign$3f.apply(this, arguments);
21002 };
21003 var BookFontIcon = React.forwardRef(function BookFontIcon(props, ref) {
21004 return (React__default.createElement(FontIcon, __assign$3f({}, props, { ref: ref }), "book"));
21005 });
21006
21007 var __assign$3g = (undefined && undefined.__assign) || function () {
21008 __assign$3g = Object.assign || function(t) {
21009 for (var s, i = 1, n = arguments.length; i < n; i++) {
21010 s = arguments[i];
21011 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21012 t[p] = s[p];
21013 }
21014 return t;
21015 };
21016 return __assign$3g.apply(this, arguments);
21017 };
21018 var BookmarkBorderFontIcon = React.forwardRef(function BookmarkBorderFontIcon(props, ref) {
21019 return (React__default.createElement(FontIcon, __assign$3g({}, props, { ref: ref }), "bookmark_border"));
21020 });
21021
21022 var __assign$3h = (undefined && undefined.__assign) || function () {
21023 __assign$3h = Object.assign || function(t) {
21024 for (var s, i = 1, n = arguments.length; i < n; i++) {
21025 s = arguments[i];
21026 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21027 t[p] = s[p];
21028 }
21029 return t;
21030 };
21031 return __assign$3h.apply(this, arguments);
21032 };
21033 var BookmarkFontIcon = React.forwardRef(function BookmarkFontIcon(props, ref) {
21034 return (React__default.createElement(FontIcon, __assign$3h({}, props, { ref: ref }), "bookmark"));
21035 });
21036
21037 var __assign$3i = (undefined && undefined.__assign) || function () {
21038 __assign$3i = Object.assign || function(t) {
21039 for (var s, i = 1, n = arguments.length; i < n; i++) {
21040 s = arguments[i];
21041 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21042 t[p] = s[p];
21043 }
21044 return t;
21045 };
21046 return __assign$3i.apply(this, arguments);
21047 };
21048 var BorderAllFontIcon = React.forwardRef(function BorderAllFontIcon(props, ref) {
21049 return (React__default.createElement(FontIcon, __assign$3i({}, props, { ref: ref }), "border_all"));
21050 });
21051
21052 var __assign$3j = (undefined && undefined.__assign) || function () {
21053 __assign$3j = Object.assign || function(t) {
21054 for (var s, i = 1, n = arguments.length; i < n; i++) {
21055 s = arguments[i];
21056 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21057 t[p] = s[p];
21058 }
21059 return t;
21060 };
21061 return __assign$3j.apply(this, arguments);
21062 };
21063 var BorderBottomFontIcon = React.forwardRef(function BorderBottomFontIcon(props, ref) {
21064 return (React__default.createElement(FontIcon, __assign$3j({}, props, { ref: ref }), "border_bottom"));
21065 });
21066
21067 var __assign$3k = (undefined && undefined.__assign) || function () {
21068 __assign$3k = Object.assign || function(t) {
21069 for (var s, i = 1, n = arguments.length; i < n; i++) {
21070 s = arguments[i];
21071 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21072 t[p] = s[p];
21073 }
21074 return t;
21075 };
21076 return __assign$3k.apply(this, arguments);
21077 };
21078 var BorderClearFontIcon = React.forwardRef(function BorderClearFontIcon(props, ref) {
21079 return (React__default.createElement(FontIcon, __assign$3k({}, props, { ref: ref }), "border_clear"));
21080 });
21081
21082 var __assign$3l = (undefined && undefined.__assign) || function () {
21083 __assign$3l = Object.assign || function(t) {
21084 for (var s, i = 1, n = arguments.length; i < n; i++) {
21085 s = arguments[i];
21086 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21087 t[p] = s[p];
21088 }
21089 return t;
21090 };
21091 return __assign$3l.apply(this, arguments);
21092 };
21093 var BorderColorFontIcon = React.forwardRef(function BorderColorFontIcon(props, ref) {
21094 return (React__default.createElement(FontIcon, __assign$3l({}, props, { ref: ref }), "border_color"));
21095 });
21096
21097 var __assign$3m = (undefined && undefined.__assign) || function () {
21098 __assign$3m = Object.assign || function(t) {
21099 for (var s, i = 1, n = arguments.length; i < n; i++) {
21100 s = arguments[i];
21101 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21102 t[p] = s[p];
21103 }
21104 return t;
21105 };
21106 return __assign$3m.apply(this, arguments);
21107 };
21108 var BorderHorizontalFontIcon = React.forwardRef(function BorderHorizontalFontIcon(props, ref) {
21109 return (React__default.createElement(FontIcon, __assign$3m({}, props, { ref: ref }), "border_horizontal"));
21110 });
21111
21112 var __assign$3n = (undefined && undefined.__assign) || function () {
21113 __assign$3n = Object.assign || function(t) {
21114 for (var s, i = 1, n = arguments.length; i < n; i++) {
21115 s = arguments[i];
21116 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21117 t[p] = s[p];
21118 }
21119 return t;
21120 };
21121 return __assign$3n.apply(this, arguments);
21122 };
21123 var BorderInnerFontIcon = React.forwardRef(function BorderInnerFontIcon(props, ref) {
21124 return (React__default.createElement(FontIcon, __assign$3n({}, props, { ref: ref }), "border_inner"));
21125 });
21126
21127 var __assign$3o = (undefined && undefined.__assign) || function () {
21128 __assign$3o = Object.assign || function(t) {
21129 for (var s, i = 1, n = arguments.length; i < n; i++) {
21130 s = arguments[i];
21131 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21132 t[p] = s[p];
21133 }
21134 return t;
21135 };
21136 return __assign$3o.apply(this, arguments);
21137 };
21138 var BorderLeftFontIcon = React.forwardRef(function BorderLeftFontIcon(props, ref) {
21139 return (React__default.createElement(FontIcon, __assign$3o({}, props, { ref: ref }), "border_left"));
21140 });
21141
21142 var __assign$3p = (undefined && undefined.__assign) || function () {
21143 __assign$3p = Object.assign || function(t) {
21144 for (var s, i = 1, n = arguments.length; i < n; i++) {
21145 s = arguments[i];
21146 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21147 t[p] = s[p];
21148 }
21149 return t;
21150 };
21151 return __assign$3p.apply(this, arguments);
21152 };
21153 var BorderOuterFontIcon = React.forwardRef(function BorderOuterFontIcon(props, ref) {
21154 return (React__default.createElement(FontIcon, __assign$3p({}, props, { ref: ref }), "border_outer"));
21155 });
21156
21157 var __assign$3q = (undefined && undefined.__assign) || function () {
21158 __assign$3q = Object.assign || function(t) {
21159 for (var s, i = 1, n = arguments.length; i < n; i++) {
21160 s = arguments[i];
21161 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21162 t[p] = s[p];
21163 }
21164 return t;
21165 };
21166 return __assign$3q.apply(this, arguments);
21167 };
21168 var BorderRightFontIcon = React.forwardRef(function BorderRightFontIcon(props, ref) {
21169 return (React__default.createElement(FontIcon, __assign$3q({}, props, { ref: ref }), "border_right"));
21170 });
21171
21172 var __assign$3r = (undefined && undefined.__assign) || function () {
21173 __assign$3r = Object.assign || function(t) {
21174 for (var s, i = 1, n = arguments.length; i < n; i++) {
21175 s = arguments[i];
21176 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21177 t[p] = s[p];
21178 }
21179 return t;
21180 };
21181 return __assign$3r.apply(this, arguments);
21182 };
21183 var BorderStyleFontIcon = React.forwardRef(function BorderStyleFontIcon(props, ref) {
21184 return (React__default.createElement(FontIcon, __assign$3r({}, props, { ref: ref }), "border_style"));
21185 });
21186
21187 var __assign$3s = (undefined && undefined.__assign) || function () {
21188 __assign$3s = Object.assign || function(t) {
21189 for (var s, i = 1, n = arguments.length; i < n; i++) {
21190 s = arguments[i];
21191 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21192 t[p] = s[p];
21193 }
21194 return t;
21195 };
21196 return __assign$3s.apply(this, arguments);
21197 };
21198 var BorderTopFontIcon = React.forwardRef(function BorderTopFontIcon(props, ref) {
21199 return (React__default.createElement(FontIcon, __assign$3s({}, props, { ref: ref }), "border_top"));
21200 });
21201
21202 var __assign$3t = (undefined && undefined.__assign) || function () {
21203 __assign$3t = Object.assign || function(t) {
21204 for (var s, i = 1, n = arguments.length; i < n; i++) {
21205 s = arguments[i];
21206 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21207 t[p] = s[p];
21208 }
21209 return t;
21210 };
21211 return __assign$3t.apply(this, arguments);
21212 };
21213 var BorderVerticalFontIcon = React.forwardRef(function BorderVerticalFontIcon(props, ref) {
21214 return (React__default.createElement(FontIcon, __assign$3t({}, props, { ref: ref }), "border_vertical"));
21215 });
21216
21217 var __assign$3u = (undefined && undefined.__assign) || function () {
21218 __assign$3u = Object.assign || function(t) {
21219 for (var s, i = 1, n = arguments.length; i < n; i++) {
21220 s = arguments[i];
21221 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21222 t[p] = s[p];
21223 }
21224 return t;
21225 };
21226 return __assign$3u.apply(this, arguments);
21227 };
21228 var BrandingWatermarkFontIcon = React.forwardRef(function BrandingWatermarkFontIcon(props, ref) {
21229 return (React__default.createElement(FontIcon, __assign$3u({}, props, { ref: ref }), "branding_watermark"));
21230 });
21231
21232 var __assign$3v = (undefined && undefined.__assign) || function () {
21233 __assign$3v = Object.assign || function(t) {
21234 for (var s, i = 1, n = arguments.length; i < n; i++) {
21235 s = arguments[i];
21236 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21237 t[p] = s[p];
21238 }
21239 return t;
21240 };
21241 return __assign$3v.apply(this, arguments);
21242 };
21243 var Brightness1FontIcon = React.forwardRef(function Brightness1FontIcon(props, ref) {
21244 return (React__default.createElement(FontIcon, __assign$3v({}, props, { ref: ref }), "brightness_1"));
21245 });
21246
21247 var __assign$3w = (undefined && undefined.__assign) || function () {
21248 __assign$3w = Object.assign || function(t) {
21249 for (var s, i = 1, n = arguments.length; i < n; i++) {
21250 s = arguments[i];
21251 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21252 t[p] = s[p];
21253 }
21254 return t;
21255 };
21256 return __assign$3w.apply(this, arguments);
21257 };
21258 var Brightness2FontIcon = React.forwardRef(function Brightness2FontIcon(props, ref) {
21259 return (React__default.createElement(FontIcon, __assign$3w({}, props, { ref: ref }), "brightness_2"));
21260 });
21261
21262 var __assign$3x = (undefined && undefined.__assign) || function () {
21263 __assign$3x = Object.assign || function(t) {
21264 for (var s, i = 1, n = arguments.length; i < n; i++) {
21265 s = arguments[i];
21266 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21267 t[p] = s[p];
21268 }
21269 return t;
21270 };
21271 return __assign$3x.apply(this, arguments);
21272 };
21273 var Brightness3FontIcon = React.forwardRef(function Brightness3FontIcon(props, ref) {
21274 return (React__default.createElement(FontIcon, __assign$3x({}, props, { ref: ref }), "brightness_3"));
21275 });
21276
21277 var __assign$3y = (undefined && undefined.__assign) || function () {
21278 __assign$3y = Object.assign || function(t) {
21279 for (var s, i = 1, n = arguments.length; i < n; i++) {
21280 s = arguments[i];
21281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21282 t[p] = s[p];
21283 }
21284 return t;
21285 };
21286 return __assign$3y.apply(this, arguments);
21287 };
21288 var Brightness4FontIcon = React.forwardRef(function Brightness4FontIcon(props, ref) {
21289 return (React__default.createElement(FontIcon, __assign$3y({}, props, { ref: ref }), "brightness_4"));
21290 });
21291
21292 var __assign$3z = (undefined && undefined.__assign) || function () {
21293 __assign$3z = Object.assign || function(t) {
21294 for (var s, i = 1, n = arguments.length; i < n; i++) {
21295 s = arguments[i];
21296 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21297 t[p] = s[p];
21298 }
21299 return t;
21300 };
21301 return __assign$3z.apply(this, arguments);
21302 };
21303 var Brightness5FontIcon = React.forwardRef(function Brightness5FontIcon(props, ref) {
21304 return (React__default.createElement(FontIcon, __assign$3z({}, props, { ref: ref }), "brightness_5"));
21305 });
21306
21307 var __assign$3A = (undefined && undefined.__assign) || function () {
21308 __assign$3A = Object.assign || function(t) {
21309 for (var s, i = 1, n = arguments.length; i < n; i++) {
21310 s = arguments[i];
21311 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21312 t[p] = s[p];
21313 }
21314 return t;
21315 };
21316 return __assign$3A.apply(this, arguments);
21317 };
21318 var Brightness6FontIcon = React.forwardRef(function Brightness6FontIcon(props, ref) {
21319 return (React__default.createElement(FontIcon, __assign$3A({}, props, { ref: ref }), "brightness_6"));
21320 });
21321
21322 var __assign$3B = (undefined && undefined.__assign) || function () {
21323 __assign$3B = Object.assign || function(t) {
21324 for (var s, i = 1, n = arguments.length; i < n; i++) {
21325 s = arguments[i];
21326 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21327 t[p] = s[p];
21328 }
21329 return t;
21330 };
21331 return __assign$3B.apply(this, arguments);
21332 };
21333 var Brightness7FontIcon = React.forwardRef(function Brightness7FontIcon(props, ref) {
21334 return (React__default.createElement(FontIcon, __assign$3B({}, props, { ref: ref }), "brightness_7"));
21335 });
21336
21337 var __assign$3C = (undefined && undefined.__assign) || function () {
21338 __assign$3C = Object.assign || function(t) {
21339 for (var s, i = 1, n = arguments.length; i < n; i++) {
21340 s = arguments[i];
21341 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21342 t[p] = s[p];
21343 }
21344 return t;
21345 };
21346 return __assign$3C.apply(this, arguments);
21347 };
21348 var BrightnessAutoFontIcon = React.forwardRef(function BrightnessAutoFontIcon(props, ref) {
21349 return (React__default.createElement(FontIcon, __assign$3C({}, props, { ref: ref }), "brightness_auto"));
21350 });
21351
21352 var __assign$3D = (undefined && undefined.__assign) || function () {
21353 __assign$3D = Object.assign || function(t) {
21354 for (var s, i = 1, n = arguments.length; i < n; i++) {
21355 s = arguments[i];
21356 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21357 t[p] = s[p];
21358 }
21359 return t;
21360 };
21361 return __assign$3D.apply(this, arguments);
21362 };
21363 var BrightnessHighFontIcon = React.forwardRef(function BrightnessHighFontIcon(props, ref) {
21364 return (React__default.createElement(FontIcon, __assign$3D({}, props, { ref: ref }), "brightness_high"));
21365 });
21366
21367 var __assign$3E = (undefined && undefined.__assign) || function () {
21368 __assign$3E = Object.assign || function(t) {
21369 for (var s, i = 1, n = arguments.length; i < n; i++) {
21370 s = arguments[i];
21371 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21372 t[p] = s[p];
21373 }
21374 return t;
21375 };
21376 return __assign$3E.apply(this, arguments);
21377 };
21378 var BrightnessLowFontIcon = React.forwardRef(function BrightnessLowFontIcon(props, ref) {
21379 return (React__default.createElement(FontIcon, __assign$3E({}, props, { ref: ref }), "brightness_low"));
21380 });
21381
21382 var __assign$3F = (undefined && undefined.__assign) || function () {
21383 __assign$3F = Object.assign || function(t) {
21384 for (var s, i = 1, n = arguments.length; i < n; i++) {
21385 s = arguments[i];
21386 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21387 t[p] = s[p];
21388 }
21389 return t;
21390 };
21391 return __assign$3F.apply(this, arguments);
21392 };
21393 var BrightnessMediumFontIcon = React.forwardRef(function BrightnessMediumFontIcon(props, ref) {
21394 return (React__default.createElement(FontIcon, __assign$3F({}, props, { ref: ref }), "brightness_medium"));
21395 });
21396
21397 var __assign$3G = (undefined && undefined.__assign) || function () {
21398 __assign$3G = Object.assign || function(t) {
21399 for (var s, i = 1, n = arguments.length; i < n; i++) {
21400 s = arguments[i];
21401 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21402 t[p] = s[p];
21403 }
21404 return t;
21405 };
21406 return __assign$3G.apply(this, arguments);
21407 };
21408 var BrokenImageFontIcon = React.forwardRef(function BrokenImageFontIcon(props, ref) {
21409 return (React__default.createElement(FontIcon, __assign$3G({}, props, { ref: ref }), "broken_image"));
21410 });
21411
21412 var __assign$3H = (undefined && undefined.__assign) || function () {
21413 __assign$3H = Object.assign || function(t) {
21414 for (var s, i = 1, n = arguments.length; i < n; i++) {
21415 s = arguments[i];
21416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21417 t[p] = s[p];
21418 }
21419 return t;
21420 };
21421 return __assign$3H.apply(this, arguments);
21422 };
21423 var BrushFontIcon = React.forwardRef(function BrushFontIcon(props, ref) {
21424 return (React__default.createElement(FontIcon, __assign$3H({}, props, { ref: ref }), "brush"));
21425 });
21426
21427 var __assign$3I = (undefined && undefined.__assign) || function () {
21428 __assign$3I = Object.assign || function(t) {
21429 for (var s, i = 1, n = arguments.length; i < n; i++) {
21430 s = arguments[i];
21431 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21432 t[p] = s[p];
21433 }
21434 return t;
21435 };
21436 return __assign$3I.apply(this, arguments);
21437 };
21438 var BubbleChartFontIcon = React.forwardRef(function BubbleChartFontIcon(props, ref) {
21439 return (React__default.createElement(FontIcon, __assign$3I({}, props, { ref: ref }), "bubble_chart"));
21440 });
21441
21442 var __assign$3J = (undefined && undefined.__assign) || function () {
21443 __assign$3J = Object.assign || function(t) {
21444 for (var s, i = 1, n = arguments.length; i < n; i++) {
21445 s = arguments[i];
21446 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21447 t[p] = s[p];
21448 }
21449 return t;
21450 };
21451 return __assign$3J.apply(this, arguments);
21452 };
21453 var BugReportFontIcon = React.forwardRef(function BugReportFontIcon(props, ref) {
21454 return (React__default.createElement(FontIcon, __assign$3J({}, props, { ref: ref }), "bug_report"));
21455 });
21456
21457 var __assign$3K = (undefined && undefined.__assign) || function () {
21458 __assign$3K = Object.assign || function(t) {
21459 for (var s, i = 1, n = arguments.length; i < n; i++) {
21460 s = arguments[i];
21461 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21462 t[p] = s[p];
21463 }
21464 return t;
21465 };
21466 return __assign$3K.apply(this, arguments);
21467 };
21468 var BuildFontIcon = React.forwardRef(function BuildFontIcon(props, ref) {
21469 return (React__default.createElement(FontIcon, __assign$3K({}, props, { ref: ref }), "build"));
21470 });
21471
21472 var __assign$3L = (undefined && undefined.__assign) || function () {
21473 __assign$3L = Object.assign || function(t) {
21474 for (var s, i = 1, n = arguments.length; i < n; i++) {
21475 s = arguments[i];
21476 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21477 t[p] = s[p];
21478 }
21479 return t;
21480 };
21481 return __assign$3L.apply(this, arguments);
21482 };
21483 var BurstModeFontIcon = React.forwardRef(function BurstModeFontIcon(props, ref) {
21484 return (React__default.createElement(FontIcon, __assign$3L({}, props, { ref: ref }), "burst_mode"));
21485 });
21486
21487 var __assign$3M = (undefined && undefined.__assign) || function () {
21488 __assign$3M = Object.assign || function(t) {
21489 for (var s, i = 1, n = arguments.length; i < n; i++) {
21490 s = arguments[i];
21491 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21492 t[p] = s[p];
21493 }
21494 return t;
21495 };
21496 return __assign$3M.apply(this, arguments);
21497 };
21498 var BusinessCenterFontIcon = React.forwardRef(function BusinessCenterFontIcon(props, ref) {
21499 return (React__default.createElement(FontIcon, __assign$3M({}, props, { ref: ref }), "business_center"));
21500 });
21501
21502 var __assign$3N = (undefined && undefined.__assign) || function () {
21503 __assign$3N = Object.assign || function(t) {
21504 for (var s, i = 1, n = arguments.length; i < n; i++) {
21505 s = arguments[i];
21506 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21507 t[p] = s[p];
21508 }
21509 return t;
21510 };
21511 return __assign$3N.apply(this, arguments);
21512 };
21513 var BusinessFontIcon = React.forwardRef(function BusinessFontIcon(props, ref) {
21514 return (React__default.createElement(FontIcon, __assign$3N({}, props, { ref: ref }), "business"));
21515 });
21516
21517 var __assign$3O = (undefined && undefined.__assign) || function () {
21518 __assign$3O = Object.assign || function(t) {
21519 for (var s, i = 1, n = arguments.length; i < n; i++) {
21520 s = arguments[i];
21521 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21522 t[p] = s[p];
21523 }
21524 return t;
21525 };
21526 return __assign$3O.apply(this, arguments);
21527 };
21528 var CachedFontIcon = React.forwardRef(function CachedFontIcon(props, ref) {
21529 return (React__default.createElement(FontIcon, __assign$3O({}, props, { ref: ref }), "cached"));
21530 });
21531
21532 var __assign$3P = (undefined && undefined.__assign) || function () {
21533 __assign$3P = Object.assign || function(t) {
21534 for (var s, i = 1, n = arguments.length; i < n; i++) {
21535 s = arguments[i];
21536 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21537 t[p] = s[p];
21538 }
21539 return t;
21540 };
21541 return __assign$3P.apply(this, arguments);
21542 };
21543 var CakeFontIcon = React.forwardRef(function CakeFontIcon(props, ref) {
21544 return (React__default.createElement(FontIcon, __assign$3P({}, props, { ref: ref }), "cake"));
21545 });
21546
21547 var __assign$3Q = (undefined && undefined.__assign) || function () {
21548 __assign$3Q = Object.assign || function(t) {
21549 for (var s, i = 1, n = arguments.length; i < n; i++) {
21550 s = arguments[i];
21551 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21552 t[p] = s[p];
21553 }
21554 return t;
21555 };
21556 return __assign$3Q.apply(this, arguments);
21557 };
21558 var CallEndFontIcon = React.forwardRef(function CallEndFontIcon(props, ref) {
21559 return (React__default.createElement(FontIcon, __assign$3Q({}, props, { ref: ref }), "call_end"));
21560 });
21561
21562 var __assign$3R = (undefined && undefined.__assign) || function () {
21563 __assign$3R = Object.assign || function(t) {
21564 for (var s, i = 1, n = arguments.length; i < n; i++) {
21565 s = arguments[i];
21566 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21567 t[p] = s[p];
21568 }
21569 return t;
21570 };
21571 return __assign$3R.apply(this, arguments);
21572 };
21573 var CallMadeFontIcon = React.forwardRef(function CallMadeFontIcon(props, ref) {
21574 return (React__default.createElement(FontIcon, __assign$3R({}, props, { ref: ref }), "call_made"));
21575 });
21576
21577 var __assign$3S = (undefined && undefined.__assign) || function () {
21578 __assign$3S = Object.assign || function(t) {
21579 for (var s, i = 1, n = arguments.length; i < n; i++) {
21580 s = arguments[i];
21581 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21582 t[p] = s[p];
21583 }
21584 return t;
21585 };
21586 return __assign$3S.apply(this, arguments);
21587 };
21588 var CallMergeFontIcon = React.forwardRef(function CallMergeFontIcon(props, ref) {
21589 return (React__default.createElement(FontIcon, __assign$3S({}, props, { ref: ref }), "call_merge"));
21590 });
21591
21592 var __assign$3T = (undefined && undefined.__assign) || function () {
21593 __assign$3T = Object.assign || function(t) {
21594 for (var s, i = 1, n = arguments.length; i < n; i++) {
21595 s = arguments[i];
21596 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21597 t[p] = s[p];
21598 }
21599 return t;
21600 };
21601 return __assign$3T.apply(this, arguments);
21602 };
21603 var CallMissedOutgoingFontIcon = React.forwardRef(function CallMissedOutgoingFontIcon(props, ref) {
21604 return (React__default.createElement(FontIcon, __assign$3T({}, props, { ref: ref }), "call_missed_outgoing"));
21605 });
21606
21607 var __assign$3U = (undefined && undefined.__assign) || function () {
21608 __assign$3U = Object.assign || function(t) {
21609 for (var s, i = 1, n = arguments.length; i < n; i++) {
21610 s = arguments[i];
21611 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21612 t[p] = s[p];
21613 }
21614 return t;
21615 };
21616 return __assign$3U.apply(this, arguments);
21617 };
21618 var CallMissedFontIcon = React.forwardRef(function CallMissedFontIcon(props, ref) {
21619 return (React__default.createElement(FontIcon, __assign$3U({}, props, { ref: ref }), "call_missed"));
21620 });
21621
21622 var __assign$3V = (undefined && undefined.__assign) || function () {
21623 __assign$3V = Object.assign || function(t) {
21624 for (var s, i = 1, n = arguments.length; i < n; i++) {
21625 s = arguments[i];
21626 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21627 t[p] = s[p];
21628 }
21629 return t;
21630 };
21631 return __assign$3V.apply(this, arguments);
21632 };
21633 var CallReceivedFontIcon = React.forwardRef(function CallReceivedFontIcon(props, ref) {
21634 return (React__default.createElement(FontIcon, __assign$3V({}, props, { ref: ref }), "call_received"));
21635 });
21636
21637 var __assign$3W = (undefined && undefined.__assign) || function () {
21638 __assign$3W = Object.assign || function(t) {
21639 for (var s, i = 1, n = arguments.length; i < n; i++) {
21640 s = arguments[i];
21641 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21642 t[p] = s[p];
21643 }
21644 return t;
21645 };
21646 return __assign$3W.apply(this, arguments);
21647 };
21648 var CallSplitFontIcon = React.forwardRef(function CallSplitFontIcon(props, ref) {
21649 return (React__default.createElement(FontIcon, __assign$3W({}, props, { ref: ref }), "call_split"));
21650 });
21651
21652 var __assign$3X = (undefined && undefined.__assign) || function () {
21653 __assign$3X = Object.assign || function(t) {
21654 for (var s, i = 1, n = arguments.length; i < n; i++) {
21655 s = arguments[i];
21656 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21657 t[p] = s[p];
21658 }
21659 return t;
21660 };
21661 return __assign$3X.apply(this, arguments);
21662 };
21663 var CallToActionFontIcon = React.forwardRef(function CallToActionFontIcon(props, ref) {
21664 return (React__default.createElement(FontIcon, __assign$3X({}, props, { ref: ref }), "call_to_action"));
21665 });
21666
21667 var __assign$3Y = (undefined && undefined.__assign) || function () {
21668 __assign$3Y = Object.assign || function(t) {
21669 for (var s, i = 1, n = arguments.length; i < n; i++) {
21670 s = arguments[i];
21671 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21672 t[p] = s[p];
21673 }
21674 return t;
21675 };
21676 return __assign$3Y.apply(this, arguments);
21677 };
21678 var CallFontIcon = React.forwardRef(function CallFontIcon(props, ref) {
21679 return (React__default.createElement(FontIcon, __assign$3Y({}, props, { ref: ref }), "call"));
21680 });
21681
21682 var __assign$3Z = (undefined && undefined.__assign) || function () {
21683 __assign$3Z = Object.assign || function(t) {
21684 for (var s, i = 1, n = arguments.length; i < n; i++) {
21685 s = arguments[i];
21686 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21687 t[p] = s[p];
21688 }
21689 return t;
21690 };
21691 return __assign$3Z.apply(this, arguments);
21692 };
21693 var CameraAltFontIcon = React.forwardRef(function CameraAltFontIcon(props, ref) {
21694 return (React__default.createElement(FontIcon, __assign$3Z({}, props, { ref: ref }), "camera_alt"));
21695 });
21696
21697 var __assign$3_ = (undefined && undefined.__assign) || function () {
21698 __assign$3_ = Object.assign || function(t) {
21699 for (var s, i = 1, n = arguments.length; i < n; i++) {
21700 s = arguments[i];
21701 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21702 t[p] = s[p];
21703 }
21704 return t;
21705 };
21706 return __assign$3_.apply(this, arguments);
21707 };
21708 var CameraEnhanceFontIcon = React.forwardRef(function CameraEnhanceFontIcon(props, ref) {
21709 return (React__default.createElement(FontIcon, __assign$3_({}, props, { ref: ref }), "camera_enhance"));
21710 });
21711
21712 var __assign$3$ = (undefined && undefined.__assign) || function () {
21713 __assign$3$ = Object.assign || function(t) {
21714 for (var s, i = 1, n = arguments.length; i < n; i++) {
21715 s = arguments[i];
21716 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21717 t[p] = s[p];
21718 }
21719 return t;
21720 };
21721 return __assign$3$.apply(this, arguments);
21722 };
21723 var CameraFrontFontIcon = React.forwardRef(function CameraFrontFontIcon(props, ref) {
21724 return (React__default.createElement(FontIcon, __assign$3$({}, props, { ref: ref }), "camera_front"));
21725 });
21726
21727 var __assign$40 = (undefined && undefined.__assign) || function () {
21728 __assign$40 = Object.assign || function(t) {
21729 for (var s, i = 1, n = arguments.length; i < n; i++) {
21730 s = arguments[i];
21731 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21732 t[p] = s[p];
21733 }
21734 return t;
21735 };
21736 return __assign$40.apply(this, arguments);
21737 };
21738 var CameraRearFontIcon = React.forwardRef(function CameraRearFontIcon(props, ref) {
21739 return (React__default.createElement(FontIcon, __assign$40({}, props, { ref: ref }), "camera_rear"));
21740 });
21741
21742 var __assign$41 = (undefined && undefined.__assign) || function () {
21743 __assign$41 = Object.assign || function(t) {
21744 for (var s, i = 1, n = arguments.length; i < n; i++) {
21745 s = arguments[i];
21746 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21747 t[p] = s[p];
21748 }
21749 return t;
21750 };
21751 return __assign$41.apply(this, arguments);
21752 };
21753 var CameraRollFontIcon = React.forwardRef(function CameraRollFontIcon(props, ref) {
21754 return (React__default.createElement(FontIcon, __assign$41({}, props, { ref: ref }), "camera_roll"));
21755 });
21756
21757 var __assign$42 = (undefined && undefined.__assign) || function () {
21758 __assign$42 = Object.assign || function(t) {
21759 for (var s, i = 1, n = arguments.length; i < n; i++) {
21760 s = arguments[i];
21761 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21762 t[p] = s[p];
21763 }
21764 return t;
21765 };
21766 return __assign$42.apply(this, arguments);
21767 };
21768 var CameraFontIcon = React.forwardRef(function CameraFontIcon(props, ref) {
21769 return (React__default.createElement(FontIcon, __assign$42({}, props, { ref: ref }), "camera"));
21770 });
21771
21772 var __assign$43 = (undefined && undefined.__assign) || function () {
21773 __assign$43 = Object.assign || function(t) {
21774 for (var s, i = 1, n = arguments.length; i < n; i++) {
21775 s = arguments[i];
21776 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21777 t[p] = s[p];
21778 }
21779 return t;
21780 };
21781 return __assign$43.apply(this, arguments);
21782 };
21783 var CancelFontIcon = React.forwardRef(function CancelFontIcon(props, ref) {
21784 return (React__default.createElement(FontIcon, __assign$43({}, props, { ref: ref }), "cancel"));
21785 });
21786
21787 var __assign$44 = (undefined && undefined.__assign) || function () {
21788 __assign$44 = Object.assign || function(t) {
21789 for (var s, i = 1, n = arguments.length; i < n; i++) {
21790 s = arguments[i];
21791 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21792 t[p] = s[p];
21793 }
21794 return t;
21795 };
21796 return __assign$44.apply(this, arguments);
21797 };
21798 var CardGiftcardFontIcon = React.forwardRef(function CardGiftcardFontIcon(props, ref) {
21799 return (React__default.createElement(FontIcon, __assign$44({}, props, { ref: ref }), "card_giftcard"));
21800 });
21801
21802 var __assign$45 = (undefined && undefined.__assign) || function () {
21803 __assign$45 = Object.assign || function(t) {
21804 for (var s, i = 1, n = arguments.length; i < n; i++) {
21805 s = arguments[i];
21806 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21807 t[p] = s[p];
21808 }
21809 return t;
21810 };
21811 return __assign$45.apply(this, arguments);
21812 };
21813 var CardMembershipFontIcon = React.forwardRef(function CardMembershipFontIcon(props, ref) {
21814 return (React__default.createElement(FontIcon, __assign$45({}, props, { ref: ref }), "card_membership"));
21815 });
21816
21817 var __assign$46 = (undefined && undefined.__assign) || function () {
21818 __assign$46 = Object.assign || function(t) {
21819 for (var s, i = 1, n = arguments.length; i < n; i++) {
21820 s = arguments[i];
21821 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21822 t[p] = s[p];
21823 }
21824 return t;
21825 };
21826 return __assign$46.apply(this, arguments);
21827 };
21828 var CardTravelFontIcon = React.forwardRef(function CardTravelFontIcon(props, ref) {
21829 return (React__default.createElement(FontIcon, __assign$46({}, props, { ref: ref }), "card_travel"));
21830 });
21831
21832 var __assign$47 = (undefined && undefined.__assign) || function () {
21833 __assign$47 = Object.assign || function(t) {
21834 for (var s, i = 1, n = arguments.length; i < n; i++) {
21835 s = arguments[i];
21836 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21837 t[p] = s[p];
21838 }
21839 return t;
21840 };
21841 return __assign$47.apply(this, arguments);
21842 };
21843 var CasinoFontIcon = React.forwardRef(function CasinoFontIcon(props, ref) {
21844 return (React__default.createElement(FontIcon, __assign$47({}, props, { ref: ref }), "casino"));
21845 });
21846
21847 var __assign$48 = (undefined && undefined.__assign) || function () {
21848 __assign$48 = Object.assign || function(t) {
21849 for (var s, i = 1, n = arguments.length; i < n; i++) {
21850 s = arguments[i];
21851 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21852 t[p] = s[p];
21853 }
21854 return t;
21855 };
21856 return __assign$48.apply(this, arguments);
21857 };
21858 var CastConnectedFontIcon = React.forwardRef(function CastConnectedFontIcon(props, ref) {
21859 return (React__default.createElement(FontIcon, __assign$48({}, props, { ref: ref }), "cast_connected"));
21860 });
21861
21862 var __assign$49 = (undefined && undefined.__assign) || function () {
21863 __assign$49 = Object.assign || function(t) {
21864 for (var s, i = 1, n = arguments.length; i < n; i++) {
21865 s = arguments[i];
21866 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21867 t[p] = s[p];
21868 }
21869 return t;
21870 };
21871 return __assign$49.apply(this, arguments);
21872 };
21873 var CastFontIcon = React.forwardRef(function CastFontIcon(props, ref) {
21874 return (React__default.createElement(FontIcon, __assign$49({}, props, { ref: ref }), "cast"));
21875 });
21876
21877 var __assign$4a = (undefined && undefined.__assign) || function () {
21878 __assign$4a = Object.assign || function(t) {
21879 for (var s, i = 1, n = arguments.length; i < n; i++) {
21880 s = arguments[i];
21881 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21882 t[p] = s[p];
21883 }
21884 return t;
21885 };
21886 return __assign$4a.apply(this, arguments);
21887 };
21888 var CenterFocusStrongFontIcon = React.forwardRef(function CenterFocusStrongFontIcon(props, ref) {
21889 return (React__default.createElement(FontIcon, __assign$4a({}, props, { ref: ref }), "center_focus_strong"));
21890 });
21891
21892 var __assign$4b = (undefined && undefined.__assign) || function () {
21893 __assign$4b = Object.assign || function(t) {
21894 for (var s, i = 1, n = arguments.length; i < n; i++) {
21895 s = arguments[i];
21896 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21897 t[p] = s[p];
21898 }
21899 return t;
21900 };
21901 return __assign$4b.apply(this, arguments);
21902 };
21903 var CenterFocusWeakFontIcon = React.forwardRef(function CenterFocusWeakFontIcon(props, ref) {
21904 return (React__default.createElement(FontIcon, __assign$4b({}, props, { ref: ref }), "center_focus_weak"));
21905 });
21906
21907 var __assign$4c = (undefined && undefined.__assign) || function () {
21908 __assign$4c = Object.assign || function(t) {
21909 for (var s, i = 1, n = arguments.length; i < n; i++) {
21910 s = arguments[i];
21911 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21912 t[p] = s[p];
21913 }
21914 return t;
21915 };
21916 return __assign$4c.apply(this, arguments);
21917 };
21918 var ChangeHistoryFontIcon = React.forwardRef(function ChangeHistoryFontIcon(props, ref) {
21919 return (React__default.createElement(FontIcon, __assign$4c({}, props, { ref: ref }), "change_history"));
21920 });
21921
21922 var __assign$4d = (undefined && undefined.__assign) || function () {
21923 __assign$4d = Object.assign || function(t) {
21924 for (var s, i = 1, n = arguments.length; i < n; i++) {
21925 s = arguments[i];
21926 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21927 t[p] = s[p];
21928 }
21929 return t;
21930 };
21931 return __assign$4d.apply(this, arguments);
21932 };
21933 var ChatBubbleOutlineFontIcon = React.forwardRef(function ChatBubbleOutlineFontIcon(props, ref) {
21934 return (React__default.createElement(FontIcon, __assign$4d({}, props, { ref: ref }), "chat_bubble_outline"));
21935 });
21936
21937 var __assign$4e = (undefined && undefined.__assign) || function () {
21938 __assign$4e = Object.assign || function(t) {
21939 for (var s, i = 1, n = arguments.length; i < n; i++) {
21940 s = arguments[i];
21941 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21942 t[p] = s[p];
21943 }
21944 return t;
21945 };
21946 return __assign$4e.apply(this, arguments);
21947 };
21948 var ChatBubbleFontIcon = React.forwardRef(function ChatBubbleFontIcon(props, ref) {
21949 return (React__default.createElement(FontIcon, __assign$4e({}, props, { ref: ref }), "chat_bubble"));
21950 });
21951
21952 var __assign$4f = (undefined && undefined.__assign) || function () {
21953 __assign$4f = Object.assign || function(t) {
21954 for (var s, i = 1, n = arguments.length; i < n; i++) {
21955 s = arguments[i];
21956 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21957 t[p] = s[p];
21958 }
21959 return t;
21960 };
21961 return __assign$4f.apply(this, arguments);
21962 };
21963 var ChatFontIcon = React.forwardRef(function ChatFontIcon(props, ref) {
21964 return (React__default.createElement(FontIcon, __assign$4f({}, props, { ref: ref }), "chat"));
21965 });
21966
21967 var __assign$4g = (undefined && undefined.__assign) || function () {
21968 __assign$4g = Object.assign || function(t) {
21969 for (var s, i = 1, n = arguments.length; i < n; i++) {
21970 s = arguments[i];
21971 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21972 t[p] = s[p];
21973 }
21974 return t;
21975 };
21976 return __assign$4g.apply(this, arguments);
21977 };
21978 var CheckBoxOutlineBlankFontIcon = React.forwardRef(function CheckBoxOutlineBlankFontIcon(props, ref) {
21979 return (React__default.createElement(FontIcon, __assign$4g({}, props, { ref: ref }), "check_box_outline_blank"));
21980 });
21981
21982 var __assign$4h = (undefined && undefined.__assign) || function () {
21983 __assign$4h = Object.assign || function(t) {
21984 for (var s, i = 1, n = arguments.length; i < n; i++) {
21985 s = arguments[i];
21986 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21987 t[p] = s[p];
21988 }
21989 return t;
21990 };
21991 return __assign$4h.apply(this, arguments);
21992 };
21993 var CheckBoxFontIcon = React.forwardRef(function CheckBoxFontIcon(props, ref) {
21994 return (React__default.createElement(FontIcon, __assign$4h({}, props, { ref: ref }), "check_box"));
21995 });
21996
21997 var __assign$4i = (undefined && undefined.__assign) || function () {
21998 __assign$4i = Object.assign || function(t) {
21999 for (var s, i = 1, n = arguments.length; i < n; i++) {
22000 s = arguments[i];
22001 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22002 t[p] = s[p];
22003 }
22004 return t;
22005 };
22006 return __assign$4i.apply(this, arguments);
22007 };
22008 var CheckCircleFontIcon = React.forwardRef(function CheckCircleFontIcon(props, ref) {
22009 return (React__default.createElement(FontIcon, __assign$4i({}, props, { ref: ref }), "check_circle"));
22010 });
22011
22012 var __assign$4j = (undefined && undefined.__assign) || function () {
22013 __assign$4j = Object.assign || function(t) {
22014 for (var s, i = 1, n = arguments.length; i < n; i++) {
22015 s = arguments[i];
22016 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22017 t[p] = s[p];
22018 }
22019 return t;
22020 };
22021 return __assign$4j.apply(this, arguments);
22022 };
22023 var CheckFontIcon = React.forwardRef(function CheckFontIcon(props, ref) {
22024 return (React__default.createElement(FontIcon, __assign$4j({}, props, { ref: ref }), "check"));
22025 });
22026
22027 var __assign$4k = (undefined && undefined.__assign) || function () {
22028 __assign$4k = Object.assign || function(t) {
22029 for (var s, i = 1, n = arguments.length; i < n; i++) {
22030 s = arguments[i];
22031 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22032 t[p] = s[p];
22033 }
22034 return t;
22035 };
22036 return __assign$4k.apply(this, arguments);
22037 };
22038 var ChevronLeftFontIcon = React.forwardRef(function ChevronLeftFontIcon(props, ref) {
22039 return (React__default.createElement(FontIcon, __assign$4k({}, props, { ref: ref }), "chevron_left"));
22040 });
22041
22042 var __assign$4l = (undefined && undefined.__assign) || function () {
22043 __assign$4l = Object.assign || function(t) {
22044 for (var s, i = 1, n = arguments.length; i < n; i++) {
22045 s = arguments[i];
22046 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22047 t[p] = s[p];
22048 }
22049 return t;
22050 };
22051 return __assign$4l.apply(this, arguments);
22052 };
22053 var ChevronRightFontIcon = React.forwardRef(function ChevronRightFontIcon(props, ref) {
22054 return (React__default.createElement(FontIcon, __assign$4l({}, props, { ref: ref }), "chevron_right"));
22055 });
22056
22057 var __assign$4m = (undefined && undefined.__assign) || function () {
22058 __assign$4m = Object.assign || function(t) {
22059 for (var s, i = 1, n = arguments.length; i < n; i++) {
22060 s = arguments[i];
22061 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22062 t[p] = s[p];
22063 }
22064 return t;
22065 };
22066 return __assign$4m.apply(this, arguments);
22067 };
22068 var ChildCareFontIcon = React.forwardRef(function ChildCareFontIcon(props, ref) {
22069 return (React__default.createElement(FontIcon, __assign$4m({}, props, { ref: ref }), "child_care"));
22070 });
22071
22072 var __assign$4n = (undefined && undefined.__assign) || function () {
22073 __assign$4n = Object.assign || function(t) {
22074 for (var s, i = 1, n = arguments.length; i < n; i++) {
22075 s = arguments[i];
22076 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22077 t[p] = s[p];
22078 }
22079 return t;
22080 };
22081 return __assign$4n.apply(this, arguments);
22082 };
22083 var ChildFriendlyFontIcon = React.forwardRef(function ChildFriendlyFontIcon(props, ref) {
22084 return (React__default.createElement(FontIcon, __assign$4n({}, props, { ref: ref }), "child_friendly"));
22085 });
22086
22087 var __assign$4o = (undefined && undefined.__assign) || function () {
22088 __assign$4o = Object.assign || function(t) {
22089 for (var s, i = 1, n = arguments.length; i < n; i++) {
22090 s = arguments[i];
22091 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22092 t[p] = s[p];
22093 }
22094 return t;
22095 };
22096 return __assign$4o.apply(this, arguments);
22097 };
22098 var ChromeReaderModeFontIcon = React.forwardRef(function ChromeReaderModeFontIcon(props, ref) {
22099 return (React__default.createElement(FontIcon, __assign$4o({}, props, { ref: ref }), "chrome_reader_mode"));
22100 });
22101
22102 var __assign$4p = (undefined && undefined.__assign) || function () {
22103 __assign$4p = Object.assign || function(t) {
22104 for (var s, i = 1, n = arguments.length; i < n; i++) {
22105 s = arguments[i];
22106 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22107 t[p] = s[p];
22108 }
22109 return t;
22110 };
22111 return __assign$4p.apply(this, arguments);
22112 };
22113 var ClassFontIcon = React.forwardRef(function ClassFontIcon(props, ref) {
22114 return (React__default.createElement(FontIcon, __assign$4p({}, props, { ref: ref }), "class"));
22115 });
22116
22117 var __assign$4q = (undefined && undefined.__assign) || function () {
22118 __assign$4q = Object.assign || function(t) {
22119 for (var s, i = 1, n = arguments.length; i < n; i++) {
22120 s = arguments[i];
22121 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22122 t[p] = s[p];
22123 }
22124 return t;
22125 };
22126 return __assign$4q.apply(this, arguments);
22127 };
22128 var ClearAllFontIcon = React.forwardRef(function ClearAllFontIcon(props, ref) {
22129 return (React__default.createElement(FontIcon, __assign$4q({}, props, { ref: ref }), "clear_all"));
22130 });
22131
22132 var __assign$4r = (undefined && undefined.__assign) || function () {
22133 __assign$4r = Object.assign || function(t) {
22134 for (var s, i = 1, n = arguments.length; i < n; i++) {
22135 s = arguments[i];
22136 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22137 t[p] = s[p];
22138 }
22139 return t;
22140 };
22141 return __assign$4r.apply(this, arguments);
22142 };
22143 var ClearFontIcon = React.forwardRef(function ClearFontIcon(props, ref) {
22144 return (React__default.createElement(FontIcon, __assign$4r({}, props, { ref: ref }), "clear"));
22145 });
22146
22147 var __assign$4s = (undefined && undefined.__assign) || function () {
22148 __assign$4s = Object.assign || function(t) {
22149 for (var s, i = 1, n = arguments.length; i < n; i++) {
22150 s = arguments[i];
22151 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22152 t[p] = s[p];
22153 }
22154 return t;
22155 };
22156 return __assign$4s.apply(this, arguments);
22157 };
22158 var CloseFontIcon = React.forwardRef(function CloseFontIcon(props, ref) {
22159 return (React__default.createElement(FontIcon, __assign$4s({}, props, { ref: ref }), "close"));
22160 });
22161
22162 var __assign$4t = (undefined && undefined.__assign) || function () {
22163 __assign$4t = Object.assign || function(t) {
22164 for (var s, i = 1, n = arguments.length; i < n; i++) {
22165 s = arguments[i];
22166 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22167 t[p] = s[p];
22168 }
22169 return t;
22170 };
22171 return __assign$4t.apply(this, arguments);
22172 };
22173 var ClosedCaptionFontIcon = React.forwardRef(function ClosedCaptionFontIcon(props, ref) {
22174 return (React__default.createElement(FontIcon, __assign$4t({}, props, { ref: ref }), "closed_caption"));
22175 });
22176
22177 var __assign$4u = (undefined && undefined.__assign) || function () {
22178 __assign$4u = Object.assign || function(t) {
22179 for (var s, i = 1, n = arguments.length; i < n; i++) {
22180 s = arguments[i];
22181 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22182 t[p] = s[p];
22183 }
22184 return t;
22185 };
22186 return __assign$4u.apply(this, arguments);
22187 };
22188 var CloudCircleFontIcon = React.forwardRef(function CloudCircleFontIcon(props, ref) {
22189 return (React__default.createElement(FontIcon, __assign$4u({}, props, { ref: ref }), "cloud_circle"));
22190 });
22191
22192 var __assign$4v = (undefined && undefined.__assign) || function () {
22193 __assign$4v = Object.assign || function(t) {
22194 for (var s, i = 1, n = arguments.length; i < n; i++) {
22195 s = arguments[i];
22196 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22197 t[p] = s[p];
22198 }
22199 return t;
22200 };
22201 return __assign$4v.apply(this, arguments);
22202 };
22203 var CloudDoneFontIcon = React.forwardRef(function CloudDoneFontIcon(props, ref) {
22204 return (React__default.createElement(FontIcon, __assign$4v({}, props, { ref: ref }), "cloud_done"));
22205 });
22206
22207 var __assign$4w = (undefined && undefined.__assign) || function () {
22208 __assign$4w = Object.assign || function(t) {
22209 for (var s, i = 1, n = arguments.length; i < n; i++) {
22210 s = arguments[i];
22211 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22212 t[p] = s[p];
22213 }
22214 return t;
22215 };
22216 return __assign$4w.apply(this, arguments);
22217 };
22218 var CloudDownloadFontIcon = React.forwardRef(function CloudDownloadFontIcon(props, ref) {
22219 return (React__default.createElement(FontIcon, __assign$4w({}, props, { ref: ref }), "cloud_download"));
22220 });
22221
22222 var __assign$4x = (undefined && undefined.__assign) || function () {
22223 __assign$4x = Object.assign || function(t) {
22224 for (var s, i = 1, n = arguments.length; i < n; i++) {
22225 s = arguments[i];
22226 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22227 t[p] = s[p];
22228 }
22229 return t;
22230 };
22231 return __assign$4x.apply(this, arguments);
22232 };
22233 var CloudOffFontIcon = React.forwardRef(function CloudOffFontIcon(props, ref) {
22234 return (React__default.createElement(FontIcon, __assign$4x({}, props, { ref: ref }), "cloud_off"));
22235 });
22236
22237 var __assign$4y = (undefined && undefined.__assign) || function () {
22238 __assign$4y = Object.assign || function(t) {
22239 for (var s, i = 1, n = arguments.length; i < n; i++) {
22240 s = arguments[i];
22241 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22242 t[p] = s[p];
22243 }
22244 return t;
22245 };
22246 return __assign$4y.apply(this, arguments);
22247 };
22248 var CloudQueueFontIcon = React.forwardRef(function CloudQueueFontIcon(props, ref) {
22249 return (React__default.createElement(FontIcon, __assign$4y({}, props, { ref: ref }), "cloud_queue"));
22250 });
22251
22252 var __assign$4z = (undefined && undefined.__assign) || function () {
22253 __assign$4z = Object.assign || function(t) {
22254 for (var s, i = 1, n = arguments.length; i < n; i++) {
22255 s = arguments[i];
22256 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22257 t[p] = s[p];
22258 }
22259 return t;
22260 };
22261 return __assign$4z.apply(this, arguments);
22262 };
22263 var CloudUploadFontIcon = React.forwardRef(function CloudUploadFontIcon(props, ref) {
22264 return (React__default.createElement(FontIcon, __assign$4z({}, props, { ref: ref }), "cloud_upload"));
22265 });
22266
22267 var __assign$4A = (undefined && undefined.__assign) || function () {
22268 __assign$4A = Object.assign || function(t) {
22269 for (var s, i = 1, n = arguments.length; i < n; i++) {
22270 s = arguments[i];
22271 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22272 t[p] = s[p];
22273 }
22274 return t;
22275 };
22276 return __assign$4A.apply(this, arguments);
22277 };
22278 var CloudFontIcon = React.forwardRef(function CloudFontIcon(props, ref) {
22279 return (React__default.createElement(FontIcon, __assign$4A({}, props, { ref: ref }), "cloud"));
22280 });
22281
22282 var __assign$4B = (undefined && undefined.__assign) || function () {
22283 __assign$4B = Object.assign || function(t) {
22284 for (var s, i = 1, n = arguments.length; i < n; i++) {
22285 s = arguments[i];
22286 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22287 t[p] = s[p];
22288 }
22289 return t;
22290 };
22291 return __assign$4B.apply(this, arguments);
22292 };
22293 var CodeFontIcon = React.forwardRef(function CodeFontIcon(props, ref) {
22294 return (React__default.createElement(FontIcon, __assign$4B({}, props, { ref: ref }), "code"));
22295 });
22296
22297 var __assign$4C = (undefined && undefined.__assign) || function () {
22298 __assign$4C = Object.assign || function(t) {
22299 for (var s, i = 1, n = arguments.length; i < n; i++) {
22300 s = arguments[i];
22301 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22302 t[p] = s[p];
22303 }
22304 return t;
22305 };
22306 return __assign$4C.apply(this, arguments);
22307 };
22308 var CollectionsBookmarkFontIcon = React.forwardRef(function CollectionsBookmarkFontIcon(props, ref) {
22309 return (React__default.createElement(FontIcon, __assign$4C({}, props, { ref: ref }), "collections_bookmark"));
22310 });
22311
22312 var __assign$4D = (undefined && undefined.__assign) || function () {
22313 __assign$4D = Object.assign || function(t) {
22314 for (var s, i = 1, n = arguments.length; i < n; i++) {
22315 s = arguments[i];
22316 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22317 t[p] = s[p];
22318 }
22319 return t;
22320 };
22321 return __assign$4D.apply(this, arguments);
22322 };
22323 var CollectionsFontIcon = React.forwardRef(function CollectionsFontIcon(props, ref) {
22324 return (React__default.createElement(FontIcon, __assign$4D({}, props, { ref: ref }), "collections"));
22325 });
22326
22327 var __assign$4E = (undefined && undefined.__assign) || function () {
22328 __assign$4E = Object.assign || function(t) {
22329 for (var s, i = 1, n = arguments.length; i < n; i++) {
22330 s = arguments[i];
22331 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22332 t[p] = s[p];
22333 }
22334 return t;
22335 };
22336 return __assign$4E.apply(this, arguments);
22337 };
22338 var ColorLensFontIcon = React.forwardRef(function ColorLensFontIcon(props, ref) {
22339 return (React__default.createElement(FontIcon, __assign$4E({}, props, { ref: ref }), "color_lens"));
22340 });
22341
22342 var __assign$4F = (undefined && undefined.__assign) || function () {
22343 __assign$4F = Object.assign || function(t) {
22344 for (var s, i = 1, n = arguments.length; i < n; i++) {
22345 s = arguments[i];
22346 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22347 t[p] = s[p];
22348 }
22349 return t;
22350 };
22351 return __assign$4F.apply(this, arguments);
22352 };
22353 var ColorizeFontIcon = React.forwardRef(function ColorizeFontIcon(props, ref) {
22354 return (React__default.createElement(FontIcon, __assign$4F({}, props, { ref: ref }), "colorize"));
22355 });
22356
22357 var __assign$4G = (undefined && undefined.__assign) || function () {
22358 __assign$4G = Object.assign || function(t) {
22359 for (var s, i = 1, n = arguments.length; i < n; i++) {
22360 s = arguments[i];
22361 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22362 t[p] = s[p];
22363 }
22364 return t;
22365 };
22366 return __assign$4G.apply(this, arguments);
22367 };
22368 var CommentFontIcon = React.forwardRef(function CommentFontIcon(props, ref) {
22369 return (React__default.createElement(FontIcon, __assign$4G({}, props, { ref: ref }), "comment"));
22370 });
22371
22372 var __assign$4H = (undefined && undefined.__assign) || function () {
22373 __assign$4H = Object.assign || function(t) {
22374 for (var s, i = 1, n = arguments.length; i < n; i++) {
22375 s = arguments[i];
22376 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22377 t[p] = s[p];
22378 }
22379 return t;
22380 };
22381 return __assign$4H.apply(this, arguments);
22382 };
22383 var CompareArrowsFontIcon = React.forwardRef(function CompareArrowsFontIcon(props, ref) {
22384 return (React__default.createElement(FontIcon, __assign$4H({}, props, { ref: ref }), "compare_arrows"));
22385 });
22386
22387 var __assign$4I = (undefined && undefined.__assign) || function () {
22388 __assign$4I = Object.assign || function(t) {
22389 for (var s, i = 1, n = arguments.length; i < n; i++) {
22390 s = arguments[i];
22391 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22392 t[p] = s[p];
22393 }
22394 return t;
22395 };
22396 return __assign$4I.apply(this, arguments);
22397 };
22398 var CompareFontIcon = React.forwardRef(function CompareFontIcon(props, ref) {
22399 return (React__default.createElement(FontIcon, __assign$4I({}, props, { ref: ref }), "compare"));
22400 });
22401
22402 var __assign$4J = (undefined && undefined.__assign) || function () {
22403 __assign$4J = Object.assign || function(t) {
22404 for (var s, i = 1, n = arguments.length; i < n; i++) {
22405 s = arguments[i];
22406 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22407 t[p] = s[p];
22408 }
22409 return t;
22410 };
22411 return __assign$4J.apply(this, arguments);
22412 };
22413 var ComputerFontIcon = React.forwardRef(function ComputerFontIcon(props, ref) {
22414 return (React__default.createElement(FontIcon, __assign$4J({}, props, { ref: ref }), "computer"));
22415 });
22416
22417 var __assign$4K = (undefined && undefined.__assign) || function () {
22418 __assign$4K = Object.assign || function(t) {
22419 for (var s, i = 1, n = arguments.length; i < n; i++) {
22420 s = arguments[i];
22421 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22422 t[p] = s[p];
22423 }
22424 return t;
22425 };
22426 return __assign$4K.apply(this, arguments);
22427 };
22428 var ConfirmationNumberFontIcon = React.forwardRef(function ConfirmationNumberFontIcon(props, ref) {
22429 return (React__default.createElement(FontIcon, __assign$4K({}, props, { ref: ref }), "confirmation_number"));
22430 });
22431
22432 var __assign$4L = (undefined && undefined.__assign) || function () {
22433 __assign$4L = Object.assign || function(t) {
22434 for (var s, i = 1, n = arguments.length; i < n; i++) {
22435 s = arguments[i];
22436 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22437 t[p] = s[p];
22438 }
22439 return t;
22440 };
22441 return __assign$4L.apply(this, arguments);
22442 };
22443 var ContactMailFontIcon = React.forwardRef(function ContactMailFontIcon(props, ref) {
22444 return (React__default.createElement(FontIcon, __assign$4L({}, props, { ref: ref }), "contact_mail"));
22445 });
22446
22447 var __assign$4M = (undefined && undefined.__assign) || function () {
22448 __assign$4M = Object.assign || function(t) {
22449 for (var s, i = 1, n = arguments.length; i < n; i++) {
22450 s = arguments[i];
22451 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22452 t[p] = s[p];
22453 }
22454 return t;
22455 };
22456 return __assign$4M.apply(this, arguments);
22457 };
22458 var ContactPhoneFontIcon = React.forwardRef(function ContactPhoneFontIcon(props, ref) {
22459 return (React__default.createElement(FontIcon, __assign$4M({}, props, { ref: ref }), "contact_phone"));
22460 });
22461
22462 var __assign$4N = (undefined && undefined.__assign) || function () {
22463 __assign$4N = Object.assign || function(t) {
22464 for (var s, i = 1, n = arguments.length; i < n; i++) {
22465 s = arguments[i];
22466 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22467 t[p] = s[p];
22468 }
22469 return t;
22470 };
22471 return __assign$4N.apply(this, arguments);
22472 };
22473 var ContactsFontIcon = React.forwardRef(function ContactsFontIcon(props, ref) {
22474 return (React__default.createElement(FontIcon, __assign$4N({}, props, { ref: ref }), "contacts"));
22475 });
22476
22477 var __assign$4O = (undefined && undefined.__assign) || function () {
22478 __assign$4O = Object.assign || function(t) {
22479 for (var s, i = 1, n = arguments.length; i < n; i++) {
22480 s = arguments[i];
22481 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22482 t[p] = s[p];
22483 }
22484 return t;
22485 };
22486 return __assign$4O.apply(this, arguments);
22487 };
22488 var ContentCopyFontIcon = React.forwardRef(function ContentCopyFontIcon(props, ref) {
22489 return (React__default.createElement(FontIcon, __assign$4O({}, props, { ref: ref }), "content_copy"));
22490 });
22491
22492 var __assign$4P = (undefined && undefined.__assign) || function () {
22493 __assign$4P = Object.assign || function(t) {
22494 for (var s, i = 1, n = arguments.length; i < n; i++) {
22495 s = arguments[i];
22496 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22497 t[p] = s[p];
22498 }
22499 return t;
22500 };
22501 return __assign$4P.apply(this, arguments);
22502 };
22503 var ContentCutFontIcon = React.forwardRef(function ContentCutFontIcon(props, ref) {
22504 return (React__default.createElement(FontIcon, __assign$4P({}, props, { ref: ref }), "content_cut"));
22505 });
22506
22507 var __assign$4Q = (undefined && undefined.__assign) || function () {
22508 __assign$4Q = Object.assign || function(t) {
22509 for (var s, i = 1, n = arguments.length; i < n; i++) {
22510 s = arguments[i];
22511 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22512 t[p] = s[p];
22513 }
22514 return t;
22515 };
22516 return __assign$4Q.apply(this, arguments);
22517 };
22518 var ContentPasteFontIcon = React.forwardRef(function ContentPasteFontIcon(props, ref) {
22519 return (React__default.createElement(FontIcon, __assign$4Q({}, props, { ref: ref }), "content_paste"));
22520 });
22521
22522 var __assign$4R = (undefined && undefined.__assign) || function () {
22523 __assign$4R = Object.assign || function(t) {
22524 for (var s, i = 1, n = arguments.length; i < n; i++) {
22525 s = arguments[i];
22526 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22527 t[p] = s[p];
22528 }
22529 return t;
22530 };
22531 return __assign$4R.apply(this, arguments);
22532 };
22533 var ControlPointDuplicateFontIcon = React.forwardRef(function ControlPointDuplicateFontIcon(props, ref) {
22534 return (React__default.createElement(FontIcon, __assign$4R({}, props, { ref: ref }), "control_point_duplicate"));
22535 });
22536
22537 var __assign$4S = (undefined && undefined.__assign) || function () {
22538 __assign$4S = Object.assign || function(t) {
22539 for (var s, i = 1, n = arguments.length; i < n; i++) {
22540 s = arguments[i];
22541 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22542 t[p] = s[p];
22543 }
22544 return t;
22545 };
22546 return __assign$4S.apply(this, arguments);
22547 };
22548 var ControlPointFontIcon = React.forwardRef(function ControlPointFontIcon(props, ref) {
22549 return (React__default.createElement(FontIcon, __assign$4S({}, props, { ref: ref }), "control_point"));
22550 });
22551
22552 var __assign$4T = (undefined && undefined.__assign) || function () {
22553 __assign$4T = Object.assign || function(t) {
22554 for (var s, i = 1, n = arguments.length; i < n; i++) {
22555 s = arguments[i];
22556 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22557 t[p] = s[p];
22558 }
22559 return t;
22560 };
22561 return __assign$4T.apply(this, arguments);
22562 };
22563 var CopyrightFontIcon = React.forwardRef(function CopyrightFontIcon(props, ref) {
22564 return (React__default.createElement(FontIcon, __assign$4T({}, props, { ref: ref }), "copyright"));
22565 });
22566
22567 var __assign$4U = (undefined && undefined.__assign) || function () {
22568 __assign$4U = Object.assign || function(t) {
22569 for (var s, i = 1, n = arguments.length; i < n; i++) {
22570 s = arguments[i];
22571 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22572 t[p] = s[p];
22573 }
22574 return t;
22575 };
22576 return __assign$4U.apply(this, arguments);
22577 };
22578 var CreateNewFolderFontIcon = React.forwardRef(function CreateNewFolderFontIcon(props, ref) {
22579 return (React__default.createElement(FontIcon, __assign$4U({}, props, { ref: ref }), "create_new_folder"));
22580 });
22581
22582 var __assign$4V = (undefined && undefined.__assign) || function () {
22583 __assign$4V = Object.assign || function(t) {
22584 for (var s, i = 1, n = arguments.length; i < n; i++) {
22585 s = arguments[i];
22586 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22587 t[p] = s[p];
22588 }
22589 return t;
22590 };
22591 return __assign$4V.apply(this, arguments);
22592 };
22593 var CreateFontIcon = React.forwardRef(function CreateFontIcon(props, ref) {
22594 return (React__default.createElement(FontIcon, __assign$4V({}, props, { ref: ref }), "create"));
22595 });
22596
22597 var __assign$4W = (undefined && undefined.__assign) || function () {
22598 __assign$4W = Object.assign || function(t) {
22599 for (var s, i = 1, n = arguments.length; i < n; i++) {
22600 s = arguments[i];
22601 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22602 t[p] = s[p];
22603 }
22604 return t;
22605 };
22606 return __assign$4W.apply(this, arguments);
22607 };
22608 var CreditCardFontIcon = React.forwardRef(function CreditCardFontIcon(props, ref) {
22609 return (React__default.createElement(FontIcon, __assign$4W({}, props, { ref: ref }), "credit_card"));
22610 });
22611
22612 var __assign$4X = (undefined && undefined.__assign) || function () {
22613 __assign$4X = Object.assign || function(t) {
22614 for (var s, i = 1, n = arguments.length; i < n; i++) {
22615 s = arguments[i];
22616 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22617 t[p] = s[p];
22618 }
22619 return t;
22620 };
22621 return __assign$4X.apply(this, arguments);
22622 };
22623 var Crop169FontIcon = React.forwardRef(function Crop169FontIcon(props, ref) {
22624 return (React__default.createElement(FontIcon, __assign$4X({}, props, { ref: ref }), "crop_16_9"));
22625 });
22626
22627 var __assign$4Y = (undefined && undefined.__assign) || function () {
22628 __assign$4Y = Object.assign || function(t) {
22629 for (var s, i = 1, n = arguments.length; i < n; i++) {
22630 s = arguments[i];
22631 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22632 t[p] = s[p];
22633 }
22634 return t;
22635 };
22636 return __assign$4Y.apply(this, arguments);
22637 };
22638 var Crop32FontIcon = React.forwardRef(function Crop32FontIcon(props, ref) {
22639 return (React__default.createElement(FontIcon, __assign$4Y({}, props, { ref: ref }), "crop_3_2"));
22640 });
22641
22642 var __assign$4Z = (undefined && undefined.__assign) || function () {
22643 __assign$4Z = Object.assign || function(t) {
22644 for (var s, i = 1, n = arguments.length; i < n; i++) {
22645 s = arguments[i];
22646 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22647 t[p] = s[p];
22648 }
22649 return t;
22650 };
22651 return __assign$4Z.apply(this, arguments);
22652 };
22653 var Crop54FontIcon = React.forwardRef(function Crop54FontIcon(props, ref) {
22654 return (React__default.createElement(FontIcon, __assign$4Z({}, props, { ref: ref }), "crop_5_4"));
22655 });
22656
22657 var __assign$4_ = (undefined && undefined.__assign) || function () {
22658 __assign$4_ = Object.assign || function(t) {
22659 for (var s, i = 1, n = arguments.length; i < n; i++) {
22660 s = arguments[i];
22661 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22662 t[p] = s[p];
22663 }
22664 return t;
22665 };
22666 return __assign$4_.apply(this, arguments);
22667 };
22668 var Crop75FontIcon = React.forwardRef(function Crop75FontIcon(props, ref) {
22669 return (React__default.createElement(FontIcon, __assign$4_({}, props, { ref: ref }), "crop_7_5"));
22670 });
22671
22672 var __assign$4$ = (undefined && undefined.__assign) || function () {
22673 __assign$4$ = Object.assign || function(t) {
22674 for (var s, i = 1, n = arguments.length; i < n; i++) {
22675 s = arguments[i];
22676 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22677 t[p] = s[p];
22678 }
22679 return t;
22680 };
22681 return __assign$4$.apply(this, arguments);
22682 };
22683 var CropDinFontIcon = React.forwardRef(function CropDinFontIcon(props, ref) {
22684 return (React__default.createElement(FontIcon, __assign$4$({}, props, { ref: ref }), "crop_din"));
22685 });
22686
22687 var __assign$50 = (undefined && undefined.__assign) || function () {
22688 __assign$50 = Object.assign || function(t) {
22689 for (var s, i = 1, n = arguments.length; i < n; i++) {
22690 s = arguments[i];
22691 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22692 t[p] = s[p];
22693 }
22694 return t;
22695 };
22696 return __assign$50.apply(this, arguments);
22697 };
22698 var CropFreeFontIcon = React.forwardRef(function CropFreeFontIcon(props, ref) {
22699 return (React__default.createElement(FontIcon, __assign$50({}, props, { ref: ref }), "crop_free"));
22700 });
22701
22702 var __assign$51 = (undefined && undefined.__assign) || function () {
22703 __assign$51 = Object.assign || function(t) {
22704 for (var s, i = 1, n = arguments.length; i < n; i++) {
22705 s = arguments[i];
22706 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22707 t[p] = s[p];
22708 }
22709 return t;
22710 };
22711 return __assign$51.apply(this, arguments);
22712 };
22713 var CropLandscapeFontIcon = React.forwardRef(function CropLandscapeFontIcon(props, ref) {
22714 return (React__default.createElement(FontIcon, __assign$51({}, props, { ref: ref }), "crop_landscape"));
22715 });
22716
22717 var __assign$52 = (undefined && undefined.__assign) || function () {
22718 __assign$52 = Object.assign || function(t) {
22719 for (var s, i = 1, n = arguments.length; i < n; i++) {
22720 s = arguments[i];
22721 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22722 t[p] = s[p];
22723 }
22724 return t;
22725 };
22726 return __assign$52.apply(this, arguments);
22727 };
22728 var CropOriginalFontIcon = React.forwardRef(function CropOriginalFontIcon(props, ref) {
22729 return (React__default.createElement(FontIcon, __assign$52({}, props, { ref: ref }), "crop_original"));
22730 });
22731
22732 var __assign$53 = (undefined && undefined.__assign) || function () {
22733 __assign$53 = Object.assign || function(t) {
22734 for (var s, i = 1, n = arguments.length; i < n; i++) {
22735 s = arguments[i];
22736 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22737 t[p] = s[p];
22738 }
22739 return t;
22740 };
22741 return __assign$53.apply(this, arguments);
22742 };
22743 var CropPortraitFontIcon = React.forwardRef(function CropPortraitFontIcon(props, ref) {
22744 return (React__default.createElement(FontIcon, __assign$53({}, props, { ref: ref }), "crop_portrait"));
22745 });
22746
22747 var __assign$54 = (undefined && undefined.__assign) || function () {
22748 __assign$54 = Object.assign || function(t) {
22749 for (var s, i = 1, n = arguments.length; i < n; i++) {
22750 s = arguments[i];
22751 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22752 t[p] = s[p];
22753 }
22754 return t;
22755 };
22756 return __assign$54.apply(this, arguments);
22757 };
22758 var CropRotateFontIcon = React.forwardRef(function CropRotateFontIcon(props, ref) {
22759 return (React__default.createElement(FontIcon, __assign$54({}, props, { ref: ref }), "crop_rotate"));
22760 });
22761
22762 var __assign$55 = (undefined && undefined.__assign) || function () {
22763 __assign$55 = Object.assign || function(t) {
22764 for (var s, i = 1, n = arguments.length; i < n; i++) {
22765 s = arguments[i];
22766 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22767 t[p] = s[p];
22768 }
22769 return t;
22770 };
22771 return __assign$55.apply(this, arguments);
22772 };
22773 var CropSquareFontIcon = React.forwardRef(function CropSquareFontIcon(props, ref) {
22774 return (React__default.createElement(FontIcon, __assign$55({}, props, { ref: ref }), "crop_square"));
22775 });
22776
22777 var __assign$56 = (undefined && undefined.__assign) || function () {
22778 __assign$56 = Object.assign || function(t) {
22779 for (var s, i = 1, n = arguments.length; i < n; i++) {
22780 s = arguments[i];
22781 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22782 t[p] = s[p];
22783 }
22784 return t;
22785 };
22786 return __assign$56.apply(this, arguments);
22787 };
22788 var CropFontIcon = React.forwardRef(function CropFontIcon(props, ref) {
22789 return (React__default.createElement(FontIcon, __assign$56({}, props, { ref: ref }), "crop"));
22790 });
22791
22792 var __assign$57 = (undefined && undefined.__assign) || function () {
22793 __assign$57 = Object.assign || function(t) {
22794 for (var s, i = 1, n = arguments.length; i < n; i++) {
22795 s = arguments[i];
22796 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22797 t[p] = s[p];
22798 }
22799 return t;
22800 };
22801 return __assign$57.apply(this, arguments);
22802 };
22803 var DashboardFontIcon = React.forwardRef(function DashboardFontIcon(props, ref) {
22804 return (React__default.createElement(FontIcon, __assign$57({}, props, { ref: ref }), "dashboard"));
22805 });
22806
22807 var __assign$58 = (undefined && undefined.__assign) || function () {
22808 __assign$58 = Object.assign || function(t) {
22809 for (var s, i = 1, n = arguments.length; i < n; i++) {
22810 s = arguments[i];
22811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22812 t[p] = s[p];
22813 }
22814 return t;
22815 };
22816 return __assign$58.apply(this, arguments);
22817 };
22818 var DataUsageFontIcon = React.forwardRef(function DataUsageFontIcon(props, ref) {
22819 return (React__default.createElement(FontIcon, __assign$58({}, props, { ref: ref }), "data_usage"));
22820 });
22821
22822 var __assign$59 = (undefined && undefined.__assign) || function () {
22823 __assign$59 = Object.assign || function(t) {
22824 for (var s, i = 1, n = arguments.length; i < n; i++) {
22825 s = arguments[i];
22826 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22827 t[p] = s[p];
22828 }
22829 return t;
22830 };
22831 return __assign$59.apply(this, arguments);
22832 };
22833 var DateRangeFontIcon = React.forwardRef(function DateRangeFontIcon(props, ref) {
22834 return (React__default.createElement(FontIcon, __assign$59({}, props, { ref: ref }), "date_range"));
22835 });
22836
22837 var __assign$5a = (undefined && undefined.__assign) || function () {
22838 __assign$5a = Object.assign || function(t) {
22839 for (var s, i = 1, n = arguments.length; i < n; i++) {
22840 s = arguments[i];
22841 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22842 t[p] = s[p];
22843 }
22844 return t;
22845 };
22846 return __assign$5a.apply(this, arguments);
22847 };
22848 var DehazeFontIcon = React.forwardRef(function DehazeFontIcon(props, ref) {
22849 return (React__default.createElement(FontIcon, __assign$5a({}, props, { ref: ref }), "dehaze"));
22850 });
22851
22852 var __assign$5b = (undefined && undefined.__assign) || function () {
22853 __assign$5b = Object.assign || function(t) {
22854 for (var s, i = 1, n = arguments.length; i < n; i++) {
22855 s = arguments[i];
22856 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22857 t[p] = s[p];
22858 }
22859 return t;
22860 };
22861 return __assign$5b.apply(this, arguments);
22862 };
22863 var DeleteForeverFontIcon = React.forwardRef(function DeleteForeverFontIcon(props, ref) {
22864 return (React__default.createElement(FontIcon, __assign$5b({}, props, { ref: ref }), "delete_forever"));
22865 });
22866
22867 var __assign$5c = (undefined && undefined.__assign) || function () {
22868 __assign$5c = Object.assign || function(t) {
22869 for (var s, i = 1, n = arguments.length; i < n; i++) {
22870 s = arguments[i];
22871 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22872 t[p] = s[p];
22873 }
22874 return t;
22875 };
22876 return __assign$5c.apply(this, arguments);
22877 };
22878 var DeleteSweepFontIcon = React.forwardRef(function DeleteSweepFontIcon(props, ref) {
22879 return (React__default.createElement(FontIcon, __assign$5c({}, props, { ref: ref }), "delete_sweep"));
22880 });
22881
22882 var __assign$5d = (undefined && undefined.__assign) || function () {
22883 __assign$5d = Object.assign || function(t) {
22884 for (var s, i = 1, n = arguments.length; i < n; i++) {
22885 s = arguments[i];
22886 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22887 t[p] = s[p];
22888 }
22889 return t;
22890 };
22891 return __assign$5d.apply(this, arguments);
22892 };
22893 var DeleteFontIcon = React.forwardRef(function DeleteFontIcon(props, ref) {
22894 return (React__default.createElement(FontIcon, __assign$5d({}, props, { ref: ref }), "delete"));
22895 });
22896
22897 var __assign$5e = (undefined && undefined.__assign) || function () {
22898 __assign$5e = Object.assign || function(t) {
22899 for (var s, i = 1, n = arguments.length; i < n; i++) {
22900 s = arguments[i];
22901 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22902 t[p] = s[p];
22903 }
22904 return t;
22905 };
22906 return __assign$5e.apply(this, arguments);
22907 };
22908 var DescriptionFontIcon = React.forwardRef(function DescriptionFontIcon(props, ref) {
22909 return (React__default.createElement(FontIcon, __assign$5e({}, props, { ref: ref }), "description"));
22910 });
22911
22912 var __assign$5f = (undefined && undefined.__assign) || function () {
22913 __assign$5f = Object.assign || function(t) {
22914 for (var s, i = 1, n = arguments.length; i < n; i++) {
22915 s = arguments[i];
22916 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22917 t[p] = s[p];
22918 }
22919 return t;
22920 };
22921 return __assign$5f.apply(this, arguments);
22922 };
22923 var DesktopMacFontIcon = React.forwardRef(function DesktopMacFontIcon(props, ref) {
22924 return (React__default.createElement(FontIcon, __assign$5f({}, props, { ref: ref }), "desktop_mac"));
22925 });
22926
22927 var __assign$5g = (undefined && undefined.__assign) || function () {
22928 __assign$5g = Object.assign || function(t) {
22929 for (var s, i = 1, n = arguments.length; i < n; i++) {
22930 s = arguments[i];
22931 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22932 t[p] = s[p];
22933 }
22934 return t;
22935 };
22936 return __assign$5g.apply(this, arguments);
22937 };
22938 var DesktopWindowsFontIcon = React.forwardRef(function DesktopWindowsFontIcon(props, ref) {
22939 return (React__default.createElement(FontIcon, __assign$5g({}, props, { ref: ref }), "desktop_windows"));
22940 });
22941
22942 var __assign$5h = (undefined && undefined.__assign) || function () {
22943 __assign$5h = Object.assign || function(t) {
22944 for (var s, i = 1, n = arguments.length; i < n; i++) {
22945 s = arguments[i];
22946 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22947 t[p] = s[p];
22948 }
22949 return t;
22950 };
22951 return __assign$5h.apply(this, arguments);
22952 };
22953 var DetailsFontIcon = React.forwardRef(function DetailsFontIcon(props, ref) {
22954 return (React__default.createElement(FontIcon, __assign$5h({}, props, { ref: ref }), "details"));
22955 });
22956
22957 var __assign$5i = (undefined && undefined.__assign) || function () {
22958 __assign$5i = Object.assign || function(t) {
22959 for (var s, i = 1, n = arguments.length; i < n; i++) {
22960 s = arguments[i];
22961 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22962 t[p] = s[p];
22963 }
22964 return t;
22965 };
22966 return __assign$5i.apply(this, arguments);
22967 };
22968 var DeveloperBoardFontIcon = React.forwardRef(function DeveloperBoardFontIcon(props, ref) {
22969 return (React__default.createElement(FontIcon, __assign$5i({}, props, { ref: ref }), "developer_board"));
22970 });
22971
22972 var __assign$5j = (undefined && undefined.__assign) || function () {
22973 __assign$5j = Object.assign || function(t) {
22974 for (var s, i = 1, n = arguments.length; i < n; i++) {
22975 s = arguments[i];
22976 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22977 t[p] = s[p];
22978 }
22979 return t;
22980 };
22981 return __assign$5j.apply(this, arguments);
22982 };
22983 var DeveloperModeFontIcon = React.forwardRef(function DeveloperModeFontIcon(props, ref) {
22984 return (React__default.createElement(FontIcon, __assign$5j({}, props, { ref: ref }), "developer_mode"));
22985 });
22986
22987 var __assign$5k = (undefined && undefined.__assign) || function () {
22988 __assign$5k = Object.assign || function(t) {
22989 for (var s, i = 1, n = arguments.length; i < n; i++) {
22990 s = arguments[i];
22991 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22992 t[p] = s[p];
22993 }
22994 return t;
22995 };
22996 return __assign$5k.apply(this, arguments);
22997 };
22998 var DeviceHubFontIcon = React.forwardRef(function DeviceHubFontIcon(props, ref) {
22999 return (React__default.createElement(FontIcon, __assign$5k({}, props, { ref: ref }), "device_hub"));
23000 });
23001
23002 var __assign$5l = (undefined && undefined.__assign) || function () {
23003 __assign$5l = Object.assign || function(t) {
23004 for (var s, i = 1, n = arguments.length; i < n; i++) {
23005 s = arguments[i];
23006 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23007 t[p] = s[p];
23008 }
23009 return t;
23010 };
23011 return __assign$5l.apply(this, arguments);
23012 };
23013 var DevicesOtherFontIcon = React.forwardRef(function DevicesOtherFontIcon(props, ref) {
23014 return (React__default.createElement(FontIcon, __assign$5l({}, props, { ref: ref }), "devices_other"));
23015 });
23016
23017 var __assign$5m = (undefined && undefined.__assign) || function () {
23018 __assign$5m = Object.assign || function(t) {
23019 for (var s, i = 1, n = arguments.length; i < n; i++) {
23020 s = arguments[i];
23021 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23022 t[p] = s[p];
23023 }
23024 return t;
23025 };
23026 return __assign$5m.apply(this, arguments);
23027 };
23028 var DevicesFontIcon = React.forwardRef(function DevicesFontIcon(props, ref) {
23029 return (React__default.createElement(FontIcon, __assign$5m({}, props, { ref: ref }), "devices"));
23030 });
23031
23032 var __assign$5n = (undefined && undefined.__assign) || function () {
23033 __assign$5n = Object.assign || function(t) {
23034 for (var s, i = 1, n = arguments.length; i < n; i++) {
23035 s = arguments[i];
23036 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23037 t[p] = s[p];
23038 }
23039 return t;
23040 };
23041 return __assign$5n.apply(this, arguments);
23042 };
23043 var DialerSipFontIcon = React.forwardRef(function DialerSipFontIcon(props, ref) {
23044 return (React__default.createElement(FontIcon, __assign$5n({}, props, { ref: ref }), "dialer_sip"));
23045 });
23046
23047 var __assign$5o = (undefined && undefined.__assign) || function () {
23048 __assign$5o = Object.assign || function(t) {
23049 for (var s, i = 1, n = arguments.length; i < n; i++) {
23050 s = arguments[i];
23051 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23052 t[p] = s[p];
23053 }
23054 return t;
23055 };
23056 return __assign$5o.apply(this, arguments);
23057 };
23058 var DialpadFontIcon = React.forwardRef(function DialpadFontIcon(props, ref) {
23059 return (React__default.createElement(FontIcon, __assign$5o({}, props, { ref: ref }), "dialpad"));
23060 });
23061
23062 var __assign$5p = (undefined && undefined.__assign) || function () {
23063 __assign$5p = Object.assign || function(t) {
23064 for (var s, i = 1, n = arguments.length; i < n; i++) {
23065 s = arguments[i];
23066 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23067 t[p] = s[p];
23068 }
23069 return t;
23070 };
23071 return __assign$5p.apply(this, arguments);
23072 };
23073 var DirectionsBikeFontIcon = React.forwardRef(function DirectionsBikeFontIcon(props, ref) {
23074 return (React__default.createElement(FontIcon, __assign$5p({}, props, { ref: ref }), "directions_bike"));
23075 });
23076
23077 var __assign$5q = (undefined && undefined.__assign) || function () {
23078 __assign$5q = Object.assign || function(t) {
23079 for (var s, i = 1, n = arguments.length; i < n; i++) {
23080 s = arguments[i];
23081 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23082 t[p] = s[p];
23083 }
23084 return t;
23085 };
23086 return __assign$5q.apply(this, arguments);
23087 };
23088 var DirectionsBoatFontIcon = React.forwardRef(function DirectionsBoatFontIcon(props, ref) {
23089 return (React__default.createElement(FontIcon, __assign$5q({}, props, { ref: ref }), "directions_boat"));
23090 });
23091
23092 var __assign$5r = (undefined && undefined.__assign) || function () {
23093 __assign$5r = Object.assign || function(t) {
23094 for (var s, i = 1, n = arguments.length; i < n; i++) {
23095 s = arguments[i];
23096 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23097 t[p] = s[p];
23098 }
23099 return t;
23100 };
23101 return __assign$5r.apply(this, arguments);
23102 };
23103 var DirectionsBusFontIcon = React.forwardRef(function DirectionsBusFontIcon(props, ref) {
23104 return (React__default.createElement(FontIcon, __assign$5r({}, props, { ref: ref }), "directions_bus"));
23105 });
23106
23107 var __assign$5s = (undefined && undefined.__assign) || function () {
23108 __assign$5s = Object.assign || function(t) {
23109 for (var s, i = 1, n = arguments.length; i < n; i++) {
23110 s = arguments[i];
23111 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23112 t[p] = s[p];
23113 }
23114 return t;
23115 };
23116 return __assign$5s.apply(this, arguments);
23117 };
23118 var DirectionsCarFontIcon = React.forwardRef(function DirectionsCarFontIcon(props, ref) {
23119 return (React__default.createElement(FontIcon, __assign$5s({}, props, { ref: ref }), "directions_car"));
23120 });
23121
23122 var __assign$5t = (undefined && undefined.__assign) || function () {
23123 __assign$5t = Object.assign || function(t) {
23124 for (var s, i = 1, n = arguments.length; i < n; i++) {
23125 s = arguments[i];
23126 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23127 t[p] = s[p];
23128 }
23129 return t;
23130 };
23131 return __assign$5t.apply(this, arguments);
23132 };
23133 var DirectionsRailwayFontIcon = React.forwardRef(function DirectionsRailwayFontIcon(props, ref) {
23134 return (React__default.createElement(FontIcon, __assign$5t({}, props, { ref: ref }), "directions_railway"));
23135 });
23136
23137 var __assign$5u = (undefined && undefined.__assign) || function () {
23138 __assign$5u = Object.assign || function(t) {
23139 for (var s, i = 1, n = arguments.length; i < n; i++) {
23140 s = arguments[i];
23141 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23142 t[p] = s[p];
23143 }
23144 return t;
23145 };
23146 return __assign$5u.apply(this, arguments);
23147 };
23148 var DirectionsRunFontIcon = React.forwardRef(function DirectionsRunFontIcon(props, ref) {
23149 return (React__default.createElement(FontIcon, __assign$5u({}, props, { ref: ref }), "directions_run"));
23150 });
23151
23152 var __assign$5v = (undefined && undefined.__assign) || function () {
23153 __assign$5v = Object.assign || function(t) {
23154 for (var s, i = 1, n = arguments.length; i < n; i++) {
23155 s = arguments[i];
23156 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23157 t[p] = s[p];
23158 }
23159 return t;
23160 };
23161 return __assign$5v.apply(this, arguments);
23162 };
23163 var DirectionsSubwayFontIcon = React.forwardRef(function DirectionsSubwayFontIcon(props, ref) {
23164 return (React__default.createElement(FontIcon, __assign$5v({}, props, { ref: ref }), "directions_subway"));
23165 });
23166
23167 var __assign$5w = (undefined && undefined.__assign) || function () {
23168 __assign$5w = Object.assign || function(t) {
23169 for (var s, i = 1, n = arguments.length; i < n; i++) {
23170 s = arguments[i];
23171 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23172 t[p] = s[p];
23173 }
23174 return t;
23175 };
23176 return __assign$5w.apply(this, arguments);
23177 };
23178 var DirectionsTransitFontIcon = React.forwardRef(function DirectionsTransitFontIcon(props, ref) {
23179 return (React__default.createElement(FontIcon, __assign$5w({}, props, { ref: ref }), "directions_transit"));
23180 });
23181
23182 var __assign$5x = (undefined && undefined.__assign) || function () {
23183 __assign$5x = Object.assign || function(t) {
23184 for (var s, i = 1, n = arguments.length; i < n; i++) {
23185 s = arguments[i];
23186 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23187 t[p] = s[p];
23188 }
23189 return t;
23190 };
23191 return __assign$5x.apply(this, arguments);
23192 };
23193 var DirectionsWalkFontIcon = React.forwardRef(function DirectionsWalkFontIcon(props, ref) {
23194 return (React__default.createElement(FontIcon, __assign$5x({}, props, { ref: ref }), "directions_walk"));
23195 });
23196
23197 var __assign$5y = (undefined && undefined.__assign) || function () {
23198 __assign$5y = Object.assign || function(t) {
23199 for (var s, i = 1, n = arguments.length; i < n; i++) {
23200 s = arguments[i];
23201 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23202 t[p] = s[p];
23203 }
23204 return t;
23205 };
23206 return __assign$5y.apply(this, arguments);
23207 };
23208 var DirectionsFontIcon = React.forwardRef(function DirectionsFontIcon(props, ref) {
23209 return (React__default.createElement(FontIcon, __assign$5y({}, props, { ref: ref }), "directions"));
23210 });
23211
23212 var __assign$5z = (undefined && undefined.__assign) || function () {
23213 __assign$5z = Object.assign || function(t) {
23214 for (var s, i = 1, n = arguments.length; i < n; i++) {
23215 s = arguments[i];
23216 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23217 t[p] = s[p];
23218 }
23219 return t;
23220 };
23221 return __assign$5z.apply(this, arguments);
23222 };
23223 var DiscFullFontIcon = React.forwardRef(function DiscFullFontIcon(props, ref) {
23224 return (React__default.createElement(FontIcon, __assign$5z({}, props, { ref: ref }), "disc_full"));
23225 });
23226
23227 var __assign$5A = (undefined && undefined.__assign) || function () {
23228 __assign$5A = Object.assign || function(t) {
23229 for (var s, i = 1, n = arguments.length; i < n; i++) {
23230 s = arguments[i];
23231 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23232 t[p] = s[p];
23233 }
23234 return t;
23235 };
23236 return __assign$5A.apply(this, arguments);
23237 };
23238 var DnsFontIcon = React.forwardRef(function DnsFontIcon(props, ref) {
23239 return (React__default.createElement(FontIcon, __assign$5A({}, props, { ref: ref }), "dns"));
23240 });
23241
23242 var __assign$5B = (undefined && undefined.__assign) || function () {
23243 __assign$5B = Object.assign || function(t) {
23244 for (var s, i = 1, n = arguments.length; i < n; i++) {
23245 s = arguments[i];
23246 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23247 t[p] = s[p];
23248 }
23249 return t;
23250 };
23251 return __assign$5B.apply(this, arguments);
23252 };
23253 var DoNotDisturbAltFontIcon = React.forwardRef(function DoNotDisturbAltFontIcon(props, ref) {
23254 return (React__default.createElement(FontIcon, __assign$5B({}, props, { ref: ref }), "do_not_disturb_alt"));
23255 });
23256
23257 var __assign$5C = (undefined && undefined.__assign) || function () {
23258 __assign$5C = Object.assign || function(t) {
23259 for (var s, i = 1, n = arguments.length; i < n; i++) {
23260 s = arguments[i];
23261 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23262 t[p] = s[p];
23263 }
23264 return t;
23265 };
23266 return __assign$5C.apply(this, arguments);
23267 };
23268 var DoNotDisturbOffFontIcon = React.forwardRef(function DoNotDisturbOffFontIcon(props, ref) {
23269 return (React__default.createElement(FontIcon, __assign$5C({}, props, { ref: ref }), "do_not_disturb_off"));
23270 });
23271
23272 var __assign$5D = (undefined && undefined.__assign) || function () {
23273 __assign$5D = Object.assign || function(t) {
23274 for (var s, i = 1, n = arguments.length; i < n; i++) {
23275 s = arguments[i];
23276 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23277 t[p] = s[p];
23278 }
23279 return t;
23280 };
23281 return __assign$5D.apply(this, arguments);
23282 };
23283 var DoNotDisturbOnFontIcon = React.forwardRef(function DoNotDisturbOnFontIcon(props, ref) {
23284 return (React__default.createElement(FontIcon, __assign$5D({}, props, { ref: ref }), "do_not_disturb_on"));
23285 });
23286
23287 var __assign$5E = (undefined && undefined.__assign) || function () {
23288 __assign$5E = Object.assign || function(t) {
23289 for (var s, i = 1, n = arguments.length; i < n; i++) {
23290 s = arguments[i];
23291 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23292 t[p] = s[p];
23293 }
23294 return t;
23295 };
23296 return __assign$5E.apply(this, arguments);
23297 };
23298 var DoNotDisturbFontIcon = React.forwardRef(function DoNotDisturbFontIcon(props, ref) {
23299 return (React__default.createElement(FontIcon, __assign$5E({}, props, { ref: ref }), "do_not_disturb"));
23300 });
23301
23302 var __assign$5F = (undefined && undefined.__assign) || function () {
23303 __assign$5F = Object.assign || function(t) {
23304 for (var s, i = 1, n = arguments.length; i < n; i++) {
23305 s = arguments[i];
23306 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23307 t[p] = s[p];
23308 }
23309 return t;
23310 };
23311 return __assign$5F.apply(this, arguments);
23312 };
23313 var DockFontIcon = React.forwardRef(function DockFontIcon(props, ref) {
23314 return (React__default.createElement(FontIcon, __assign$5F({}, props, { ref: ref }), "dock"));
23315 });
23316
23317 var __assign$5G = (undefined && undefined.__assign) || function () {
23318 __assign$5G = Object.assign || function(t) {
23319 for (var s, i = 1, n = arguments.length; i < n; i++) {
23320 s = arguments[i];
23321 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23322 t[p] = s[p];
23323 }
23324 return t;
23325 };
23326 return __assign$5G.apply(this, arguments);
23327 };
23328 var DomainFontIcon = React.forwardRef(function DomainFontIcon(props, ref) {
23329 return (React__default.createElement(FontIcon, __assign$5G({}, props, { ref: ref }), "domain"));
23330 });
23331
23332 var __assign$5H = (undefined && undefined.__assign) || function () {
23333 __assign$5H = Object.assign || function(t) {
23334 for (var s, i = 1, n = arguments.length; i < n; i++) {
23335 s = arguments[i];
23336 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23337 t[p] = s[p];
23338 }
23339 return t;
23340 };
23341 return __assign$5H.apply(this, arguments);
23342 };
23343 var DoneAllFontIcon = React.forwardRef(function DoneAllFontIcon(props, ref) {
23344 return (React__default.createElement(FontIcon, __assign$5H({}, props, { ref: ref }), "done_all"));
23345 });
23346
23347 var __assign$5I = (undefined && undefined.__assign) || function () {
23348 __assign$5I = Object.assign || function(t) {
23349 for (var s, i = 1, n = arguments.length; i < n; i++) {
23350 s = arguments[i];
23351 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23352 t[p] = s[p];
23353 }
23354 return t;
23355 };
23356 return __assign$5I.apply(this, arguments);
23357 };
23358 var DoneFontIcon = React.forwardRef(function DoneFontIcon(props, ref) {
23359 return (React__default.createElement(FontIcon, __assign$5I({}, props, { ref: ref }), "done"));
23360 });
23361
23362 var __assign$5J = (undefined && undefined.__assign) || function () {
23363 __assign$5J = Object.assign || function(t) {
23364 for (var s, i = 1, n = arguments.length; i < n; i++) {
23365 s = arguments[i];
23366 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23367 t[p] = s[p];
23368 }
23369 return t;
23370 };
23371 return __assign$5J.apply(this, arguments);
23372 };
23373 var DonutLargeFontIcon = React.forwardRef(function DonutLargeFontIcon(props, ref) {
23374 return (React__default.createElement(FontIcon, __assign$5J({}, props, { ref: ref }), "donut_large"));
23375 });
23376
23377 var __assign$5K = (undefined && undefined.__assign) || function () {
23378 __assign$5K = Object.assign || function(t) {
23379 for (var s, i = 1, n = arguments.length; i < n; i++) {
23380 s = arguments[i];
23381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23382 t[p] = s[p];
23383 }
23384 return t;
23385 };
23386 return __assign$5K.apply(this, arguments);
23387 };
23388 var DonutSmallFontIcon = React.forwardRef(function DonutSmallFontIcon(props, ref) {
23389 return (React__default.createElement(FontIcon, __assign$5K({}, props, { ref: ref }), "donut_small"));
23390 });
23391
23392 var __assign$5L = (undefined && undefined.__assign) || function () {
23393 __assign$5L = Object.assign || function(t) {
23394 for (var s, i = 1, n = arguments.length; i < n; i++) {
23395 s = arguments[i];
23396 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23397 t[p] = s[p];
23398 }
23399 return t;
23400 };
23401 return __assign$5L.apply(this, arguments);
23402 };
23403 var DraftsFontIcon = React.forwardRef(function DraftsFontIcon(props, ref) {
23404 return (React__default.createElement(FontIcon, __assign$5L({}, props, { ref: ref }), "drafts"));
23405 });
23406
23407 var __assign$5M = (undefined && undefined.__assign) || function () {
23408 __assign$5M = Object.assign || function(t) {
23409 for (var s, i = 1, n = arguments.length; i < n; i++) {
23410 s = arguments[i];
23411 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23412 t[p] = s[p];
23413 }
23414 return t;
23415 };
23416 return __assign$5M.apply(this, arguments);
23417 };
23418 var DragHandleFontIcon = React.forwardRef(function DragHandleFontIcon(props, ref) {
23419 return (React__default.createElement(FontIcon, __assign$5M({}, props, { ref: ref }), "drag_handle"));
23420 });
23421
23422 var __assign$5N = (undefined && undefined.__assign) || function () {
23423 __assign$5N = Object.assign || function(t) {
23424 for (var s, i = 1, n = arguments.length; i < n; i++) {
23425 s = arguments[i];
23426 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23427 t[p] = s[p];
23428 }
23429 return t;
23430 };
23431 return __assign$5N.apply(this, arguments);
23432 };
23433 var DriveEtaFontIcon = React.forwardRef(function DriveEtaFontIcon(props, ref) {
23434 return (React__default.createElement(FontIcon, __assign$5N({}, props, { ref: ref }), "drive_eta"));
23435 });
23436
23437 var __assign$5O = (undefined && undefined.__assign) || function () {
23438 __assign$5O = Object.assign || function(t) {
23439 for (var s, i = 1, n = arguments.length; i < n; i++) {
23440 s = arguments[i];
23441 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23442 t[p] = s[p];
23443 }
23444 return t;
23445 };
23446 return __assign$5O.apply(this, arguments);
23447 };
23448 var DvrFontIcon = React.forwardRef(function DvrFontIcon(props, ref) {
23449 return (React__default.createElement(FontIcon, __assign$5O({}, props, { ref: ref }), "dvr"));
23450 });
23451
23452 var __assign$5P = (undefined && undefined.__assign) || function () {
23453 __assign$5P = Object.assign || function(t) {
23454 for (var s, i = 1, n = arguments.length; i < n; i++) {
23455 s = arguments[i];
23456 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23457 t[p] = s[p];
23458 }
23459 return t;
23460 };
23461 return __assign$5P.apply(this, arguments);
23462 };
23463 var EditLocationFontIcon = React.forwardRef(function EditLocationFontIcon(props, ref) {
23464 return (React__default.createElement(FontIcon, __assign$5P({}, props, { ref: ref }), "edit_location"));
23465 });
23466
23467 var __assign$5Q = (undefined && undefined.__assign) || function () {
23468 __assign$5Q = Object.assign || function(t) {
23469 for (var s, i = 1, n = arguments.length; i < n; i++) {
23470 s = arguments[i];
23471 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23472 t[p] = s[p];
23473 }
23474 return t;
23475 };
23476 return __assign$5Q.apply(this, arguments);
23477 };
23478 var EditFontIcon = React.forwardRef(function EditFontIcon(props, ref) {
23479 return (React__default.createElement(FontIcon, __assign$5Q({}, props, { ref: ref }), "edit"));
23480 });
23481
23482 var __assign$5R = (undefined && undefined.__assign) || function () {
23483 __assign$5R = Object.assign || function(t) {
23484 for (var s, i = 1, n = arguments.length; i < n; i++) {
23485 s = arguments[i];
23486 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23487 t[p] = s[p];
23488 }
23489 return t;
23490 };
23491 return __assign$5R.apply(this, arguments);
23492 };
23493 var EjectFontIcon = React.forwardRef(function EjectFontIcon(props, ref) {
23494 return (React__default.createElement(FontIcon, __assign$5R({}, props, { ref: ref }), "eject"));
23495 });
23496
23497 var __assign$5S = (undefined && undefined.__assign) || function () {
23498 __assign$5S = Object.assign || function(t) {
23499 for (var s, i = 1, n = arguments.length; i < n; i++) {
23500 s = arguments[i];
23501 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23502 t[p] = s[p];
23503 }
23504 return t;
23505 };
23506 return __assign$5S.apply(this, arguments);
23507 };
23508 var EmailFontIcon = React.forwardRef(function EmailFontIcon(props, ref) {
23509 return (React__default.createElement(FontIcon, __assign$5S({}, props, { ref: ref }), "email"));
23510 });
23511
23512 var __assign$5T = (undefined && undefined.__assign) || function () {
23513 __assign$5T = Object.assign || function(t) {
23514 for (var s, i = 1, n = arguments.length; i < n; i++) {
23515 s = arguments[i];
23516 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23517 t[p] = s[p];
23518 }
23519 return t;
23520 };
23521 return __assign$5T.apply(this, arguments);
23522 };
23523 var EnhancedEncryptionFontIcon = React.forwardRef(function EnhancedEncryptionFontIcon(props, ref) {
23524 return (React__default.createElement(FontIcon, __assign$5T({}, props, { ref: ref }), "enhanced_encryption"));
23525 });
23526
23527 var __assign$5U = (undefined && undefined.__assign) || function () {
23528 __assign$5U = Object.assign || function(t) {
23529 for (var s, i = 1, n = arguments.length; i < n; i++) {
23530 s = arguments[i];
23531 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23532 t[p] = s[p];
23533 }
23534 return t;
23535 };
23536 return __assign$5U.apply(this, arguments);
23537 };
23538 var EqualizerFontIcon = React.forwardRef(function EqualizerFontIcon(props, ref) {
23539 return (React__default.createElement(FontIcon, __assign$5U({}, props, { ref: ref }), "equalizer"));
23540 });
23541
23542 var __assign$5V = (undefined && undefined.__assign) || function () {
23543 __assign$5V = Object.assign || function(t) {
23544 for (var s, i = 1, n = arguments.length; i < n; i++) {
23545 s = arguments[i];
23546 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23547 t[p] = s[p];
23548 }
23549 return t;
23550 };
23551 return __assign$5V.apply(this, arguments);
23552 };
23553 var ErrorOutlineFontIcon = React.forwardRef(function ErrorOutlineFontIcon(props, ref) {
23554 return (React__default.createElement(FontIcon, __assign$5V({}, props, { ref: ref }), "error_outline"));
23555 });
23556
23557 var __assign$5W = (undefined && undefined.__assign) || function () {
23558 __assign$5W = Object.assign || function(t) {
23559 for (var s, i = 1, n = arguments.length; i < n; i++) {
23560 s = arguments[i];
23561 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23562 t[p] = s[p];
23563 }
23564 return t;
23565 };
23566 return __assign$5W.apply(this, arguments);
23567 };
23568 var ErrorFontIcon = React.forwardRef(function ErrorFontIcon(props, ref) {
23569 return (React__default.createElement(FontIcon, __assign$5W({}, props, { ref: ref }), "error"));
23570 });
23571
23572 var __assign$5X = (undefined && undefined.__assign) || function () {
23573 __assign$5X = Object.assign || function(t) {
23574 for (var s, i = 1, n = arguments.length; i < n; i++) {
23575 s = arguments[i];
23576 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23577 t[p] = s[p];
23578 }
23579 return t;
23580 };
23581 return __assign$5X.apply(this, arguments);
23582 };
23583 var EuroSymbolFontIcon = React.forwardRef(function EuroSymbolFontIcon(props, ref) {
23584 return (React__default.createElement(FontIcon, __assign$5X({}, props, { ref: ref }), "euro_symbol"));
23585 });
23586
23587 var __assign$5Y = (undefined && undefined.__assign) || function () {
23588 __assign$5Y = Object.assign || function(t) {
23589 for (var s, i = 1, n = arguments.length; i < n; i++) {
23590 s = arguments[i];
23591 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23592 t[p] = s[p];
23593 }
23594 return t;
23595 };
23596 return __assign$5Y.apply(this, arguments);
23597 };
23598 var EvStationFontIcon = React.forwardRef(function EvStationFontIcon(props, ref) {
23599 return (React__default.createElement(FontIcon, __assign$5Y({}, props, { ref: ref }), "ev_station"));
23600 });
23601
23602 var __assign$5Z = (undefined && undefined.__assign) || function () {
23603 __assign$5Z = Object.assign || function(t) {
23604 for (var s, i = 1, n = arguments.length; i < n; i++) {
23605 s = arguments[i];
23606 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23607 t[p] = s[p];
23608 }
23609 return t;
23610 };
23611 return __assign$5Z.apply(this, arguments);
23612 };
23613 var EventAvailableFontIcon = React.forwardRef(function EventAvailableFontIcon(props, ref) {
23614 return (React__default.createElement(FontIcon, __assign$5Z({}, props, { ref: ref }), "event_available"));
23615 });
23616
23617 var __assign$5_ = (undefined && undefined.__assign) || function () {
23618 __assign$5_ = Object.assign || function(t) {
23619 for (var s, i = 1, n = arguments.length; i < n; i++) {
23620 s = arguments[i];
23621 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23622 t[p] = s[p];
23623 }
23624 return t;
23625 };
23626 return __assign$5_.apply(this, arguments);
23627 };
23628 var EventBusyFontIcon = React.forwardRef(function EventBusyFontIcon(props, ref) {
23629 return (React__default.createElement(FontIcon, __assign$5_({}, props, { ref: ref }), "event_busy"));
23630 });
23631
23632 var __assign$5$ = (undefined && undefined.__assign) || function () {
23633 __assign$5$ = Object.assign || function(t) {
23634 for (var s, i = 1, n = arguments.length; i < n; i++) {
23635 s = arguments[i];
23636 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23637 t[p] = s[p];
23638 }
23639 return t;
23640 };
23641 return __assign$5$.apply(this, arguments);
23642 };
23643 var EventNoteFontIcon = React.forwardRef(function EventNoteFontIcon(props, ref) {
23644 return (React__default.createElement(FontIcon, __assign$5$({}, props, { ref: ref }), "event_note"));
23645 });
23646
23647 var __assign$60 = (undefined && undefined.__assign) || function () {
23648 __assign$60 = Object.assign || function(t) {
23649 for (var s, i = 1, n = arguments.length; i < n; i++) {
23650 s = arguments[i];
23651 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23652 t[p] = s[p];
23653 }
23654 return t;
23655 };
23656 return __assign$60.apply(this, arguments);
23657 };
23658 var EventSeatFontIcon = React.forwardRef(function EventSeatFontIcon(props, ref) {
23659 return (React__default.createElement(FontIcon, __assign$60({}, props, { ref: ref }), "event_seat"));
23660 });
23661
23662 var __assign$61 = (undefined && undefined.__assign) || function () {
23663 __assign$61 = Object.assign || function(t) {
23664 for (var s, i = 1, n = arguments.length; i < n; i++) {
23665 s = arguments[i];
23666 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23667 t[p] = s[p];
23668 }
23669 return t;
23670 };
23671 return __assign$61.apply(this, arguments);
23672 };
23673 var EventFontIcon = React.forwardRef(function EventFontIcon(props, ref) {
23674 return (React__default.createElement(FontIcon, __assign$61({}, props, { ref: ref }), "event"));
23675 });
23676
23677 var __assign$62 = (undefined && undefined.__assign) || function () {
23678 __assign$62 = Object.assign || function(t) {
23679 for (var s, i = 1, n = arguments.length; i < n; i++) {
23680 s = arguments[i];
23681 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23682 t[p] = s[p];
23683 }
23684 return t;
23685 };
23686 return __assign$62.apply(this, arguments);
23687 };
23688 var ExitToAppFontIcon = React.forwardRef(function ExitToAppFontIcon(props, ref) {
23689 return (React__default.createElement(FontIcon, __assign$62({}, props, { ref: ref }), "exit_to_app"));
23690 });
23691
23692 var __assign$63 = (undefined && undefined.__assign) || function () {
23693 __assign$63 = Object.assign || function(t) {
23694 for (var s, i = 1, n = arguments.length; i < n; i++) {
23695 s = arguments[i];
23696 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23697 t[p] = s[p];
23698 }
23699 return t;
23700 };
23701 return __assign$63.apply(this, arguments);
23702 };
23703 var ExpandLessFontIcon = React.forwardRef(function ExpandLessFontIcon(props, ref) {
23704 return (React__default.createElement(FontIcon, __assign$63({}, props, { ref: ref }), "expand_less"));
23705 });
23706
23707 var __assign$64 = (undefined && undefined.__assign) || function () {
23708 __assign$64 = Object.assign || function(t) {
23709 for (var s, i = 1, n = arguments.length; i < n; i++) {
23710 s = arguments[i];
23711 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23712 t[p] = s[p];
23713 }
23714 return t;
23715 };
23716 return __assign$64.apply(this, arguments);
23717 };
23718 var ExpandMoreFontIcon = React.forwardRef(function ExpandMoreFontIcon(props, ref) {
23719 return (React__default.createElement(FontIcon, __assign$64({}, props, { ref: ref }), "expand_more"));
23720 });
23721
23722 var __assign$65 = (undefined && undefined.__assign) || function () {
23723 __assign$65 = Object.assign || function(t) {
23724 for (var s, i = 1, n = arguments.length; i < n; i++) {
23725 s = arguments[i];
23726 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23727 t[p] = s[p];
23728 }
23729 return t;
23730 };
23731 return __assign$65.apply(this, arguments);
23732 };
23733 var ExplicitFontIcon = React.forwardRef(function ExplicitFontIcon(props, ref) {
23734 return (React__default.createElement(FontIcon, __assign$65({}, props, { ref: ref }), "explicit"));
23735 });
23736
23737 var __assign$66 = (undefined && undefined.__assign) || function () {
23738 __assign$66 = Object.assign || function(t) {
23739 for (var s, i = 1, n = arguments.length; i < n; i++) {
23740 s = arguments[i];
23741 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23742 t[p] = s[p];
23743 }
23744 return t;
23745 };
23746 return __assign$66.apply(this, arguments);
23747 };
23748 var ExploreFontIcon = React.forwardRef(function ExploreFontIcon(props, ref) {
23749 return (React__default.createElement(FontIcon, __assign$66({}, props, { ref: ref }), "explore"));
23750 });
23751
23752 var __assign$67 = (undefined && undefined.__assign) || function () {
23753 __assign$67 = Object.assign || function(t) {
23754 for (var s, i = 1, n = arguments.length; i < n; i++) {
23755 s = arguments[i];
23756 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23757 t[p] = s[p];
23758 }
23759 return t;
23760 };
23761 return __assign$67.apply(this, arguments);
23762 };
23763 var ExposureNeg1FontIcon = React.forwardRef(function ExposureNeg1FontIcon(props, ref) {
23764 return (React__default.createElement(FontIcon, __assign$67({}, props, { ref: ref }), "exposure_neg_1"));
23765 });
23766
23767 var __assign$68 = (undefined && undefined.__assign) || function () {
23768 __assign$68 = Object.assign || function(t) {
23769 for (var s, i = 1, n = arguments.length; i < n; i++) {
23770 s = arguments[i];
23771 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23772 t[p] = s[p];
23773 }
23774 return t;
23775 };
23776 return __assign$68.apply(this, arguments);
23777 };
23778 var ExposureNeg2FontIcon = React.forwardRef(function ExposureNeg2FontIcon(props, ref) {
23779 return (React__default.createElement(FontIcon, __assign$68({}, props, { ref: ref }), "exposure_neg_2"));
23780 });
23781
23782 var __assign$69 = (undefined && undefined.__assign) || function () {
23783 __assign$69 = Object.assign || function(t) {
23784 for (var s, i = 1, n = arguments.length; i < n; i++) {
23785 s = arguments[i];
23786 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23787 t[p] = s[p];
23788 }
23789 return t;
23790 };
23791 return __assign$69.apply(this, arguments);
23792 };
23793 var ExposurePlus1FontIcon = React.forwardRef(function ExposurePlus1FontIcon(props, ref) {
23794 return (React__default.createElement(FontIcon, __assign$69({}, props, { ref: ref }), "exposure_plus_1"));
23795 });
23796
23797 var __assign$6a = (undefined && undefined.__assign) || function () {
23798 __assign$6a = Object.assign || function(t) {
23799 for (var s, i = 1, n = arguments.length; i < n; i++) {
23800 s = arguments[i];
23801 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23802 t[p] = s[p];
23803 }
23804 return t;
23805 };
23806 return __assign$6a.apply(this, arguments);
23807 };
23808 var ExposurePlus2FontIcon = React.forwardRef(function ExposurePlus2FontIcon(props, ref) {
23809 return (React__default.createElement(FontIcon, __assign$6a({}, props, { ref: ref }), "exposure_plus_2"));
23810 });
23811
23812 var __assign$6b = (undefined && undefined.__assign) || function () {
23813 __assign$6b = Object.assign || function(t) {
23814 for (var s, i = 1, n = arguments.length; i < n; i++) {
23815 s = arguments[i];
23816 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23817 t[p] = s[p];
23818 }
23819 return t;
23820 };
23821 return __assign$6b.apply(this, arguments);
23822 };
23823 var ExposureZeroFontIcon = React.forwardRef(function ExposureZeroFontIcon(props, ref) {
23824 return (React__default.createElement(FontIcon, __assign$6b({}, props, { ref: ref }), "exposure_zero"));
23825 });
23826
23827 var __assign$6c = (undefined && undefined.__assign) || function () {
23828 __assign$6c = Object.assign || function(t) {
23829 for (var s, i = 1, n = arguments.length; i < n; i++) {
23830 s = arguments[i];
23831 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23832 t[p] = s[p];
23833 }
23834 return t;
23835 };
23836 return __assign$6c.apply(this, arguments);
23837 };
23838 var ExposureFontIcon = React.forwardRef(function ExposureFontIcon(props, ref) {
23839 return (React__default.createElement(FontIcon, __assign$6c({}, props, { ref: ref }), "exposure"));
23840 });
23841
23842 var __assign$6d = (undefined && undefined.__assign) || function () {
23843 __assign$6d = Object.assign || function(t) {
23844 for (var s, i = 1, n = arguments.length; i < n; i++) {
23845 s = arguments[i];
23846 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23847 t[p] = s[p];
23848 }
23849 return t;
23850 };
23851 return __assign$6d.apply(this, arguments);
23852 };
23853 var ExtensionFontIcon = React.forwardRef(function ExtensionFontIcon(props, ref) {
23854 return (React__default.createElement(FontIcon, __assign$6d({}, props, { ref: ref }), "extension"));
23855 });
23856
23857 var __assign$6e = (undefined && undefined.__assign) || function () {
23858 __assign$6e = Object.assign || function(t) {
23859 for (var s, i = 1, n = arguments.length; i < n; i++) {
23860 s = arguments[i];
23861 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23862 t[p] = s[p];
23863 }
23864 return t;
23865 };
23866 return __assign$6e.apply(this, arguments);
23867 };
23868 var FaceFontIcon = React.forwardRef(function FaceFontIcon(props, ref) {
23869 return (React__default.createElement(FontIcon, __assign$6e({}, props, { ref: ref }), "face"));
23870 });
23871
23872 var __assign$6f = (undefined && undefined.__assign) || function () {
23873 __assign$6f = Object.assign || function(t) {
23874 for (var s, i = 1, n = arguments.length; i < n; i++) {
23875 s = arguments[i];
23876 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23877 t[p] = s[p];
23878 }
23879 return t;
23880 };
23881 return __assign$6f.apply(this, arguments);
23882 };
23883 var FastForwardFontIcon = React.forwardRef(function FastForwardFontIcon(props, ref) {
23884 return (React__default.createElement(FontIcon, __assign$6f({}, props, { ref: ref }), "fast_forward"));
23885 });
23886
23887 var __assign$6g = (undefined && undefined.__assign) || function () {
23888 __assign$6g = Object.assign || function(t) {
23889 for (var s, i = 1, n = arguments.length; i < n; i++) {
23890 s = arguments[i];
23891 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23892 t[p] = s[p];
23893 }
23894 return t;
23895 };
23896 return __assign$6g.apply(this, arguments);
23897 };
23898 var FastRewindFontIcon = React.forwardRef(function FastRewindFontIcon(props, ref) {
23899 return (React__default.createElement(FontIcon, __assign$6g({}, props, { ref: ref }), "fast_rewind"));
23900 });
23901
23902 var __assign$6h = (undefined && undefined.__assign) || function () {
23903 __assign$6h = Object.assign || function(t) {
23904 for (var s, i = 1, n = arguments.length; i < n; i++) {
23905 s = arguments[i];
23906 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23907 t[p] = s[p];
23908 }
23909 return t;
23910 };
23911 return __assign$6h.apply(this, arguments);
23912 };
23913 var FavoriteBorderFontIcon = React.forwardRef(function FavoriteBorderFontIcon(props, ref) {
23914 return (React__default.createElement(FontIcon, __assign$6h({}, props, { ref: ref }), "favorite_border"));
23915 });
23916
23917 var __assign$6i = (undefined && undefined.__assign) || function () {
23918 __assign$6i = Object.assign || function(t) {
23919 for (var s, i = 1, n = arguments.length; i < n; i++) {
23920 s = arguments[i];
23921 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23922 t[p] = s[p];
23923 }
23924 return t;
23925 };
23926 return __assign$6i.apply(this, arguments);
23927 };
23928 var FavoriteFontIcon = React.forwardRef(function FavoriteFontIcon(props, ref) {
23929 return (React__default.createElement(FontIcon, __assign$6i({}, props, { ref: ref }), "favorite"));
23930 });
23931
23932 var __assign$6j = (undefined && undefined.__assign) || function () {
23933 __assign$6j = Object.assign || function(t) {
23934 for (var s, i = 1, n = arguments.length; i < n; i++) {
23935 s = arguments[i];
23936 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23937 t[p] = s[p];
23938 }
23939 return t;
23940 };
23941 return __assign$6j.apply(this, arguments);
23942 };
23943 var FeaturedPlayListFontIcon = React.forwardRef(function FeaturedPlayListFontIcon(props, ref) {
23944 return (React__default.createElement(FontIcon, __assign$6j({}, props, { ref: ref }), "featured_play_list"));
23945 });
23946
23947 var __assign$6k = (undefined && undefined.__assign) || function () {
23948 __assign$6k = Object.assign || function(t) {
23949 for (var s, i = 1, n = arguments.length; i < n; i++) {
23950 s = arguments[i];
23951 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23952 t[p] = s[p];
23953 }
23954 return t;
23955 };
23956 return __assign$6k.apply(this, arguments);
23957 };
23958 var FeaturedVideoFontIcon = React.forwardRef(function FeaturedVideoFontIcon(props, ref) {
23959 return (React__default.createElement(FontIcon, __assign$6k({}, props, { ref: ref }), "featured_video"));
23960 });
23961
23962 var __assign$6l = (undefined && undefined.__assign) || function () {
23963 __assign$6l = Object.assign || function(t) {
23964 for (var s, i = 1, n = arguments.length; i < n; i++) {
23965 s = arguments[i];
23966 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23967 t[p] = s[p];
23968 }
23969 return t;
23970 };
23971 return __assign$6l.apply(this, arguments);
23972 };
23973 var FeedbackFontIcon = React.forwardRef(function FeedbackFontIcon(props, ref) {
23974 return (React__default.createElement(FontIcon, __assign$6l({}, props, { ref: ref }), "feedback"));
23975 });
23976
23977 var __assign$6m = (undefined && undefined.__assign) || function () {
23978 __assign$6m = Object.assign || function(t) {
23979 for (var s, i = 1, n = arguments.length; i < n; i++) {
23980 s = arguments[i];
23981 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23982 t[p] = s[p];
23983 }
23984 return t;
23985 };
23986 return __assign$6m.apply(this, arguments);
23987 };
23988 var FiberDvrFontIcon = React.forwardRef(function FiberDvrFontIcon(props, ref) {
23989 return (React__default.createElement(FontIcon, __assign$6m({}, props, { ref: ref }), "fiber_dvr"));
23990 });
23991
23992 var __assign$6n = (undefined && undefined.__assign) || function () {
23993 __assign$6n = Object.assign || function(t) {
23994 for (var s, i = 1, n = arguments.length; i < n; i++) {
23995 s = arguments[i];
23996 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23997 t[p] = s[p];
23998 }
23999 return t;
24000 };
24001 return __assign$6n.apply(this, arguments);
24002 };
24003 var FiberManualRecordFontIcon = React.forwardRef(function FiberManualRecordFontIcon(props, ref) {
24004 return (React__default.createElement(FontIcon, __assign$6n({}, props, { ref: ref }), "fiber_manual_record"));
24005 });
24006
24007 var __assign$6o = (undefined && undefined.__assign) || function () {
24008 __assign$6o = Object.assign || function(t) {
24009 for (var s, i = 1, n = arguments.length; i < n; i++) {
24010 s = arguments[i];
24011 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24012 t[p] = s[p];
24013 }
24014 return t;
24015 };
24016 return __assign$6o.apply(this, arguments);
24017 };
24018 var FiberNewFontIcon = React.forwardRef(function FiberNewFontIcon(props, ref) {
24019 return (React__default.createElement(FontIcon, __assign$6o({}, props, { ref: ref }), "fiber_new"));
24020 });
24021
24022 var __assign$6p = (undefined && undefined.__assign) || function () {
24023 __assign$6p = Object.assign || function(t) {
24024 for (var s, i = 1, n = arguments.length; i < n; i++) {
24025 s = arguments[i];
24026 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24027 t[p] = s[p];
24028 }
24029 return t;
24030 };
24031 return __assign$6p.apply(this, arguments);
24032 };
24033 var FiberPinFontIcon = React.forwardRef(function FiberPinFontIcon(props, ref) {
24034 return (React__default.createElement(FontIcon, __assign$6p({}, props, { ref: ref }), "fiber_pin"));
24035 });
24036
24037 var __assign$6q = (undefined && undefined.__assign) || function () {
24038 __assign$6q = Object.assign || function(t) {
24039 for (var s, i = 1, n = arguments.length; i < n; i++) {
24040 s = arguments[i];
24041 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24042 t[p] = s[p];
24043 }
24044 return t;
24045 };
24046 return __assign$6q.apply(this, arguments);
24047 };
24048 var FiberSmartRecordFontIcon = React.forwardRef(function FiberSmartRecordFontIcon(props, ref) {
24049 return (React__default.createElement(FontIcon, __assign$6q({}, props, { ref: ref }), "fiber_smart_record"));
24050 });
24051
24052 var __assign$6r = (undefined && undefined.__assign) || function () {
24053 __assign$6r = Object.assign || function(t) {
24054 for (var s, i = 1, n = arguments.length; i < n; i++) {
24055 s = arguments[i];
24056 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24057 t[p] = s[p];
24058 }
24059 return t;
24060 };
24061 return __assign$6r.apply(this, arguments);
24062 };
24063 var FileDownloadFontIcon = React.forwardRef(function FileDownloadFontIcon(props, ref) {
24064 return (React__default.createElement(FontIcon, __assign$6r({}, props, { ref: ref }), "file_download"));
24065 });
24066
24067 var __assign$6s = (undefined && undefined.__assign) || function () {
24068 __assign$6s = Object.assign || function(t) {
24069 for (var s, i = 1, n = arguments.length; i < n; i++) {
24070 s = arguments[i];
24071 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24072 t[p] = s[p];
24073 }
24074 return t;
24075 };
24076 return __assign$6s.apply(this, arguments);
24077 };
24078 var FileUploadFontIcon = React.forwardRef(function FileUploadFontIcon(props, ref) {
24079 return (React__default.createElement(FontIcon, __assign$6s({}, props, { ref: ref }), "file_upload"));
24080 });
24081
24082 var __assign$6t = (undefined && undefined.__assign) || function () {
24083 __assign$6t = Object.assign || function(t) {
24084 for (var s, i = 1, n = arguments.length; i < n; i++) {
24085 s = arguments[i];
24086 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24087 t[p] = s[p];
24088 }
24089 return t;
24090 };
24091 return __assign$6t.apply(this, arguments);
24092 };
24093 var Filter1FontIcon = React.forwardRef(function Filter1FontIcon(props, ref) {
24094 return (React__default.createElement(FontIcon, __assign$6t({}, props, { ref: ref }), "filter_1"));
24095 });
24096
24097 var __assign$6u = (undefined && undefined.__assign) || function () {
24098 __assign$6u = Object.assign || function(t) {
24099 for (var s, i = 1, n = arguments.length; i < n; i++) {
24100 s = arguments[i];
24101 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24102 t[p] = s[p];
24103 }
24104 return t;
24105 };
24106 return __assign$6u.apply(this, arguments);
24107 };
24108 var Filter2FontIcon = React.forwardRef(function Filter2FontIcon(props, ref) {
24109 return (React__default.createElement(FontIcon, __assign$6u({}, props, { ref: ref }), "filter_2"));
24110 });
24111
24112 var __assign$6v = (undefined && undefined.__assign) || function () {
24113 __assign$6v = Object.assign || function(t) {
24114 for (var s, i = 1, n = arguments.length; i < n; i++) {
24115 s = arguments[i];
24116 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24117 t[p] = s[p];
24118 }
24119 return t;
24120 };
24121 return __assign$6v.apply(this, arguments);
24122 };
24123 var Filter3FontIcon = React.forwardRef(function Filter3FontIcon(props, ref) {
24124 return (React__default.createElement(FontIcon, __assign$6v({}, props, { ref: ref }), "filter_3"));
24125 });
24126
24127 var __assign$6w = (undefined && undefined.__assign) || function () {
24128 __assign$6w = Object.assign || function(t) {
24129 for (var s, i = 1, n = arguments.length; i < n; i++) {
24130 s = arguments[i];
24131 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24132 t[p] = s[p];
24133 }
24134 return t;
24135 };
24136 return __assign$6w.apply(this, arguments);
24137 };
24138 var Filter4FontIcon = React.forwardRef(function Filter4FontIcon(props, ref) {
24139 return (React__default.createElement(FontIcon, __assign$6w({}, props, { ref: ref }), "filter_4"));
24140 });
24141
24142 var __assign$6x = (undefined && undefined.__assign) || function () {
24143 __assign$6x = Object.assign || function(t) {
24144 for (var s, i = 1, n = arguments.length; i < n; i++) {
24145 s = arguments[i];
24146 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24147 t[p] = s[p];
24148 }
24149 return t;
24150 };
24151 return __assign$6x.apply(this, arguments);
24152 };
24153 var Filter5FontIcon = React.forwardRef(function Filter5FontIcon(props, ref) {
24154 return (React__default.createElement(FontIcon, __assign$6x({}, props, { ref: ref }), "filter_5"));
24155 });
24156
24157 var __assign$6y = (undefined && undefined.__assign) || function () {
24158 __assign$6y = Object.assign || function(t) {
24159 for (var s, i = 1, n = arguments.length; i < n; i++) {
24160 s = arguments[i];
24161 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24162 t[p] = s[p];
24163 }
24164 return t;
24165 };
24166 return __assign$6y.apply(this, arguments);
24167 };
24168 var Filter6FontIcon = React.forwardRef(function Filter6FontIcon(props, ref) {
24169 return (React__default.createElement(FontIcon, __assign$6y({}, props, { ref: ref }), "filter_6"));
24170 });
24171
24172 var __assign$6z = (undefined && undefined.__assign) || function () {
24173 __assign$6z = Object.assign || function(t) {
24174 for (var s, i = 1, n = arguments.length; i < n; i++) {
24175 s = arguments[i];
24176 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24177 t[p] = s[p];
24178 }
24179 return t;
24180 };
24181 return __assign$6z.apply(this, arguments);
24182 };
24183 var Filter7FontIcon = React.forwardRef(function Filter7FontIcon(props, ref) {
24184 return (React__default.createElement(FontIcon, __assign$6z({}, props, { ref: ref }), "filter_7"));
24185 });
24186
24187 var __assign$6A = (undefined && undefined.__assign) || function () {
24188 __assign$6A = Object.assign || function(t) {
24189 for (var s, i = 1, n = arguments.length; i < n; i++) {
24190 s = arguments[i];
24191 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24192 t[p] = s[p];
24193 }
24194 return t;
24195 };
24196 return __assign$6A.apply(this, arguments);
24197 };
24198 var Filter8FontIcon = React.forwardRef(function Filter8FontIcon(props, ref) {
24199 return (React__default.createElement(FontIcon, __assign$6A({}, props, { ref: ref }), "filter_8"));
24200 });
24201
24202 var __assign$6B = (undefined && undefined.__assign) || function () {
24203 __assign$6B = Object.assign || function(t) {
24204 for (var s, i = 1, n = arguments.length; i < n; i++) {
24205 s = arguments[i];
24206 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24207 t[p] = s[p];
24208 }
24209 return t;
24210 };
24211 return __assign$6B.apply(this, arguments);
24212 };
24213 var Filter9PlusFontIcon = React.forwardRef(function Filter9PlusFontIcon(props, ref) {
24214 return (React__default.createElement(FontIcon, __assign$6B({}, props, { ref: ref }), "filter_9_plus"));
24215 });
24216
24217 var __assign$6C = (undefined && undefined.__assign) || function () {
24218 __assign$6C = Object.assign || function(t) {
24219 for (var s, i = 1, n = arguments.length; i < n; i++) {
24220 s = arguments[i];
24221 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24222 t[p] = s[p];
24223 }
24224 return t;
24225 };
24226 return __assign$6C.apply(this, arguments);
24227 };
24228 var Filter9FontIcon = React.forwardRef(function Filter9FontIcon(props, ref) {
24229 return (React__default.createElement(FontIcon, __assign$6C({}, props, { ref: ref }), "filter_9"));
24230 });
24231
24232 var __assign$6D = (undefined && undefined.__assign) || function () {
24233 __assign$6D = Object.assign || function(t) {
24234 for (var s, i = 1, n = arguments.length; i < n; i++) {
24235 s = arguments[i];
24236 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24237 t[p] = s[p];
24238 }
24239 return t;
24240 };
24241 return __assign$6D.apply(this, arguments);
24242 };
24243 var FilterBAndWFontIcon = React.forwardRef(function FilterBAndWFontIcon(props, ref) {
24244 return (React__default.createElement(FontIcon, __assign$6D({}, props, { ref: ref }), "filter_b_and_w"));
24245 });
24246
24247 var __assign$6E = (undefined && undefined.__assign) || function () {
24248 __assign$6E = Object.assign || function(t) {
24249 for (var s, i = 1, n = arguments.length; i < n; i++) {
24250 s = arguments[i];
24251 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24252 t[p] = s[p];
24253 }
24254 return t;
24255 };
24256 return __assign$6E.apply(this, arguments);
24257 };
24258 var FilterCenterFocusFontIcon = React.forwardRef(function FilterCenterFocusFontIcon(props, ref) {
24259 return (React__default.createElement(FontIcon, __assign$6E({}, props, { ref: ref }), "filter_center_focus"));
24260 });
24261
24262 var __assign$6F = (undefined && undefined.__assign) || function () {
24263 __assign$6F = Object.assign || function(t) {
24264 for (var s, i = 1, n = arguments.length; i < n; i++) {
24265 s = arguments[i];
24266 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24267 t[p] = s[p];
24268 }
24269 return t;
24270 };
24271 return __assign$6F.apply(this, arguments);
24272 };
24273 var FilterDramaFontIcon = React.forwardRef(function FilterDramaFontIcon(props, ref) {
24274 return (React__default.createElement(FontIcon, __assign$6F({}, props, { ref: ref }), "filter_drama"));
24275 });
24276
24277 var __assign$6G = (undefined && undefined.__assign) || function () {
24278 __assign$6G = Object.assign || function(t) {
24279 for (var s, i = 1, n = arguments.length; i < n; i++) {
24280 s = arguments[i];
24281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24282 t[p] = s[p];
24283 }
24284 return t;
24285 };
24286 return __assign$6G.apply(this, arguments);
24287 };
24288 var FilterFramesFontIcon = React.forwardRef(function FilterFramesFontIcon(props, ref) {
24289 return (React__default.createElement(FontIcon, __assign$6G({}, props, { ref: ref }), "filter_frames"));
24290 });
24291
24292 var __assign$6H = (undefined && undefined.__assign) || function () {
24293 __assign$6H = Object.assign || function(t) {
24294 for (var s, i = 1, n = arguments.length; i < n; i++) {
24295 s = arguments[i];
24296 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24297 t[p] = s[p];
24298 }
24299 return t;
24300 };
24301 return __assign$6H.apply(this, arguments);
24302 };
24303 var FilterHdrFontIcon = React.forwardRef(function FilterHdrFontIcon(props, ref) {
24304 return (React__default.createElement(FontIcon, __assign$6H({}, props, { ref: ref }), "filter_hdr"));
24305 });
24306
24307 var __assign$6I = (undefined && undefined.__assign) || function () {
24308 __assign$6I = Object.assign || function(t) {
24309 for (var s, i = 1, n = arguments.length; i < n; i++) {
24310 s = arguments[i];
24311 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24312 t[p] = s[p];
24313 }
24314 return t;
24315 };
24316 return __assign$6I.apply(this, arguments);
24317 };
24318 var FilterListFontIcon = React.forwardRef(function FilterListFontIcon(props, ref) {
24319 return (React__default.createElement(FontIcon, __assign$6I({}, props, { ref: ref }), "filter_list"));
24320 });
24321
24322 var __assign$6J = (undefined && undefined.__assign) || function () {
24323 __assign$6J = Object.assign || function(t) {
24324 for (var s, i = 1, n = arguments.length; i < n; i++) {
24325 s = arguments[i];
24326 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24327 t[p] = s[p];
24328 }
24329 return t;
24330 };
24331 return __assign$6J.apply(this, arguments);
24332 };
24333 var FilterNoneFontIcon = React.forwardRef(function FilterNoneFontIcon(props, ref) {
24334 return (React__default.createElement(FontIcon, __assign$6J({}, props, { ref: ref }), "filter_none"));
24335 });
24336
24337 var __assign$6K = (undefined && undefined.__assign) || function () {
24338 __assign$6K = Object.assign || function(t) {
24339 for (var s, i = 1, n = arguments.length; i < n; i++) {
24340 s = arguments[i];
24341 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24342 t[p] = s[p];
24343 }
24344 return t;
24345 };
24346 return __assign$6K.apply(this, arguments);
24347 };
24348 var FilterTiltShiftFontIcon = React.forwardRef(function FilterTiltShiftFontIcon(props, ref) {
24349 return (React__default.createElement(FontIcon, __assign$6K({}, props, { ref: ref }), "filter_tilt_shift"));
24350 });
24351
24352 var __assign$6L = (undefined && undefined.__assign) || function () {
24353 __assign$6L = Object.assign || function(t) {
24354 for (var s, i = 1, n = arguments.length; i < n; i++) {
24355 s = arguments[i];
24356 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24357 t[p] = s[p];
24358 }
24359 return t;
24360 };
24361 return __assign$6L.apply(this, arguments);
24362 };
24363 var FilterVintageFontIcon = React.forwardRef(function FilterVintageFontIcon(props, ref) {
24364 return (React__default.createElement(FontIcon, __assign$6L({}, props, { ref: ref }), "filter_vintage"));
24365 });
24366
24367 var __assign$6M = (undefined && undefined.__assign) || function () {
24368 __assign$6M = Object.assign || function(t) {
24369 for (var s, i = 1, n = arguments.length; i < n; i++) {
24370 s = arguments[i];
24371 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24372 t[p] = s[p];
24373 }
24374 return t;
24375 };
24376 return __assign$6M.apply(this, arguments);
24377 };
24378 var FilterFontIcon = React.forwardRef(function FilterFontIcon(props, ref) {
24379 return (React__default.createElement(FontIcon, __assign$6M({}, props, { ref: ref }), "filter"));
24380 });
24381
24382 var __assign$6N = (undefined && undefined.__assign) || function () {
24383 __assign$6N = Object.assign || function(t) {
24384 for (var s, i = 1, n = arguments.length; i < n; i++) {
24385 s = arguments[i];
24386 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24387 t[p] = s[p];
24388 }
24389 return t;
24390 };
24391 return __assign$6N.apply(this, arguments);
24392 };
24393 var FindInPageFontIcon = React.forwardRef(function FindInPageFontIcon(props, ref) {
24394 return (React__default.createElement(FontIcon, __assign$6N({}, props, { ref: ref }), "find_in_page"));
24395 });
24396
24397 var __assign$6O = (undefined && undefined.__assign) || function () {
24398 __assign$6O = Object.assign || function(t) {
24399 for (var s, i = 1, n = arguments.length; i < n; i++) {
24400 s = arguments[i];
24401 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24402 t[p] = s[p];
24403 }
24404 return t;
24405 };
24406 return __assign$6O.apply(this, arguments);
24407 };
24408 var FindReplaceFontIcon = React.forwardRef(function FindReplaceFontIcon(props, ref) {
24409 return (React__default.createElement(FontIcon, __assign$6O({}, props, { ref: ref }), "find_replace"));
24410 });
24411
24412 var __assign$6P = (undefined && undefined.__assign) || function () {
24413 __assign$6P = Object.assign || function(t) {
24414 for (var s, i = 1, n = arguments.length; i < n; i++) {
24415 s = arguments[i];
24416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24417 t[p] = s[p];
24418 }
24419 return t;
24420 };
24421 return __assign$6P.apply(this, arguments);
24422 };
24423 var FingerprintFontIcon = React.forwardRef(function FingerprintFontIcon(props, ref) {
24424 return (React__default.createElement(FontIcon, __assign$6P({}, props, { ref: ref }), "fingerprint"));
24425 });
24426
24427 var __assign$6Q = (undefined && undefined.__assign) || function () {
24428 __assign$6Q = Object.assign || function(t) {
24429 for (var s, i = 1, n = arguments.length; i < n; i++) {
24430 s = arguments[i];
24431 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24432 t[p] = s[p];
24433 }
24434 return t;
24435 };
24436 return __assign$6Q.apply(this, arguments);
24437 };
24438 var FirstPageFontIcon = React.forwardRef(function FirstPageFontIcon(props, ref) {
24439 return (React__default.createElement(FontIcon, __assign$6Q({}, props, { ref: ref }), "first_page"));
24440 });
24441
24442 var __assign$6R = (undefined && undefined.__assign) || function () {
24443 __assign$6R = Object.assign || function(t) {
24444 for (var s, i = 1, n = arguments.length; i < n; i++) {
24445 s = arguments[i];
24446 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24447 t[p] = s[p];
24448 }
24449 return t;
24450 };
24451 return __assign$6R.apply(this, arguments);
24452 };
24453 var FitnessCenterFontIcon = React.forwardRef(function FitnessCenterFontIcon(props, ref) {
24454 return (React__default.createElement(FontIcon, __assign$6R({}, props, { ref: ref }), "fitness_center"));
24455 });
24456
24457 var __assign$6S = (undefined && undefined.__assign) || function () {
24458 __assign$6S = Object.assign || function(t) {
24459 for (var s, i = 1, n = arguments.length; i < n; i++) {
24460 s = arguments[i];
24461 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24462 t[p] = s[p];
24463 }
24464 return t;
24465 };
24466 return __assign$6S.apply(this, arguments);
24467 };
24468 var FlagFontIcon = React.forwardRef(function FlagFontIcon(props, ref) {
24469 return (React__default.createElement(FontIcon, __assign$6S({}, props, { ref: ref }), "flag"));
24470 });
24471
24472 var __assign$6T = (undefined && undefined.__assign) || function () {
24473 __assign$6T = Object.assign || function(t) {
24474 for (var s, i = 1, n = arguments.length; i < n; i++) {
24475 s = arguments[i];
24476 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24477 t[p] = s[p];
24478 }
24479 return t;
24480 };
24481 return __assign$6T.apply(this, arguments);
24482 };
24483 var FlareFontIcon = React.forwardRef(function FlareFontIcon(props, ref) {
24484 return (React__default.createElement(FontIcon, __assign$6T({}, props, { ref: ref }), "flare"));
24485 });
24486
24487 var __assign$6U = (undefined && undefined.__assign) || function () {
24488 __assign$6U = Object.assign || function(t) {
24489 for (var s, i = 1, n = arguments.length; i < n; i++) {
24490 s = arguments[i];
24491 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24492 t[p] = s[p];
24493 }
24494 return t;
24495 };
24496 return __assign$6U.apply(this, arguments);
24497 };
24498 var FlashAutoFontIcon = React.forwardRef(function FlashAutoFontIcon(props, ref) {
24499 return (React__default.createElement(FontIcon, __assign$6U({}, props, { ref: ref }), "flash_auto"));
24500 });
24501
24502 var __assign$6V = (undefined && undefined.__assign) || function () {
24503 __assign$6V = Object.assign || function(t) {
24504 for (var s, i = 1, n = arguments.length; i < n; i++) {
24505 s = arguments[i];
24506 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24507 t[p] = s[p];
24508 }
24509 return t;
24510 };
24511 return __assign$6V.apply(this, arguments);
24512 };
24513 var FlashOffFontIcon = React.forwardRef(function FlashOffFontIcon(props, ref) {
24514 return (React__default.createElement(FontIcon, __assign$6V({}, props, { ref: ref }), "flash_off"));
24515 });
24516
24517 var __assign$6W = (undefined && undefined.__assign) || function () {
24518 __assign$6W = Object.assign || function(t) {
24519 for (var s, i = 1, n = arguments.length; i < n; i++) {
24520 s = arguments[i];
24521 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24522 t[p] = s[p];
24523 }
24524 return t;
24525 };
24526 return __assign$6W.apply(this, arguments);
24527 };
24528 var FlashOnFontIcon = React.forwardRef(function FlashOnFontIcon(props, ref) {
24529 return (React__default.createElement(FontIcon, __assign$6W({}, props, { ref: ref }), "flash_on"));
24530 });
24531
24532 var __assign$6X = (undefined && undefined.__assign) || function () {
24533 __assign$6X = Object.assign || function(t) {
24534 for (var s, i = 1, n = arguments.length; i < n; i++) {
24535 s = arguments[i];
24536 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24537 t[p] = s[p];
24538 }
24539 return t;
24540 };
24541 return __assign$6X.apply(this, arguments);
24542 };
24543 var FlightLandFontIcon = React.forwardRef(function FlightLandFontIcon(props, ref) {
24544 return (React__default.createElement(FontIcon, __assign$6X({}, props, { ref: ref }), "flight_land"));
24545 });
24546
24547 var __assign$6Y = (undefined && undefined.__assign) || function () {
24548 __assign$6Y = Object.assign || function(t) {
24549 for (var s, i = 1, n = arguments.length; i < n; i++) {
24550 s = arguments[i];
24551 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24552 t[p] = s[p];
24553 }
24554 return t;
24555 };
24556 return __assign$6Y.apply(this, arguments);
24557 };
24558 var FlightTakeoffFontIcon = React.forwardRef(function FlightTakeoffFontIcon(props, ref) {
24559 return (React__default.createElement(FontIcon, __assign$6Y({}, props, { ref: ref }), "flight_takeoff"));
24560 });
24561
24562 var __assign$6Z = (undefined && undefined.__assign) || function () {
24563 __assign$6Z = Object.assign || function(t) {
24564 for (var s, i = 1, n = arguments.length; i < n; i++) {
24565 s = arguments[i];
24566 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24567 t[p] = s[p];
24568 }
24569 return t;
24570 };
24571 return __assign$6Z.apply(this, arguments);
24572 };
24573 var FlightFontIcon = React.forwardRef(function FlightFontIcon(props, ref) {
24574 return (React__default.createElement(FontIcon, __assign$6Z({}, props, { ref: ref }), "flight"));
24575 });
24576
24577 var __assign$6_ = (undefined && undefined.__assign) || function () {
24578 __assign$6_ = Object.assign || function(t) {
24579 for (var s, i = 1, n = arguments.length; i < n; i++) {
24580 s = arguments[i];
24581 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24582 t[p] = s[p];
24583 }
24584 return t;
24585 };
24586 return __assign$6_.apply(this, arguments);
24587 };
24588 var FlipToBackFontIcon = React.forwardRef(function FlipToBackFontIcon(props, ref) {
24589 return (React__default.createElement(FontIcon, __assign$6_({}, props, { ref: ref }), "flip_to_back"));
24590 });
24591
24592 var __assign$6$ = (undefined && undefined.__assign) || function () {
24593 __assign$6$ = Object.assign || function(t) {
24594 for (var s, i = 1, n = arguments.length; i < n; i++) {
24595 s = arguments[i];
24596 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24597 t[p] = s[p];
24598 }
24599 return t;
24600 };
24601 return __assign$6$.apply(this, arguments);
24602 };
24603 var FlipToFrontFontIcon = React.forwardRef(function FlipToFrontFontIcon(props, ref) {
24604 return (React__default.createElement(FontIcon, __assign$6$({}, props, { ref: ref }), "flip_to_front"));
24605 });
24606
24607 var __assign$70 = (undefined && undefined.__assign) || function () {
24608 __assign$70 = Object.assign || function(t) {
24609 for (var s, i = 1, n = arguments.length; i < n; i++) {
24610 s = arguments[i];
24611 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24612 t[p] = s[p];
24613 }
24614 return t;
24615 };
24616 return __assign$70.apply(this, arguments);
24617 };
24618 var FlipFontIcon = React.forwardRef(function FlipFontIcon(props, ref) {
24619 return (React__default.createElement(FontIcon, __assign$70({}, props, { ref: ref }), "flip"));
24620 });
24621
24622 var __assign$71 = (undefined && undefined.__assign) || function () {
24623 __assign$71 = Object.assign || function(t) {
24624 for (var s, i = 1, n = arguments.length; i < n; i++) {
24625 s = arguments[i];
24626 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24627 t[p] = s[p];
24628 }
24629 return t;
24630 };
24631 return __assign$71.apply(this, arguments);
24632 };
24633 var FolderOpenFontIcon = React.forwardRef(function FolderOpenFontIcon(props, ref) {
24634 return (React__default.createElement(FontIcon, __assign$71({}, props, { ref: ref }), "folder_open"));
24635 });
24636
24637 var __assign$72 = (undefined && undefined.__assign) || function () {
24638 __assign$72 = Object.assign || function(t) {
24639 for (var s, i = 1, n = arguments.length; i < n; i++) {
24640 s = arguments[i];
24641 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24642 t[p] = s[p];
24643 }
24644 return t;
24645 };
24646 return __assign$72.apply(this, arguments);
24647 };
24648 var FolderSharedFontIcon = React.forwardRef(function FolderSharedFontIcon(props, ref) {
24649 return (React__default.createElement(FontIcon, __assign$72({}, props, { ref: ref }), "folder_shared"));
24650 });
24651
24652 var __assign$73 = (undefined && undefined.__assign) || function () {
24653 __assign$73 = Object.assign || function(t) {
24654 for (var s, i = 1, n = arguments.length; i < n; i++) {
24655 s = arguments[i];
24656 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24657 t[p] = s[p];
24658 }
24659 return t;
24660 };
24661 return __assign$73.apply(this, arguments);
24662 };
24663 var FolderSpecialFontIcon = React.forwardRef(function FolderSpecialFontIcon(props, ref) {
24664 return (React__default.createElement(FontIcon, __assign$73({}, props, { ref: ref }), "folder_special"));
24665 });
24666
24667 var __assign$74 = (undefined && undefined.__assign) || function () {
24668 __assign$74 = Object.assign || function(t) {
24669 for (var s, i = 1, n = arguments.length; i < n; i++) {
24670 s = arguments[i];
24671 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24672 t[p] = s[p];
24673 }
24674 return t;
24675 };
24676 return __assign$74.apply(this, arguments);
24677 };
24678 var FolderFontIcon = React.forwardRef(function FolderFontIcon(props, ref) {
24679 return (React__default.createElement(FontIcon, __assign$74({}, props, { ref: ref }), "folder"));
24680 });
24681
24682 var __assign$75 = (undefined && undefined.__assign) || function () {
24683 __assign$75 = Object.assign || function(t) {
24684 for (var s, i = 1, n = arguments.length; i < n; i++) {
24685 s = arguments[i];
24686 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24687 t[p] = s[p];
24688 }
24689 return t;
24690 };
24691 return __assign$75.apply(this, arguments);
24692 };
24693 var FontDownloadFontIcon = React.forwardRef(function FontDownloadFontIcon(props, ref) {
24694 return (React__default.createElement(FontIcon, __assign$75({}, props, { ref: ref }), "font_download"));
24695 });
24696
24697 var __assign$76 = (undefined && undefined.__assign) || function () {
24698 __assign$76 = Object.assign || function(t) {
24699 for (var s, i = 1, n = arguments.length; i < n; i++) {
24700 s = arguments[i];
24701 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24702 t[p] = s[p];
24703 }
24704 return t;
24705 };
24706 return __assign$76.apply(this, arguments);
24707 };
24708 var FormatAlignCenterFontIcon = React.forwardRef(function FormatAlignCenterFontIcon(props, ref) {
24709 return (React__default.createElement(FontIcon, __assign$76({}, props, { ref: ref }), "format_align_center"));
24710 });
24711
24712 var __assign$77 = (undefined && undefined.__assign) || function () {
24713 __assign$77 = Object.assign || function(t) {
24714 for (var s, i = 1, n = arguments.length; i < n; i++) {
24715 s = arguments[i];
24716 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24717 t[p] = s[p];
24718 }
24719 return t;
24720 };
24721 return __assign$77.apply(this, arguments);
24722 };
24723 var FormatAlignJustifyFontIcon = React.forwardRef(function FormatAlignJustifyFontIcon(props, ref) {
24724 return (React__default.createElement(FontIcon, __assign$77({}, props, { ref: ref }), "format_align_justify"));
24725 });
24726
24727 var __assign$78 = (undefined && undefined.__assign) || function () {
24728 __assign$78 = Object.assign || function(t) {
24729 for (var s, i = 1, n = arguments.length; i < n; i++) {
24730 s = arguments[i];
24731 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24732 t[p] = s[p];
24733 }
24734 return t;
24735 };
24736 return __assign$78.apply(this, arguments);
24737 };
24738 var FormatAlignLeftFontIcon = React.forwardRef(function FormatAlignLeftFontIcon(props, ref) {
24739 return (React__default.createElement(FontIcon, __assign$78({}, props, { ref: ref }), "format_align_left"));
24740 });
24741
24742 var __assign$79 = (undefined && undefined.__assign) || function () {
24743 __assign$79 = Object.assign || function(t) {
24744 for (var s, i = 1, n = arguments.length; i < n; i++) {
24745 s = arguments[i];
24746 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24747 t[p] = s[p];
24748 }
24749 return t;
24750 };
24751 return __assign$79.apply(this, arguments);
24752 };
24753 var FormatAlignRightFontIcon = React.forwardRef(function FormatAlignRightFontIcon(props, ref) {
24754 return (React__default.createElement(FontIcon, __assign$79({}, props, { ref: ref }), "format_align_right"));
24755 });
24756
24757 var __assign$7a = (undefined && undefined.__assign) || function () {
24758 __assign$7a = Object.assign || function(t) {
24759 for (var s, i = 1, n = arguments.length; i < n; i++) {
24760 s = arguments[i];
24761 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24762 t[p] = s[p];
24763 }
24764 return t;
24765 };
24766 return __assign$7a.apply(this, arguments);
24767 };
24768 var FormatBoldFontIcon = React.forwardRef(function FormatBoldFontIcon(props, ref) {
24769 return (React__default.createElement(FontIcon, __assign$7a({}, props, { ref: ref }), "format_bold"));
24770 });
24771
24772 var __assign$7b = (undefined && undefined.__assign) || function () {
24773 __assign$7b = Object.assign || function(t) {
24774 for (var s, i = 1, n = arguments.length; i < n; i++) {
24775 s = arguments[i];
24776 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24777 t[p] = s[p];
24778 }
24779 return t;
24780 };
24781 return __assign$7b.apply(this, arguments);
24782 };
24783 var FormatClearFontIcon = React.forwardRef(function FormatClearFontIcon(props, ref) {
24784 return (React__default.createElement(FontIcon, __assign$7b({}, props, { ref: ref }), "format_clear"));
24785 });
24786
24787 var __assign$7c = (undefined && undefined.__assign) || function () {
24788 __assign$7c = Object.assign || function(t) {
24789 for (var s, i = 1, n = arguments.length; i < n; i++) {
24790 s = arguments[i];
24791 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24792 t[p] = s[p];
24793 }
24794 return t;
24795 };
24796 return __assign$7c.apply(this, arguments);
24797 };
24798 var FormatColorFillFontIcon = React.forwardRef(function FormatColorFillFontIcon(props, ref) {
24799 return (React__default.createElement(FontIcon, __assign$7c({}, props, { ref: ref }), "format_color_fill"));
24800 });
24801
24802 var __assign$7d = (undefined && undefined.__assign) || function () {
24803 __assign$7d = Object.assign || function(t) {
24804 for (var s, i = 1, n = arguments.length; i < n; i++) {
24805 s = arguments[i];
24806 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24807 t[p] = s[p];
24808 }
24809 return t;
24810 };
24811 return __assign$7d.apply(this, arguments);
24812 };
24813 var FormatColorResetFontIcon = React.forwardRef(function FormatColorResetFontIcon(props, ref) {
24814 return (React__default.createElement(FontIcon, __assign$7d({}, props, { ref: ref }), "format_color_reset"));
24815 });
24816
24817 var __assign$7e = (undefined && undefined.__assign) || function () {
24818 __assign$7e = Object.assign || function(t) {
24819 for (var s, i = 1, n = arguments.length; i < n; i++) {
24820 s = arguments[i];
24821 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24822 t[p] = s[p];
24823 }
24824 return t;
24825 };
24826 return __assign$7e.apply(this, arguments);
24827 };
24828 var FormatColorTextFontIcon = React.forwardRef(function FormatColorTextFontIcon(props, ref) {
24829 return (React__default.createElement(FontIcon, __assign$7e({}, props, { ref: ref }), "format_color_text"));
24830 });
24831
24832 var __assign$7f = (undefined && undefined.__assign) || function () {
24833 __assign$7f = Object.assign || function(t) {
24834 for (var s, i = 1, n = arguments.length; i < n; i++) {
24835 s = arguments[i];
24836 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24837 t[p] = s[p];
24838 }
24839 return t;
24840 };
24841 return __assign$7f.apply(this, arguments);
24842 };
24843 var FormatIndentDecreaseFontIcon = React.forwardRef(function FormatIndentDecreaseFontIcon(props, ref) {
24844 return (React__default.createElement(FontIcon, __assign$7f({}, props, { ref: ref }), "format_indent_decrease"));
24845 });
24846
24847 var __assign$7g = (undefined && undefined.__assign) || function () {
24848 __assign$7g = Object.assign || function(t) {
24849 for (var s, i = 1, n = arguments.length; i < n; i++) {
24850 s = arguments[i];
24851 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24852 t[p] = s[p];
24853 }
24854 return t;
24855 };
24856 return __assign$7g.apply(this, arguments);
24857 };
24858 var FormatIndentIncreaseFontIcon = React.forwardRef(function FormatIndentIncreaseFontIcon(props, ref) {
24859 return (React__default.createElement(FontIcon, __assign$7g({}, props, { ref: ref }), "format_indent_increase"));
24860 });
24861
24862 var __assign$7h = (undefined && undefined.__assign) || function () {
24863 __assign$7h = Object.assign || function(t) {
24864 for (var s, i = 1, n = arguments.length; i < n; i++) {
24865 s = arguments[i];
24866 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24867 t[p] = s[p];
24868 }
24869 return t;
24870 };
24871 return __assign$7h.apply(this, arguments);
24872 };
24873 var FormatItalicFontIcon = React.forwardRef(function FormatItalicFontIcon(props, ref) {
24874 return (React__default.createElement(FontIcon, __assign$7h({}, props, { ref: ref }), "format_italic"));
24875 });
24876
24877 var __assign$7i = (undefined && undefined.__assign) || function () {
24878 __assign$7i = Object.assign || function(t) {
24879 for (var s, i = 1, n = arguments.length; i < n; i++) {
24880 s = arguments[i];
24881 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24882 t[p] = s[p];
24883 }
24884 return t;
24885 };
24886 return __assign$7i.apply(this, arguments);
24887 };
24888 var FormatLineSpacingFontIcon = React.forwardRef(function FormatLineSpacingFontIcon(props, ref) {
24889 return (React__default.createElement(FontIcon, __assign$7i({}, props, { ref: ref }), "format_line_spacing"));
24890 });
24891
24892 var __assign$7j = (undefined && undefined.__assign) || function () {
24893 __assign$7j = Object.assign || function(t) {
24894 for (var s, i = 1, n = arguments.length; i < n; i++) {
24895 s = arguments[i];
24896 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24897 t[p] = s[p];
24898 }
24899 return t;
24900 };
24901 return __assign$7j.apply(this, arguments);
24902 };
24903 var FormatListBulletedFontIcon = React.forwardRef(function FormatListBulletedFontIcon(props, ref) {
24904 return (React__default.createElement(FontIcon, __assign$7j({}, props, { ref: ref }), "format_list_bulleted"));
24905 });
24906
24907 var __assign$7k = (undefined && undefined.__assign) || function () {
24908 __assign$7k = Object.assign || function(t) {
24909 for (var s, i = 1, n = arguments.length; i < n; i++) {
24910 s = arguments[i];
24911 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24912 t[p] = s[p];
24913 }
24914 return t;
24915 };
24916 return __assign$7k.apply(this, arguments);
24917 };
24918 var FormatListNumberedFontIcon = React.forwardRef(function FormatListNumberedFontIcon(props, ref) {
24919 return (React__default.createElement(FontIcon, __assign$7k({}, props, { ref: ref }), "format_list_numbered"));
24920 });
24921
24922 var __assign$7l = (undefined && undefined.__assign) || function () {
24923 __assign$7l = Object.assign || function(t) {
24924 for (var s, i = 1, n = arguments.length; i < n; i++) {
24925 s = arguments[i];
24926 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24927 t[p] = s[p];
24928 }
24929 return t;
24930 };
24931 return __assign$7l.apply(this, arguments);
24932 };
24933 var FormatPaintFontIcon = React.forwardRef(function FormatPaintFontIcon(props, ref) {
24934 return (React__default.createElement(FontIcon, __assign$7l({}, props, { ref: ref }), "format_paint"));
24935 });
24936
24937 var __assign$7m = (undefined && undefined.__assign) || function () {
24938 __assign$7m = Object.assign || function(t) {
24939 for (var s, i = 1, n = arguments.length; i < n; i++) {
24940 s = arguments[i];
24941 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24942 t[p] = s[p];
24943 }
24944 return t;
24945 };
24946 return __assign$7m.apply(this, arguments);
24947 };
24948 var FormatQuoteFontIcon = React.forwardRef(function FormatQuoteFontIcon(props, ref) {
24949 return (React__default.createElement(FontIcon, __assign$7m({}, props, { ref: ref }), "format_quote"));
24950 });
24951
24952 var __assign$7n = (undefined && undefined.__assign) || function () {
24953 __assign$7n = Object.assign || function(t) {
24954 for (var s, i = 1, n = arguments.length; i < n; i++) {
24955 s = arguments[i];
24956 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24957 t[p] = s[p];
24958 }
24959 return t;
24960 };
24961 return __assign$7n.apply(this, arguments);
24962 };
24963 var FormatShapesFontIcon = React.forwardRef(function FormatShapesFontIcon(props, ref) {
24964 return (React__default.createElement(FontIcon, __assign$7n({}, props, { ref: ref }), "format_shapes"));
24965 });
24966
24967 var __assign$7o = (undefined && undefined.__assign) || function () {
24968 __assign$7o = Object.assign || function(t) {
24969 for (var s, i = 1, n = arguments.length; i < n; i++) {
24970 s = arguments[i];
24971 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24972 t[p] = s[p];
24973 }
24974 return t;
24975 };
24976 return __assign$7o.apply(this, arguments);
24977 };
24978 var FormatSizeFontIcon = React.forwardRef(function FormatSizeFontIcon(props, ref) {
24979 return (React__default.createElement(FontIcon, __assign$7o({}, props, { ref: ref }), "format_size"));
24980 });
24981
24982 var __assign$7p = (undefined && undefined.__assign) || function () {
24983 __assign$7p = Object.assign || function(t) {
24984 for (var s, i = 1, n = arguments.length; i < n; i++) {
24985 s = arguments[i];
24986 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24987 t[p] = s[p];
24988 }
24989 return t;
24990 };
24991 return __assign$7p.apply(this, arguments);
24992 };
24993 var FormatStrikethroughFontIcon = React.forwardRef(function FormatStrikethroughFontIcon(props, ref) {
24994 return (React__default.createElement(FontIcon, __assign$7p({}, props, { ref: ref }), "format_strikethrough"));
24995 });
24996
24997 var __assign$7q = (undefined && undefined.__assign) || function () {
24998 __assign$7q = Object.assign || function(t) {
24999 for (var s, i = 1, n = arguments.length; i < n; i++) {
25000 s = arguments[i];
25001 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25002 t[p] = s[p];
25003 }
25004 return t;
25005 };
25006 return __assign$7q.apply(this, arguments);
25007 };
25008 var FormatTextdirectionLToRFontIcon = React.forwardRef(function FormatTextdirectionLToRFontIcon(props, ref) {
25009 return (React__default.createElement(FontIcon, __assign$7q({}, props, { ref: ref }), "format_textdirection_l_to_r"));
25010 });
25011
25012 var __assign$7r = (undefined && undefined.__assign) || function () {
25013 __assign$7r = Object.assign || function(t) {
25014 for (var s, i = 1, n = arguments.length; i < n; i++) {
25015 s = arguments[i];
25016 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25017 t[p] = s[p];
25018 }
25019 return t;
25020 };
25021 return __assign$7r.apply(this, arguments);
25022 };
25023 var FormatTextdirectionRToLFontIcon = React.forwardRef(function FormatTextdirectionRToLFontIcon(props, ref) {
25024 return (React__default.createElement(FontIcon, __assign$7r({}, props, { ref: ref }), "format_textdirection_r_to_l"));
25025 });
25026
25027 var __assign$7s = (undefined && undefined.__assign) || function () {
25028 __assign$7s = Object.assign || function(t) {
25029 for (var s, i = 1, n = arguments.length; i < n; i++) {
25030 s = arguments[i];
25031 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25032 t[p] = s[p];
25033 }
25034 return t;
25035 };
25036 return __assign$7s.apply(this, arguments);
25037 };
25038 var FormatUnderlinedFontIcon = React.forwardRef(function FormatUnderlinedFontIcon(props, ref) {
25039 return (React__default.createElement(FontIcon, __assign$7s({}, props, { ref: ref }), "format_underlined"));
25040 });
25041
25042 var __assign$7t = (undefined && undefined.__assign) || function () {
25043 __assign$7t = Object.assign || function(t) {
25044 for (var s, i = 1, n = arguments.length; i < n; i++) {
25045 s = arguments[i];
25046 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25047 t[p] = s[p];
25048 }
25049 return t;
25050 };
25051 return __assign$7t.apply(this, arguments);
25052 };
25053 var ForumFontIcon = React.forwardRef(function ForumFontIcon(props, ref) {
25054 return (React__default.createElement(FontIcon, __assign$7t({}, props, { ref: ref }), "forum"));
25055 });
25056
25057 var __assign$7u = (undefined && undefined.__assign) || function () {
25058 __assign$7u = Object.assign || function(t) {
25059 for (var s, i = 1, n = arguments.length; i < n; i++) {
25060 s = arguments[i];
25061 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25062 t[p] = s[p];
25063 }
25064 return t;
25065 };
25066 return __assign$7u.apply(this, arguments);
25067 };
25068 var Forward10FontIcon = React.forwardRef(function Forward10FontIcon(props, ref) {
25069 return (React__default.createElement(FontIcon, __assign$7u({}, props, { ref: ref }), "forward_10"));
25070 });
25071
25072 var __assign$7v = (undefined && undefined.__assign) || function () {
25073 __assign$7v = Object.assign || function(t) {
25074 for (var s, i = 1, n = arguments.length; i < n; i++) {
25075 s = arguments[i];
25076 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25077 t[p] = s[p];
25078 }
25079 return t;
25080 };
25081 return __assign$7v.apply(this, arguments);
25082 };
25083 var Forward30FontIcon = React.forwardRef(function Forward30FontIcon(props, ref) {
25084 return (React__default.createElement(FontIcon, __assign$7v({}, props, { ref: ref }), "forward_30"));
25085 });
25086
25087 var __assign$7w = (undefined && undefined.__assign) || function () {
25088 __assign$7w = Object.assign || function(t) {
25089 for (var s, i = 1, n = arguments.length; i < n; i++) {
25090 s = arguments[i];
25091 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25092 t[p] = s[p];
25093 }
25094 return t;
25095 };
25096 return __assign$7w.apply(this, arguments);
25097 };
25098 var Forward5FontIcon = React.forwardRef(function Forward5FontIcon(props, ref) {
25099 return (React__default.createElement(FontIcon, __assign$7w({}, props, { ref: ref }), "forward_5"));
25100 });
25101
25102 var __assign$7x = (undefined && undefined.__assign) || function () {
25103 __assign$7x = Object.assign || function(t) {
25104 for (var s, i = 1, n = arguments.length; i < n; i++) {
25105 s = arguments[i];
25106 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25107 t[p] = s[p];
25108 }
25109 return t;
25110 };
25111 return __assign$7x.apply(this, arguments);
25112 };
25113 var ForwardFontIcon = React.forwardRef(function ForwardFontIcon(props, ref) {
25114 return (React__default.createElement(FontIcon, __assign$7x({}, props, { ref: ref }), "forward"));
25115 });
25116
25117 var __assign$7y = (undefined && undefined.__assign) || function () {
25118 __assign$7y = Object.assign || function(t) {
25119 for (var s, i = 1, n = arguments.length; i < n; i++) {
25120 s = arguments[i];
25121 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25122 t[p] = s[p];
25123 }
25124 return t;
25125 };
25126 return __assign$7y.apply(this, arguments);
25127 };
25128 var FreeBreakfastFontIcon = React.forwardRef(function FreeBreakfastFontIcon(props, ref) {
25129 return (React__default.createElement(FontIcon, __assign$7y({}, props, { ref: ref }), "free_breakfast"));
25130 });
25131
25132 var __assign$7z = (undefined && undefined.__assign) || function () {
25133 __assign$7z = Object.assign || function(t) {
25134 for (var s, i = 1, n = arguments.length; i < n; i++) {
25135 s = arguments[i];
25136 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25137 t[p] = s[p];
25138 }
25139 return t;
25140 };
25141 return __assign$7z.apply(this, arguments);
25142 };
25143 var FullscreenExitFontIcon = React.forwardRef(function FullscreenExitFontIcon(props, ref) {
25144 return (React__default.createElement(FontIcon, __assign$7z({}, props, { ref: ref }), "fullscreen_exit"));
25145 });
25146
25147 var __assign$7A = (undefined && undefined.__assign) || function () {
25148 __assign$7A = Object.assign || function(t) {
25149 for (var s, i = 1, n = arguments.length; i < n; i++) {
25150 s = arguments[i];
25151 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25152 t[p] = s[p];
25153 }
25154 return t;
25155 };
25156 return __assign$7A.apply(this, arguments);
25157 };
25158 var FullscreenFontIcon = React.forwardRef(function FullscreenFontIcon(props, ref) {
25159 return (React__default.createElement(FontIcon, __assign$7A({}, props, { ref: ref }), "fullscreen"));
25160 });
25161
25162 var __assign$7B = (undefined && undefined.__assign) || function () {
25163 __assign$7B = Object.assign || function(t) {
25164 for (var s, i = 1, n = arguments.length; i < n; i++) {
25165 s = arguments[i];
25166 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25167 t[p] = s[p];
25168 }
25169 return t;
25170 };
25171 return __assign$7B.apply(this, arguments);
25172 };
25173 var FunctionsFontIcon = React.forwardRef(function FunctionsFontIcon(props, ref) {
25174 return (React__default.createElement(FontIcon, __assign$7B({}, props, { ref: ref }), "functions"));
25175 });
25176
25177 var __assign$7C = (undefined && undefined.__assign) || function () {
25178 __assign$7C = Object.assign || function(t) {
25179 for (var s, i = 1, n = arguments.length; i < n; i++) {
25180 s = arguments[i];
25181 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25182 t[p] = s[p];
25183 }
25184 return t;
25185 };
25186 return __assign$7C.apply(this, arguments);
25187 };
25188 var GTranslateFontIcon = React.forwardRef(function GTranslateFontIcon(props, ref) {
25189 return (React__default.createElement(FontIcon, __assign$7C({}, props, { ref: ref }), "g_translate"));
25190 });
25191
25192 var __assign$7D = (undefined && undefined.__assign) || function () {
25193 __assign$7D = Object.assign || function(t) {
25194 for (var s, i = 1, n = arguments.length; i < n; i++) {
25195 s = arguments[i];
25196 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25197 t[p] = s[p];
25198 }
25199 return t;
25200 };
25201 return __assign$7D.apply(this, arguments);
25202 };
25203 var GamepadFontIcon = React.forwardRef(function GamepadFontIcon(props, ref) {
25204 return (React__default.createElement(FontIcon, __assign$7D({}, props, { ref: ref }), "gamepad"));
25205 });
25206
25207 var __assign$7E = (undefined && undefined.__assign) || function () {
25208 __assign$7E = Object.assign || function(t) {
25209 for (var s, i = 1, n = arguments.length; i < n; i++) {
25210 s = arguments[i];
25211 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25212 t[p] = s[p];
25213 }
25214 return t;
25215 };
25216 return __assign$7E.apply(this, arguments);
25217 };
25218 var GamesFontIcon = React.forwardRef(function GamesFontIcon(props, ref) {
25219 return (React__default.createElement(FontIcon, __assign$7E({}, props, { ref: ref }), "games"));
25220 });
25221
25222 var __assign$7F = (undefined && undefined.__assign) || function () {
25223 __assign$7F = Object.assign || function(t) {
25224 for (var s, i = 1, n = arguments.length; i < n; i++) {
25225 s = arguments[i];
25226 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25227 t[p] = s[p];
25228 }
25229 return t;
25230 };
25231 return __assign$7F.apply(this, arguments);
25232 };
25233 var GavelFontIcon = React.forwardRef(function GavelFontIcon(props, ref) {
25234 return (React__default.createElement(FontIcon, __assign$7F({}, props, { ref: ref }), "gavel"));
25235 });
25236
25237 var __assign$7G = (undefined && undefined.__assign) || function () {
25238 __assign$7G = Object.assign || function(t) {
25239 for (var s, i = 1, n = arguments.length; i < n; i++) {
25240 s = arguments[i];
25241 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25242 t[p] = s[p];
25243 }
25244 return t;
25245 };
25246 return __assign$7G.apply(this, arguments);
25247 };
25248 var GestureFontIcon = React.forwardRef(function GestureFontIcon(props, ref) {
25249 return (React__default.createElement(FontIcon, __assign$7G({}, props, { ref: ref }), "gesture"));
25250 });
25251
25252 var __assign$7H = (undefined && undefined.__assign) || function () {
25253 __assign$7H = Object.assign || function(t) {
25254 for (var s, i = 1, n = arguments.length; i < n; i++) {
25255 s = arguments[i];
25256 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25257 t[p] = s[p];
25258 }
25259 return t;
25260 };
25261 return __assign$7H.apply(this, arguments);
25262 };
25263 var GetAppFontIcon = React.forwardRef(function GetAppFontIcon(props, ref) {
25264 return (React__default.createElement(FontIcon, __assign$7H({}, props, { ref: ref }), "get_app"));
25265 });
25266
25267 var __assign$7I = (undefined && undefined.__assign) || function () {
25268 __assign$7I = Object.assign || function(t) {
25269 for (var s, i = 1, n = arguments.length; i < n; i++) {
25270 s = arguments[i];
25271 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25272 t[p] = s[p];
25273 }
25274 return t;
25275 };
25276 return __assign$7I.apply(this, arguments);
25277 };
25278 var GifFontIcon = React.forwardRef(function GifFontIcon(props, ref) {
25279 return (React__default.createElement(FontIcon, __assign$7I({}, props, { ref: ref }), "gif"));
25280 });
25281
25282 var __assign$7J = (undefined && undefined.__assign) || function () {
25283 __assign$7J = Object.assign || function(t) {
25284 for (var s, i = 1, n = arguments.length; i < n; i++) {
25285 s = arguments[i];
25286 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25287 t[p] = s[p];
25288 }
25289 return t;
25290 };
25291 return __assign$7J.apply(this, arguments);
25292 };
25293 var GolfCourseFontIcon = React.forwardRef(function GolfCourseFontIcon(props, ref) {
25294 return (React__default.createElement(FontIcon, __assign$7J({}, props, { ref: ref }), "golf_course"));
25295 });
25296
25297 var __assign$7K = (undefined && undefined.__assign) || function () {
25298 __assign$7K = Object.assign || function(t) {
25299 for (var s, i = 1, n = arguments.length; i < n; i++) {
25300 s = arguments[i];
25301 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25302 t[p] = s[p];
25303 }
25304 return t;
25305 };
25306 return __assign$7K.apply(this, arguments);
25307 };
25308 var GpsFixedFontIcon = React.forwardRef(function GpsFixedFontIcon(props, ref) {
25309 return (React__default.createElement(FontIcon, __assign$7K({}, props, { ref: ref }), "gps_fixed"));
25310 });
25311
25312 var __assign$7L = (undefined && undefined.__assign) || function () {
25313 __assign$7L = Object.assign || function(t) {
25314 for (var s, i = 1, n = arguments.length; i < n; i++) {
25315 s = arguments[i];
25316 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25317 t[p] = s[p];
25318 }
25319 return t;
25320 };
25321 return __assign$7L.apply(this, arguments);
25322 };
25323 var GpsNotFixedFontIcon = React.forwardRef(function GpsNotFixedFontIcon(props, ref) {
25324 return (React__default.createElement(FontIcon, __assign$7L({}, props, { ref: ref }), "gps_not_fixed"));
25325 });
25326
25327 var __assign$7M = (undefined && undefined.__assign) || function () {
25328 __assign$7M = Object.assign || function(t) {
25329 for (var s, i = 1, n = arguments.length; i < n; i++) {
25330 s = arguments[i];
25331 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25332 t[p] = s[p];
25333 }
25334 return t;
25335 };
25336 return __assign$7M.apply(this, arguments);
25337 };
25338 var GpsOffFontIcon = React.forwardRef(function GpsOffFontIcon(props, ref) {
25339 return (React__default.createElement(FontIcon, __assign$7M({}, props, { ref: ref }), "gps_off"));
25340 });
25341
25342 var __assign$7N = (undefined && undefined.__assign) || function () {
25343 __assign$7N = Object.assign || function(t) {
25344 for (var s, i = 1, n = arguments.length; i < n; i++) {
25345 s = arguments[i];
25346 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25347 t[p] = s[p];
25348 }
25349 return t;
25350 };
25351 return __assign$7N.apply(this, arguments);
25352 };
25353 var GradeFontIcon = React.forwardRef(function GradeFontIcon(props, ref) {
25354 return (React__default.createElement(FontIcon, __assign$7N({}, props, { ref: ref }), "grade"));
25355 });
25356
25357 var __assign$7O = (undefined && undefined.__assign) || function () {
25358 __assign$7O = Object.assign || function(t) {
25359 for (var s, i = 1, n = arguments.length; i < n; i++) {
25360 s = arguments[i];
25361 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25362 t[p] = s[p];
25363 }
25364 return t;
25365 };
25366 return __assign$7O.apply(this, arguments);
25367 };
25368 var GradientFontIcon = React.forwardRef(function GradientFontIcon(props, ref) {
25369 return (React__default.createElement(FontIcon, __assign$7O({}, props, { ref: ref }), "gradient"));
25370 });
25371
25372 var __assign$7P = (undefined && undefined.__assign) || function () {
25373 __assign$7P = Object.assign || function(t) {
25374 for (var s, i = 1, n = arguments.length; i < n; i++) {
25375 s = arguments[i];
25376 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25377 t[p] = s[p];
25378 }
25379 return t;
25380 };
25381 return __assign$7P.apply(this, arguments);
25382 };
25383 var GrainFontIcon = React.forwardRef(function GrainFontIcon(props, ref) {
25384 return (React__default.createElement(FontIcon, __assign$7P({}, props, { ref: ref }), "grain"));
25385 });
25386
25387 var __assign$7Q = (undefined && undefined.__assign) || function () {
25388 __assign$7Q = Object.assign || function(t) {
25389 for (var s, i = 1, n = arguments.length; i < n; i++) {
25390 s = arguments[i];
25391 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25392 t[p] = s[p];
25393 }
25394 return t;
25395 };
25396 return __assign$7Q.apply(this, arguments);
25397 };
25398 var GraphicEqFontIcon = React.forwardRef(function GraphicEqFontIcon(props, ref) {
25399 return (React__default.createElement(FontIcon, __assign$7Q({}, props, { ref: ref }), "graphic_eq"));
25400 });
25401
25402 var __assign$7R = (undefined && undefined.__assign) || function () {
25403 __assign$7R = Object.assign || function(t) {
25404 for (var s, i = 1, n = arguments.length; i < n; i++) {
25405 s = arguments[i];
25406 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25407 t[p] = s[p];
25408 }
25409 return t;
25410 };
25411 return __assign$7R.apply(this, arguments);
25412 };
25413 var GridOffFontIcon = React.forwardRef(function GridOffFontIcon(props, ref) {
25414 return (React__default.createElement(FontIcon, __assign$7R({}, props, { ref: ref }), "grid_off"));
25415 });
25416
25417 var __assign$7S = (undefined && undefined.__assign) || function () {
25418 __assign$7S = Object.assign || function(t) {
25419 for (var s, i = 1, n = arguments.length; i < n; i++) {
25420 s = arguments[i];
25421 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25422 t[p] = s[p];
25423 }
25424 return t;
25425 };
25426 return __assign$7S.apply(this, arguments);
25427 };
25428 var GridOnFontIcon = React.forwardRef(function GridOnFontIcon(props, ref) {
25429 return (React__default.createElement(FontIcon, __assign$7S({}, props, { ref: ref }), "grid_on"));
25430 });
25431
25432 var __assign$7T = (undefined && undefined.__assign) || function () {
25433 __assign$7T = Object.assign || function(t) {
25434 for (var s, i = 1, n = arguments.length; i < n; i++) {
25435 s = arguments[i];
25436 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25437 t[p] = s[p];
25438 }
25439 return t;
25440 };
25441 return __assign$7T.apply(this, arguments);
25442 };
25443 var GroupAddFontIcon = React.forwardRef(function GroupAddFontIcon(props, ref) {
25444 return (React__default.createElement(FontIcon, __assign$7T({}, props, { ref: ref }), "group_add"));
25445 });
25446
25447 var __assign$7U = (undefined && undefined.__assign) || function () {
25448 __assign$7U = Object.assign || function(t) {
25449 for (var s, i = 1, n = arguments.length; i < n; i++) {
25450 s = arguments[i];
25451 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25452 t[p] = s[p];
25453 }
25454 return t;
25455 };
25456 return __assign$7U.apply(this, arguments);
25457 };
25458 var GroupWorkFontIcon = React.forwardRef(function GroupWorkFontIcon(props, ref) {
25459 return (React__default.createElement(FontIcon, __assign$7U({}, props, { ref: ref }), "group_work"));
25460 });
25461
25462 var __assign$7V = (undefined && undefined.__assign) || function () {
25463 __assign$7V = Object.assign || function(t) {
25464 for (var s, i = 1, n = arguments.length; i < n; i++) {
25465 s = arguments[i];
25466 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25467 t[p] = s[p];
25468 }
25469 return t;
25470 };
25471 return __assign$7V.apply(this, arguments);
25472 };
25473 var GroupFontIcon = React.forwardRef(function GroupFontIcon(props, ref) {
25474 return (React__default.createElement(FontIcon, __assign$7V({}, props, { ref: ref }), "group"));
25475 });
25476
25477 var __assign$7W = (undefined && undefined.__assign) || function () {
25478 __assign$7W = Object.assign || function(t) {
25479 for (var s, i = 1, n = arguments.length; i < n; i++) {
25480 s = arguments[i];
25481 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25482 t[p] = s[p];
25483 }
25484 return t;
25485 };
25486 return __assign$7W.apply(this, arguments);
25487 };
25488 var HdFontIcon = React.forwardRef(function HdFontIcon(props, ref) {
25489 return (React__default.createElement(FontIcon, __assign$7W({}, props, { ref: ref }), "hd"));
25490 });
25491
25492 var __assign$7X = (undefined && undefined.__assign) || function () {
25493 __assign$7X = Object.assign || function(t) {
25494 for (var s, i = 1, n = arguments.length; i < n; i++) {
25495 s = arguments[i];
25496 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25497 t[p] = s[p];
25498 }
25499 return t;
25500 };
25501 return __assign$7X.apply(this, arguments);
25502 };
25503 var HdrOffFontIcon = React.forwardRef(function HdrOffFontIcon(props, ref) {
25504 return (React__default.createElement(FontIcon, __assign$7X({}, props, { ref: ref }), "hdr_off"));
25505 });
25506
25507 var __assign$7Y = (undefined && undefined.__assign) || function () {
25508 __assign$7Y = Object.assign || function(t) {
25509 for (var s, i = 1, n = arguments.length; i < n; i++) {
25510 s = arguments[i];
25511 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25512 t[p] = s[p];
25513 }
25514 return t;
25515 };
25516 return __assign$7Y.apply(this, arguments);
25517 };
25518 var HdrOnFontIcon = React.forwardRef(function HdrOnFontIcon(props, ref) {
25519 return (React__default.createElement(FontIcon, __assign$7Y({}, props, { ref: ref }), "hdr_on"));
25520 });
25521
25522 var __assign$7Z = (undefined && undefined.__assign) || function () {
25523 __assign$7Z = Object.assign || function(t) {
25524 for (var s, i = 1, n = arguments.length; i < n; i++) {
25525 s = arguments[i];
25526 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25527 t[p] = s[p];
25528 }
25529 return t;
25530 };
25531 return __assign$7Z.apply(this, arguments);
25532 };
25533 var HdrStrongFontIcon = React.forwardRef(function HdrStrongFontIcon(props, ref) {
25534 return (React__default.createElement(FontIcon, __assign$7Z({}, props, { ref: ref }), "hdr_strong"));
25535 });
25536
25537 var __assign$7_ = (undefined && undefined.__assign) || function () {
25538 __assign$7_ = Object.assign || function(t) {
25539 for (var s, i = 1, n = arguments.length; i < n; i++) {
25540 s = arguments[i];
25541 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25542 t[p] = s[p];
25543 }
25544 return t;
25545 };
25546 return __assign$7_.apply(this, arguments);
25547 };
25548 var HdrWeakFontIcon = React.forwardRef(function HdrWeakFontIcon(props, ref) {
25549 return (React__default.createElement(FontIcon, __assign$7_({}, props, { ref: ref }), "hdr_weak"));
25550 });
25551
25552 var __assign$7$ = (undefined && undefined.__assign) || function () {
25553 __assign$7$ = Object.assign || function(t) {
25554 for (var s, i = 1, n = arguments.length; i < n; i++) {
25555 s = arguments[i];
25556 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25557 t[p] = s[p];
25558 }
25559 return t;
25560 };
25561 return __assign$7$.apply(this, arguments);
25562 };
25563 var HeadsetMicFontIcon = React.forwardRef(function HeadsetMicFontIcon(props, ref) {
25564 return (React__default.createElement(FontIcon, __assign$7$({}, props, { ref: ref }), "headset_mic"));
25565 });
25566
25567 var __assign$80 = (undefined && undefined.__assign) || function () {
25568 __assign$80 = Object.assign || function(t) {
25569 for (var s, i = 1, n = arguments.length; i < n; i++) {
25570 s = arguments[i];
25571 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25572 t[p] = s[p];
25573 }
25574 return t;
25575 };
25576 return __assign$80.apply(this, arguments);
25577 };
25578 var HeadsetFontIcon = React.forwardRef(function HeadsetFontIcon(props, ref) {
25579 return (React__default.createElement(FontIcon, __assign$80({}, props, { ref: ref }), "headset"));
25580 });
25581
25582 var __assign$81 = (undefined && undefined.__assign) || function () {
25583 __assign$81 = Object.assign || function(t) {
25584 for (var s, i = 1, n = arguments.length; i < n; i++) {
25585 s = arguments[i];
25586 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25587 t[p] = s[p];
25588 }
25589 return t;
25590 };
25591 return __assign$81.apply(this, arguments);
25592 };
25593 var HealingFontIcon = React.forwardRef(function HealingFontIcon(props, ref) {
25594 return (React__default.createElement(FontIcon, __assign$81({}, props, { ref: ref }), "healing"));
25595 });
25596
25597 var __assign$82 = (undefined && undefined.__assign) || function () {
25598 __assign$82 = Object.assign || function(t) {
25599 for (var s, i = 1, n = arguments.length; i < n; i++) {
25600 s = arguments[i];
25601 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25602 t[p] = s[p];
25603 }
25604 return t;
25605 };
25606 return __assign$82.apply(this, arguments);
25607 };
25608 var HearingFontIcon = React.forwardRef(function HearingFontIcon(props, ref) {
25609 return (React__default.createElement(FontIcon, __assign$82({}, props, { ref: ref }), "hearing"));
25610 });
25611
25612 var __assign$83 = (undefined && undefined.__assign) || function () {
25613 __assign$83 = Object.assign || function(t) {
25614 for (var s, i = 1, n = arguments.length; i < n; i++) {
25615 s = arguments[i];
25616 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25617 t[p] = s[p];
25618 }
25619 return t;
25620 };
25621 return __assign$83.apply(this, arguments);
25622 };
25623 var HelpOutlineFontIcon = React.forwardRef(function HelpOutlineFontIcon(props, ref) {
25624 return (React__default.createElement(FontIcon, __assign$83({}, props, { ref: ref }), "help_outline"));
25625 });
25626
25627 var __assign$84 = (undefined && undefined.__assign) || function () {
25628 __assign$84 = Object.assign || function(t) {
25629 for (var s, i = 1, n = arguments.length; i < n; i++) {
25630 s = arguments[i];
25631 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25632 t[p] = s[p];
25633 }
25634 return t;
25635 };
25636 return __assign$84.apply(this, arguments);
25637 };
25638 var HelpFontIcon = React.forwardRef(function HelpFontIcon(props, ref) {
25639 return (React__default.createElement(FontIcon, __assign$84({}, props, { ref: ref }), "help"));
25640 });
25641
25642 var __assign$85 = (undefined && undefined.__assign) || function () {
25643 __assign$85 = Object.assign || function(t) {
25644 for (var s, i = 1, n = arguments.length; i < n; i++) {
25645 s = arguments[i];
25646 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25647 t[p] = s[p];
25648 }
25649 return t;
25650 };
25651 return __assign$85.apply(this, arguments);
25652 };
25653 var HighQualityFontIcon = React.forwardRef(function HighQualityFontIcon(props, ref) {
25654 return (React__default.createElement(FontIcon, __assign$85({}, props, { ref: ref }), "high_quality"));
25655 });
25656
25657 var __assign$86 = (undefined && undefined.__assign) || function () {
25658 __assign$86 = Object.assign || function(t) {
25659 for (var s, i = 1, n = arguments.length; i < n; i++) {
25660 s = arguments[i];
25661 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25662 t[p] = s[p];
25663 }
25664 return t;
25665 };
25666 return __assign$86.apply(this, arguments);
25667 };
25668 var HighlightOffFontIcon = React.forwardRef(function HighlightOffFontIcon(props, ref) {
25669 return (React__default.createElement(FontIcon, __assign$86({}, props, { ref: ref }), "highlight_off"));
25670 });
25671
25672 var __assign$87 = (undefined && undefined.__assign) || function () {
25673 __assign$87 = Object.assign || function(t) {
25674 for (var s, i = 1, n = arguments.length; i < n; i++) {
25675 s = arguments[i];
25676 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25677 t[p] = s[p];
25678 }
25679 return t;
25680 };
25681 return __assign$87.apply(this, arguments);
25682 };
25683 var HighlightFontIcon = React.forwardRef(function HighlightFontIcon(props, ref) {
25684 return (React__default.createElement(FontIcon, __assign$87({}, props, { ref: ref }), "highlight"));
25685 });
25686
25687 var __assign$88 = (undefined && undefined.__assign) || function () {
25688 __assign$88 = Object.assign || function(t) {
25689 for (var s, i = 1, n = arguments.length; i < n; i++) {
25690 s = arguments[i];
25691 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25692 t[p] = s[p];
25693 }
25694 return t;
25695 };
25696 return __assign$88.apply(this, arguments);
25697 };
25698 var HistoryFontIcon = React.forwardRef(function HistoryFontIcon(props, ref) {
25699 return (React__default.createElement(FontIcon, __assign$88({}, props, { ref: ref }), "history"));
25700 });
25701
25702 var __assign$89 = (undefined && undefined.__assign) || function () {
25703 __assign$89 = Object.assign || function(t) {
25704 for (var s, i = 1, n = arguments.length; i < n; i++) {
25705 s = arguments[i];
25706 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25707 t[p] = s[p];
25708 }
25709 return t;
25710 };
25711 return __assign$89.apply(this, arguments);
25712 };
25713 var HomeFontIcon = React.forwardRef(function HomeFontIcon(props, ref) {
25714 return (React__default.createElement(FontIcon, __assign$89({}, props, { ref: ref }), "home"));
25715 });
25716
25717 var __assign$8a = (undefined && undefined.__assign) || function () {
25718 __assign$8a = Object.assign || function(t) {
25719 for (var s, i = 1, n = arguments.length; i < n; i++) {
25720 s = arguments[i];
25721 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25722 t[p] = s[p];
25723 }
25724 return t;
25725 };
25726 return __assign$8a.apply(this, arguments);
25727 };
25728 var HotTubFontIcon = React.forwardRef(function HotTubFontIcon(props, ref) {
25729 return (React__default.createElement(FontIcon, __assign$8a({}, props, { ref: ref }), "hot_tub"));
25730 });
25731
25732 var __assign$8b = (undefined && undefined.__assign) || function () {
25733 __assign$8b = Object.assign || function(t) {
25734 for (var s, i = 1, n = arguments.length; i < n; i++) {
25735 s = arguments[i];
25736 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25737 t[p] = s[p];
25738 }
25739 return t;
25740 };
25741 return __assign$8b.apply(this, arguments);
25742 };
25743 var HotelFontIcon = React.forwardRef(function HotelFontIcon(props, ref) {
25744 return (React__default.createElement(FontIcon, __assign$8b({}, props, { ref: ref }), "hotel"));
25745 });
25746
25747 var __assign$8c = (undefined && undefined.__assign) || function () {
25748 __assign$8c = Object.assign || function(t) {
25749 for (var s, i = 1, n = arguments.length; i < n; i++) {
25750 s = arguments[i];
25751 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25752 t[p] = s[p];
25753 }
25754 return t;
25755 };
25756 return __assign$8c.apply(this, arguments);
25757 };
25758 var HourglassEmptyFontIcon = React.forwardRef(function HourglassEmptyFontIcon(props, ref) {
25759 return (React__default.createElement(FontIcon, __assign$8c({}, props, { ref: ref }), "hourglass_empty"));
25760 });
25761
25762 var __assign$8d = (undefined && undefined.__assign) || function () {
25763 __assign$8d = Object.assign || function(t) {
25764 for (var s, i = 1, n = arguments.length; i < n; i++) {
25765 s = arguments[i];
25766 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25767 t[p] = s[p];
25768 }
25769 return t;
25770 };
25771 return __assign$8d.apply(this, arguments);
25772 };
25773 var HourglassFullFontIcon = React.forwardRef(function HourglassFullFontIcon(props, ref) {
25774 return (React__default.createElement(FontIcon, __assign$8d({}, props, { ref: ref }), "hourglass_full"));
25775 });
25776
25777 var __assign$8e = (undefined && undefined.__assign) || function () {
25778 __assign$8e = Object.assign || function(t) {
25779 for (var s, i = 1, n = arguments.length; i < n; i++) {
25780 s = arguments[i];
25781 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25782 t[p] = s[p];
25783 }
25784 return t;
25785 };
25786 return __assign$8e.apply(this, arguments);
25787 };
25788 var HttpFontIcon = React.forwardRef(function HttpFontIcon(props, ref) {
25789 return (React__default.createElement(FontIcon, __assign$8e({}, props, { ref: ref }), "http"));
25790 });
25791
25792 var __assign$8f = (undefined && undefined.__assign) || function () {
25793 __assign$8f = Object.assign || function(t) {
25794 for (var s, i = 1, n = arguments.length; i < n; i++) {
25795 s = arguments[i];
25796 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25797 t[p] = s[p];
25798 }
25799 return t;
25800 };
25801 return __assign$8f.apply(this, arguments);
25802 };
25803 var HttpsFontIcon = React.forwardRef(function HttpsFontIcon(props, ref) {
25804 return (React__default.createElement(FontIcon, __assign$8f({}, props, { ref: ref }), "https"));
25805 });
25806
25807 var __assign$8g = (undefined && undefined.__assign) || function () {
25808 __assign$8g = Object.assign || function(t) {
25809 for (var s, i = 1, n = arguments.length; i < n; i++) {
25810 s = arguments[i];
25811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25812 t[p] = s[p];
25813 }
25814 return t;
25815 };
25816 return __assign$8g.apply(this, arguments);
25817 };
25818 var ImageAspectRatioFontIcon = React.forwardRef(function ImageAspectRatioFontIcon(props, ref) {
25819 return (React__default.createElement(FontIcon, __assign$8g({}, props, { ref: ref }), "image_aspect_ratio"));
25820 });
25821
25822 var __assign$8h = (undefined && undefined.__assign) || function () {
25823 __assign$8h = Object.assign || function(t) {
25824 for (var s, i = 1, n = arguments.length; i < n; i++) {
25825 s = arguments[i];
25826 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25827 t[p] = s[p];
25828 }
25829 return t;
25830 };
25831 return __assign$8h.apply(this, arguments);
25832 };
25833 var ImageFontIcon = React.forwardRef(function ImageFontIcon(props, ref) {
25834 return (React__default.createElement(FontIcon, __assign$8h({}, props, { ref: ref }), "image"));
25835 });
25836
25837 var __assign$8i = (undefined && undefined.__assign) || function () {
25838 __assign$8i = Object.assign || function(t) {
25839 for (var s, i = 1, n = arguments.length; i < n; i++) {
25840 s = arguments[i];
25841 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25842 t[p] = s[p];
25843 }
25844 return t;
25845 };
25846 return __assign$8i.apply(this, arguments);
25847 };
25848 var ImportContactsFontIcon = React.forwardRef(function ImportContactsFontIcon(props, ref) {
25849 return (React__default.createElement(FontIcon, __assign$8i({}, props, { ref: ref }), "import_contacts"));
25850 });
25851
25852 var __assign$8j = (undefined && undefined.__assign) || function () {
25853 __assign$8j = Object.assign || function(t) {
25854 for (var s, i = 1, n = arguments.length; i < n; i++) {
25855 s = arguments[i];
25856 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25857 t[p] = s[p];
25858 }
25859 return t;
25860 };
25861 return __assign$8j.apply(this, arguments);
25862 };
25863 var ImportExportFontIcon = React.forwardRef(function ImportExportFontIcon(props, ref) {
25864 return (React__default.createElement(FontIcon, __assign$8j({}, props, { ref: ref }), "import_export"));
25865 });
25866
25867 var __assign$8k = (undefined && undefined.__assign) || function () {
25868 __assign$8k = Object.assign || function(t) {
25869 for (var s, i = 1, n = arguments.length; i < n; i++) {
25870 s = arguments[i];
25871 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25872 t[p] = s[p];
25873 }
25874 return t;
25875 };
25876 return __assign$8k.apply(this, arguments);
25877 };
25878 var ImportantDevicesFontIcon = React.forwardRef(function ImportantDevicesFontIcon(props, ref) {
25879 return (React__default.createElement(FontIcon, __assign$8k({}, props, { ref: ref }), "important_devices"));
25880 });
25881
25882 var __assign$8l = (undefined && undefined.__assign) || function () {
25883 __assign$8l = Object.assign || function(t) {
25884 for (var s, i = 1, n = arguments.length; i < n; i++) {
25885 s = arguments[i];
25886 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25887 t[p] = s[p];
25888 }
25889 return t;
25890 };
25891 return __assign$8l.apply(this, arguments);
25892 };
25893 var InboxFontIcon = React.forwardRef(function InboxFontIcon(props, ref) {
25894 return (React__default.createElement(FontIcon, __assign$8l({}, props, { ref: ref }), "inbox"));
25895 });
25896
25897 var __assign$8m = (undefined && undefined.__assign) || function () {
25898 __assign$8m = Object.assign || function(t) {
25899 for (var s, i = 1, n = arguments.length; i < n; i++) {
25900 s = arguments[i];
25901 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25902 t[p] = s[p];
25903 }
25904 return t;
25905 };
25906 return __assign$8m.apply(this, arguments);
25907 };
25908 var IndeterminateCheckBoxFontIcon = React.forwardRef(function IndeterminateCheckBoxFontIcon(props, ref) {
25909 return (React__default.createElement(FontIcon, __assign$8m({}, props, { ref: ref }), "indeterminate_check_box"));
25910 });
25911
25912 var __assign$8n = (undefined && undefined.__assign) || function () {
25913 __assign$8n = Object.assign || function(t) {
25914 for (var s, i = 1, n = arguments.length; i < n; i++) {
25915 s = arguments[i];
25916 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25917 t[p] = s[p];
25918 }
25919 return t;
25920 };
25921 return __assign$8n.apply(this, arguments);
25922 };
25923 var InfoOutlineFontIcon = React.forwardRef(function InfoOutlineFontIcon(props, ref) {
25924 return (React__default.createElement(FontIcon, __assign$8n({}, props, { ref: ref }), "info_outline"));
25925 });
25926
25927 var __assign$8o = (undefined && undefined.__assign) || function () {
25928 __assign$8o = Object.assign || function(t) {
25929 for (var s, i = 1, n = arguments.length; i < n; i++) {
25930 s = arguments[i];
25931 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25932 t[p] = s[p];
25933 }
25934 return t;
25935 };
25936 return __assign$8o.apply(this, arguments);
25937 };
25938 var InfoFontIcon = React.forwardRef(function InfoFontIcon(props, ref) {
25939 return (React__default.createElement(FontIcon, __assign$8o({}, props, { ref: ref }), "info"));
25940 });
25941
25942 var __assign$8p = (undefined && undefined.__assign) || function () {
25943 __assign$8p = Object.assign || function(t) {
25944 for (var s, i = 1, n = arguments.length; i < n; i++) {
25945 s = arguments[i];
25946 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25947 t[p] = s[p];
25948 }
25949 return t;
25950 };
25951 return __assign$8p.apply(this, arguments);
25952 };
25953 var InputFontIcon = React.forwardRef(function InputFontIcon(props, ref) {
25954 return (React__default.createElement(FontIcon, __assign$8p({}, props, { ref: ref }), "input"));
25955 });
25956
25957 var __assign$8q = (undefined && undefined.__assign) || function () {
25958 __assign$8q = Object.assign || function(t) {
25959 for (var s, i = 1, n = arguments.length; i < n; i++) {
25960 s = arguments[i];
25961 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25962 t[p] = s[p];
25963 }
25964 return t;
25965 };
25966 return __assign$8q.apply(this, arguments);
25967 };
25968 var InsertChartFontIcon = React.forwardRef(function InsertChartFontIcon(props, ref) {
25969 return (React__default.createElement(FontIcon, __assign$8q({}, props, { ref: ref }), "insert_chart"));
25970 });
25971
25972 var __assign$8r = (undefined && undefined.__assign) || function () {
25973 __assign$8r = Object.assign || function(t) {
25974 for (var s, i = 1, n = arguments.length; i < n; i++) {
25975 s = arguments[i];
25976 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25977 t[p] = s[p];
25978 }
25979 return t;
25980 };
25981 return __assign$8r.apply(this, arguments);
25982 };
25983 var InsertCommentFontIcon = React.forwardRef(function InsertCommentFontIcon(props, ref) {
25984 return (React__default.createElement(FontIcon, __assign$8r({}, props, { ref: ref }), "insert_comment"));
25985 });
25986
25987 var __assign$8s = (undefined && undefined.__assign) || function () {
25988 __assign$8s = Object.assign || function(t) {
25989 for (var s, i = 1, n = arguments.length; i < n; i++) {
25990 s = arguments[i];
25991 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
25992 t[p] = s[p];
25993 }
25994 return t;
25995 };
25996 return __assign$8s.apply(this, arguments);
25997 };
25998 var InsertDriveFileFontIcon = React.forwardRef(function InsertDriveFileFontIcon(props, ref) {
25999 return (React__default.createElement(FontIcon, __assign$8s({}, props, { ref: ref }), "insert_drive_file"));
26000 });
26001
26002 var __assign$8t = (undefined && undefined.__assign) || function () {
26003 __assign$8t = Object.assign || function(t) {
26004 for (var s, i = 1, n = arguments.length; i < n; i++) {
26005 s = arguments[i];
26006 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26007 t[p] = s[p];
26008 }
26009 return t;
26010 };
26011 return __assign$8t.apply(this, arguments);
26012 };
26013 var InsertEmoticonFontIcon = React.forwardRef(function InsertEmoticonFontIcon(props, ref) {
26014 return (React__default.createElement(FontIcon, __assign$8t({}, props, { ref: ref }), "insert_emoticon"));
26015 });
26016
26017 var __assign$8u = (undefined && undefined.__assign) || function () {
26018 __assign$8u = Object.assign || function(t) {
26019 for (var s, i = 1, n = arguments.length; i < n; i++) {
26020 s = arguments[i];
26021 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26022 t[p] = s[p];
26023 }
26024 return t;
26025 };
26026 return __assign$8u.apply(this, arguments);
26027 };
26028 var InsertInvitationFontIcon = React.forwardRef(function InsertInvitationFontIcon(props, ref) {
26029 return (React__default.createElement(FontIcon, __assign$8u({}, props, { ref: ref }), "insert_invitation"));
26030 });
26031
26032 var __assign$8v = (undefined && undefined.__assign) || function () {
26033 __assign$8v = Object.assign || function(t) {
26034 for (var s, i = 1, n = arguments.length; i < n; i++) {
26035 s = arguments[i];
26036 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26037 t[p] = s[p];
26038 }
26039 return t;
26040 };
26041 return __assign$8v.apply(this, arguments);
26042 };
26043 var InsertLinkFontIcon = React.forwardRef(function InsertLinkFontIcon(props, ref) {
26044 return (React__default.createElement(FontIcon, __assign$8v({}, props, { ref: ref }), "insert_link"));
26045 });
26046
26047 var __assign$8w = (undefined && undefined.__assign) || function () {
26048 __assign$8w = Object.assign || function(t) {
26049 for (var s, i = 1, n = arguments.length; i < n; i++) {
26050 s = arguments[i];
26051 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26052 t[p] = s[p];
26053 }
26054 return t;
26055 };
26056 return __assign$8w.apply(this, arguments);
26057 };
26058 var InsertPhotoFontIcon = React.forwardRef(function InsertPhotoFontIcon(props, ref) {
26059 return (React__default.createElement(FontIcon, __assign$8w({}, props, { ref: ref }), "insert_photo"));
26060 });
26061
26062 var __assign$8x = (undefined && undefined.__assign) || function () {
26063 __assign$8x = Object.assign || function(t) {
26064 for (var s, i = 1, n = arguments.length; i < n; i++) {
26065 s = arguments[i];
26066 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26067 t[p] = s[p];
26068 }
26069 return t;
26070 };
26071 return __assign$8x.apply(this, arguments);
26072 };
26073 var InvertColorsOffFontIcon = React.forwardRef(function InvertColorsOffFontIcon(props, ref) {
26074 return (React__default.createElement(FontIcon, __assign$8x({}, props, { ref: ref }), "invert_colors_off"));
26075 });
26076
26077 var __assign$8y = (undefined && undefined.__assign) || function () {
26078 __assign$8y = Object.assign || function(t) {
26079 for (var s, i = 1, n = arguments.length; i < n; i++) {
26080 s = arguments[i];
26081 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26082 t[p] = s[p];
26083 }
26084 return t;
26085 };
26086 return __assign$8y.apply(this, arguments);
26087 };
26088 var InvertColorsFontIcon = React.forwardRef(function InvertColorsFontIcon(props, ref) {
26089 return (React__default.createElement(FontIcon, __assign$8y({}, props, { ref: ref }), "invert_colors"));
26090 });
26091
26092 var __assign$8z = (undefined && undefined.__assign) || function () {
26093 __assign$8z = Object.assign || function(t) {
26094 for (var s, i = 1, n = arguments.length; i < n; i++) {
26095 s = arguments[i];
26096 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26097 t[p] = s[p];
26098 }
26099 return t;
26100 };
26101 return __assign$8z.apply(this, arguments);
26102 };
26103 var IsoFontIcon = React.forwardRef(function IsoFontIcon(props, ref) {
26104 return (React__default.createElement(FontIcon, __assign$8z({}, props, { ref: ref }), "iso"));
26105 });
26106
26107 var __assign$8A = (undefined && undefined.__assign) || function () {
26108 __assign$8A = Object.assign || function(t) {
26109 for (var s, i = 1, n = arguments.length; i < n; i++) {
26110 s = arguments[i];
26111 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26112 t[p] = s[p];
26113 }
26114 return t;
26115 };
26116 return __assign$8A.apply(this, arguments);
26117 };
26118 var KeyboardArrowDownFontIcon = React.forwardRef(function KeyboardArrowDownFontIcon(props, ref) {
26119 return (React__default.createElement(FontIcon, __assign$8A({}, props, { ref: ref }), "keyboard_arrow_down"));
26120 });
26121
26122 var __assign$8B = (undefined && undefined.__assign) || function () {
26123 __assign$8B = Object.assign || function(t) {
26124 for (var s, i = 1, n = arguments.length; i < n; i++) {
26125 s = arguments[i];
26126 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26127 t[p] = s[p];
26128 }
26129 return t;
26130 };
26131 return __assign$8B.apply(this, arguments);
26132 };
26133 var KeyboardArrowLeftFontIcon = React.forwardRef(function KeyboardArrowLeftFontIcon(props, ref) {
26134 return (React__default.createElement(FontIcon, __assign$8B({}, props, { ref: ref }), "keyboard_arrow_left"));
26135 });
26136
26137 var __assign$8C = (undefined && undefined.__assign) || function () {
26138 __assign$8C = Object.assign || function(t) {
26139 for (var s, i = 1, n = arguments.length; i < n; i++) {
26140 s = arguments[i];
26141 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26142 t[p] = s[p];
26143 }
26144 return t;
26145 };
26146 return __assign$8C.apply(this, arguments);
26147 };
26148 var KeyboardArrowRightFontIcon = React.forwardRef(function KeyboardArrowRightFontIcon(props, ref) {
26149 return (React__default.createElement(FontIcon, __assign$8C({}, props, { ref: ref }), "keyboard_arrow_right"));
26150 });
26151
26152 var __assign$8D = (undefined && undefined.__assign) || function () {
26153 __assign$8D = Object.assign || function(t) {
26154 for (var s, i = 1, n = arguments.length; i < n; i++) {
26155 s = arguments[i];
26156 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26157 t[p] = s[p];
26158 }
26159 return t;
26160 };
26161 return __assign$8D.apply(this, arguments);
26162 };
26163 var KeyboardArrowUpFontIcon = React.forwardRef(function KeyboardArrowUpFontIcon(props, ref) {
26164 return (React__default.createElement(FontIcon, __assign$8D({}, props, { ref: ref }), "keyboard_arrow_up"));
26165 });
26166
26167 var __assign$8E = (undefined && undefined.__assign) || function () {
26168 __assign$8E = Object.assign || function(t) {
26169 for (var s, i = 1, n = arguments.length; i < n; i++) {
26170 s = arguments[i];
26171 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26172 t[p] = s[p];
26173 }
26174 return t;
26175 };
26176 return __assign$8E.apply(this, arguments);
26177 };
26178 var KeyboardBackspaceFontIcon = React.forwardRef(function KeyboardBackspaceFontIcon(props, ref) {
26179 return (React__default.createElement(FontIcon, __assign$8E({}, props, { ref: ref }), "keyboard_backspace"));
26180 });
26181
26182 var __assign$8F = (undefined && undefined.__assign) || function () {
26183 __assign$8F = Object.assign || function(t) {
26184 for (var s, i = 1, n = arguments.length; i < n; i++) {
26185 s = arguments[i];
26186 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26187 t[p] = s[p];
26188 }
26189 return t;
26190 };
26191 return __assign$8F.apply(this, arguments);
26192 };
26193 var KeyboardCapslockFontIcon = React.forwardRef(function KeyboardCapslockFontIcon(props, ref) {
26194 return (React__default.createElement(FontIcon, __assign$8F({}, props, { ref: ref }), "keyboard_capslock"));
26195 });
26196
26197 var __assign$8G = (undefined && undefined.__assign) || function () {
26198 __assign$8G = Object.assign || function(t) {
26199 for (var s, i = 1, n = arguments.length; i < n; i++) {
26200 s = arguments[i];
26201 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26202 t[p] = s[p];
26203 }
26204 return t;
26205 };
26206 return __assign$8G.apply(this, arguments);
26207 };
26208 var KeyboardHideFontIcon = React.forwardRef(function KeyboardHideFontIcon(props, ref) {
26209 return (React__default.createElement(FontIcon, __assign$8G({}, props, { ref: ref }), "keyboard_hide"));
26210 });
26211
26212 var __assign$8H = (undefined && undefined.__assign) || function () {
26213 __assign$8H = Object.assign || function(t) {
26214 for (var s, i = 1, n = arguments.length; i < n; i++) {
26215 s = arguments[i];
26216 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26217 t[p] = s[p];
26218 }
26219 return t;
26220 };
26221 return __assign$8H.apply(this, arguments);
26222 };
26223 var KeyboardReturnFontIcon = React.forwardRef(function KeyboardReturnFontIcon(props, ref) {
26224 return (React__default.createElement(FontIcon, __assign$8H({}, props, { ref: ref }), "keyboard_return"));
26225 });
26226
26227 var __assign$8I = (undefined && undefined.__assign) || function () {
26228 __assign$8I = Object.assign || function(t) {
26229 for (var s, i = 1, n = arguments.length; i < n; i++) {
26230 s = arguments[i];
26231 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26232 t[p] = s[p];
26233 }
26234 return t;
26235 };
26236 return __assign$8I.apply(this, arguments);
26237 };
26238 var KeyboardTabFontIcon = React.forwardRef(function KeyboardTabFontIcon(props, ref) {
26239 return (React__default.createElement(FontIcon, __assign$8I({}, props, { ref: ref }), "keyboard_tab"));
26240 });
26241
26242 var __assign$8J = (undefined && undefined.__assign) || function () {
26243 __assign$8J = Object.assign || function(t) {
26244 for (var s, i = 1, n = arguments.length; i < n; i++) {
26245 s = arguments[i];
26246 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26247 t[p] = s[p];
26248 }
26249 return t;
26250 };
26251 return __assign$8J.apply(this, arguments);
26252 };
26253 var KeyboardVoiceFontIcon = React.forwardRef(function KeyboardVoiceFontIcon(props, ref) {
26254 return (React__default.createElement(FontIcon, __assign$8J({}, props, { ref: ref }), "keyboard_voice"));
26255 });
26256
26257 var __assign$8K = (undefined && undefined.__assign) || function () {
26258 __assign$8K = Object.assign || function(t) {
26259 for (var s, i = 1, n = arguments.length; i < n; i++) {
26260 s = arguments[i];
26261 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26262 t[p] = s[p];
26263 }
26264 return t;
26265 };
26266 return __assign$8K.apply(this, arguments);
26267 };
26268 var KeyboardFontIcon = React.forwardRef(function KeyboardFontIcon(props, ref) {
26269 return (React__default.createElement(FontIcon, __assign$8K({}, props, { ref: ref }), "keyboard"));
26270 });
26271
26272 var __assign$8L = (undefined && undefined.__assign) || function () {
26273 __assign$8L = Object.assign || function(t) {
26274 for (var s, i = 1, n = arguments.length; i < n; i++) {
26275 s = arguments[i];
26276 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26277 t[p] = s[p];
26278 }
26279 return t;
26280 };
26281 return __assign$8L.apply(this, arguments);
26282 };
26283 var KitchenFontIcon = React.forwardRef(function KitchenFontIcon(props, ref) {
26284 return (React__default.createElement(FontIcon, __assign$8L({}, props, { ref: ref }), "kitchen"));
26285 });
26286
26287 var __assign$8M = (undefined && undefined.__assign) || function () {
26288 __assign$8M = Object.assign || function(t) {
26289 for (var s, i = 1, n = arguments.length; i < n; i++) {
26290 s = arguments[i];
26291 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26292 t[p] = s[p];
26293 }
26294 return t;
26295 };
26296 return __assign$8M.apply(this, arguments);
26297 };
26298 var LabelOutlineFontIcon = React.forwardRef(function LabelOutlineFontIcon(props, ref) {
26299 return (React__default.createElement(FontIcon, __assign$8M({}, props, { ref: ref }), "label_outline"));
26300 });
26301
26302 var __assign$8N = (undefined && undefined.__assign) || function () {
26303 __assign$8N = Object.assign || function(t) {
26304 for (var s, i = 1, n = arguments.length; i < n; i++) {
26305 s = arguments[i];
26306 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26307 t[p] = s[p];
26308 }
26309 return t;
26310 };
26311 return __assign$8N.apply(this, arguments);
26312 };
26313 var LabelFontIcon = React.forwardRef(function LabelFontIcon(props, ref) {
26314 return (React__default.createElement(FontIcon, __assign$8N({}, props, { ref: ref }), "label"));
26315 });
26316
26317 var __assign$8O = (undefined && undefined.__assign) || function () {
26318 __assign$8O = Object.assign || function(t) {
26319 for (var s, i = 1, n = arguments.length; i < n; i++) {
26320 s = arguments[i];
26321 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26322 t[p] = s[p];
26323 }
26324 return t;
26325 };
26326 return __assign$8O.apply(this, arguments);
26327 };
26328 var LandscapeFontIcon = React.forwardRef(function LandscapeFontIcon(props, ref) {
26329 return (React__default.createElement(FontIcon, __assign$8O({}, props, { ref: ref }), "landscape"));
26330 });
26331
26332 var __assign$8P = (undefined && undefined.__assign) || function () {
26333 __assign$8P = Object.assign || function(t) {
26334 for (var s, i = 1, n = arguments.length; i < n; i++) {
26335 s = arguments[i];
26336 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26337 t[p] = s[p];
26338 }
26339 return t;
26340 };
26341 return __assign$8P.apply(this, arguments);
26342 };
26343 var LanguageFontIcon = React.forwardRef(function LanguageFontIcon(props, ref) {
26344 return (React__default.createElement(FontIcon, __assign$8P({}, props, { ref: ref }), "language"));
26345 });
26346
26347 var __assign$8Q = (undefined && undefined.__assign) || function () {
26348 __assign$8Q = Object.assign || function(t) {
26349 for (var s, i = 1, n = arguments.length; i < n; i++) {
26350 s = arguments[i];
26351 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26352 t[p] = s[p];
26353 }
26354 return t;
26355 };
26356 return __assign$8Q.apply(this, arguments);
26357 };
26358 var LaptopChromebookFontIcon = React.forwardRef(function LaptopChromebookFontIcon(props, ref) {
26359 return (React__default.createElement(FontIcon, __assign$8Q({}, props, { ref: ref }), "laptop_chromebook"));
26360 });
26361
26362 var __assign$8R = (undefined && undefined.__assign) || function () {
26363 __assign$8R = Object.assign || function(t) {
26364 for (var s, i = 1, n = arguments.length; i < n; i++) {
26365 s = arguments[i];
26366 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26367 t[p] = s[p];
26368 }
26369 return t;
26370 };
26371 return __assign$8R.apply(this, arguments);
26372 };
26373 var LaptopMacFontIcon = React.forwardRef(function LaptopMacFontIcon(props, ref) {
26374 return (React__default.createElement(FontIcon, __assign$8R({}, props, { ref: ref }), "laptop_mac"));
26375 });
26376
26377 var __assign$8S = (undefined && undefined.__assign) || function () {
26378 __assign$8S = Object.assign || function(t) {
26379 for (var s, i = 1, n = arguments.length; i < n; i++) {
26380 s = arguments[i];
26381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26382 t[p] = s[p];
26383 }
26384 return t;
26385 };
26386 return __assign$8S.apply(this, arguments);
26387 };
26388 var LaptopWindowsFontIcon = React.forwardRef(function LaptopWindowsFontIcon(props, ref) {
26389 return (React__default.createElement(FontIcon, __assign$8S({}, props, { ref: ref }), "laptop_windows"));
26390 });
26391
26392 var __assign$8T = (undefined && undefined.__assign) || function () {
26393 __assign$8T = Object.assign || function(t) {
26394 for (var s, i = 1, n = arguments.length; i < n; i++) {
26395 s = arguments[i];
26396 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26397 t[p] = s[p];
26398 }
26399 return t;
26400 };
26401 return __assign$8T.apply(this, arguments);
26402 };
26403 var LaptopFontIcon = React.forwardRef(function LaptopFontIcon(props, ref) {
26404 return (React__default.createElement(FontIcon, __assign$8T({}, props, { ref: ref }), "laptop"));
26405 });
26406
26407 var __assign$8U = (undefined && undefined.__assign) || function () {
26408 __assign$8U = Object.assign || function(t) {
26409 for (var s, i = 1, n = arguments.length; i < n; i++) {
26410 s = arguments[i];
26411 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26412 t[p] = s[p];
26413 }
26414 return t;
26415 };
26416 return __assign$8U.apply(this, arguments);
26417 };
26418 var LastPageFontIcon = React.forwardRef(function LastPageFontIcon(props, ref) {
26419 return (React__default.createElement(FontIcon, __assign$8U({}, props, { ref: ref }), "last_page"));
26420 });
26421
26422 var __assign$8V = (undefined && undefined.__assign) || function () {
26423 __assign$8V = Object.assign || function(t) {
26424 for (var s, i = 1, n = arguments.length; i < n; i++) {
26425 s = arguments[i];
26426 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26427 t[p] = s[p];
26428 }
26429 return t;
26430 };
26431 return __assign$8V.apply(this, arguments);
26432 };
26433 var LaunchFontIcon = React.forwardRef(function LaunchFontIcon(props, ref) {
26434 return (React__default.createElement(FontIcon, __assign$8V({}, props, { ref: ref }), "launch"));
26435 });
26436
26437 var __assign$8W = (undefined && undefined.__assign) || function () {
26438 __assign$8W = Object.assign || function(t) {
26439 for (var s, i = 1, n = arguments.length; i < n; i++) {
26440 s = arguments[i];
26441 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26442 t[p] = s[p];
26443 }
26444 return t;
26445 };
26446 return __assign$8W.apply(this, arguments);
26447 };
26448 var LayersClearFontIcon = React.forwardRef(function LayersClearFontIcon(props, ref) {
26449 return (React__default.createElement(FontIcon, __assign$8W({}, props, { ref: ref }), "layers_clear"));
26450 });
26451
26452 var __assign$8X = (undefined && undefined.__assign) || function () {
26453 __assign$8X = Object.assign || function(t) {
26454 for (var s, i = 1, n = arguments.length; i < n; i++) {
26455 s = arguments[i];
26456 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26457 t[p] = s[p];
26458 }
26459 return t;
26460 };
26461 return __assign$8X.apply(this, arguments);
26462 };
26463 var LayersFontIcon = React.forwardRef(function LayersFontIcon(props, ref) {
26464 return (React__default.createElement(FontIcon, __assign$8X({}, props, { ref: ref }), "layers"));
26465 });
26466
26467 var __assign$8Y = (undefined && undefined.__assign) || function () {
26468 __assign$8Y = Object.assign || function(t) {
26469 for (var s, i = 1, n = arguments.length; i < n; i++) {
26470 s = arguments[i];
26471 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26472 t[p] = s[p];
26473 }
26474 return t;
26475 };
26476 return __assign$8Y.apply(this, arguments);
26477 };
26478 var LeakAddFontIcon = React.forwardRef(function LeakAddFontIcon(props, ref) {
26479 return (React__default.createElement(FontIcon, __assign$8Y({}, props, { ref: ref }), "leak_add"));
26480 });
26481
26482 var __assign$8Z = (undefined && undefined.__assign) || function () {
26483 __assign$8Z = Object.assign || function(t) {
26484 for (var s, i = 1, n = arguments.length; i < n; i++) {
26485 s = arguments[i];
26486 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26487 t[p] = s[p];
26488 }
26489 return t;
26490 };
26491 return __assign$8Z.apply(this, arguments);
26492 };
26493 var LeakRemoveFontIcon = React.forwardRef(function LeakRemoveFontIcon(props, ref) {
26494 return (React__default.createElement(FontIcon, __assign$8Z({}, props, { ref: ref }), "leak_remove"));
26495 });
26496
26497 var __assign$8_ = (undefined && undefined.__assign) || function () {
26498 __assign$8_ = Object.assign || function(t) {
26499 for (var s, i = 1, n = arguments.length; i < n; i++) {
26500 s = arguments[i];
26501 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26502 t[p] = s[p];
26503 }
26504 return t;
26505 };
26506 return __assign$8_.apply(this, arguments);
26507 };
26508 var LensFontIcon = React.forwardRef(function LensFontIcon(props, ref) {
26509 return (React__default.createElement(FontIcon, __assign$8_({}, props, { ref: ref }), "lens"));
26510 });
26511
26512 var __assign$8$ = (undefined && undefined.__assign) || function () {
26513 __assign$8$ = Object.assign || function(t) {
26514 for (var s, i = 1, n = arguments.length; i < n; i++) {
26515 s = arguments[i];
26516 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26517 t[p] = s[p];
26518 }
26519 return t;
26520 };
26521 return __assign$8$.apply(this, arguments);
26522 };
26523 var LibraryAddFontIcon = React.forwardRef(function LibraryAddFontIcon(props, ref) {
26524 return (React__default.createElement(FontIcon, __assign$8$({}, props, { ref: ref }), "library_add"));
26525 });
26526
26527 var __assign$90 = (undefined && undefined.__assign) || function () {
26528 __assign$90 = Object.assign || function(t) {
26529 for (var s, i = 1, n = arguments.length; i < n; i++) {
26530 s = arguments[i];
26531 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26532 t[p] = s[p];
26533 }
26534 return t;
26535 };
26536 return __assign$90.apply(this, arguments);
26537 };
26538 var LibraryBooksFontIcon = React.forwardRef(function LibraryBooksFontIcon(props, ref) {
26539 return (React__default.createElement(FontIcon, __assign$90({}, props, { ref: ref }), "library_books"));
26540 });
26541
26542 var __assign$91 = (undefined && undefined.__assign) || function () {
26543 __assign$91 = Object.assign || function(t) {
26544 for (var s, i = 1, n = arguments.length; i < n; i++) {
26545 s = arguments[i];
26546 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26547 t[p] = s[p];
26548 }
26549 return t;
26550 };
26551 return __assign$91.apply(this, arguments);
26552 };
26553 var LibraryMusicFontIcon = React.forwardRef(function LibraryMusicFontIcon(props, ref) {
26554 return (React__default.createElement(FontIcon, __assign$91({}, props, { ref: ref }), "library_music"));
26555 });
26556
26557 var __assign$92 = (undefined && undefined.__assign) || function () {
26558 __assign$92 = Object.assign || function(t) {
26559 for (var s, i = 1, n = arguments.length; i < n; i++) {
26560 s = arguments[i];
26561 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26562 t[p] = s[p];
26563 }
26564 return t;
26565 };
26566 return __assign$92.apply(this, arguments);
26567 };
26568 var LightbulbOutlineFontIcon = React.forwardRef(function LightbulbOutlineFontIcon(props, ref) {
26569 return (React__default.createElement(FontIcon, __assign$92({}, props, { ref: ref }), "lightbulb_outline"));
26570 });
26571
26572 var __assign$93 = (undefined && undefined.__assign) || function () {
26573 __assign$93 = Object.assign || function(t) {
26574 for (var s, i = 1, n = arguments.length; i < n; i++) {
26575 s = arguments[i];
26576 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26577 t[p] = s[p];
26578 }
26579 return t;
26580 };
26581 return __assign$93.apply(this, arguments);
26582 };
26583 var LineStyleFontIcon = React.forwardRef(function LineStyleFontIcon(props, ref) {
26584 return (React__default.createElement(FontIcon, __assign$93({}, props, { ref: ref }), "line_style"));
26585 });
26586
26587 var __assign$94 = (undefined && undefined.__assign) || function () {
26588 __assign$94 = Object.assign || function(t) {
26589 for (var s, i = 1, n = arguments.length; i < n; i++) {
26590 s = arguments[i];
26591 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26592 t[p] = s[p];
26593 }
26594 return t;
26595 };
26596 return __assign$94.apply(this, arguments);
26597 };
26598 var LineWeightFontIcon = React.forwardRef(function LineWeightFontIcon(props, ref) {
26599 return (React__default.createElement(FontIcon, __assign$94({}, props, { ref: ref }), "line_weight"));
26600 });
26601
26602 var __assign$95 = (undefined && undefined.__assign) || function () {
26603 __assign$95 = Object.assign || function(t) {
26604 for (var s, i = 1, n = arguments.length; i < n; i++) {
26605 s = arguments[i];
26606 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26607 t[p] = s[p];
26608 }
26609 return t;
26610 };
26611 return __assign$95.apply(this, arguments);
26612 };
26613 var LinearScaleFontIcon = React.forwardRef(function LinearScaleFontIcon(props, ref) {
26614 return (React__default.createElement(FontIcon, __assign$95({}, props, { ref: ref }), "linear_scale"));
26615 });
26616
26617 var __assign$96 = (undefined && undefined.__assign) || function () {
26618 __assign$96 = Object.assign || function(t) {
26619 for (var s, i = 1, n = arguments.length; i < n; i++) {
26620 s = arguments[i];
26621 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26622 t[p] = s[p];
26623 }
26624 return t;
26625 };
26626 return __assign$96.apply(this, arguments);
26627 };
26628 var LinkFontIcon = React.forwardRef(function LinkFontIcon(props, ref) {
26629 return (React__default.createElement(FontIcon, __assign$96({}, props, { ref: ref }), "link"));
26630 });
26631
26632 var __assign$97 = (undefined && undefined.__assign) || function () {
26633 __assign$97 = Object.assign || function(t) {
26634 for (var s, i = 1, n = arguments.length; i < n; i++) {
26635 s = arguments[i];
26636 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26637 t[p] = s[p];
26638 }
26639 return t;
26640 };
26641 return __assign$97.apply(this, arguments);
26642 };
26643 var LinkedCameraFontIcon = React.forwardRef(function LinkedCameraFontIcon(props, ref) {
26644 return (React__default.createElement(FontIcon, __assign$97({}, props, { ref: ref }), "linked_camera"));
26645 });
26646
26647 var __assign$98 = (undefined && undefined.__assign) || function () {
26648 __assign$98 = Object.assign || function(t) {
26649 for (var s, i = 1, n = arguments.length; i < n; i++) {
26650 s = arguments[i];
26651 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26652 t[p] = s[p];
26653 }
26654 return t;
26655 };
26656 return __assign$98.apply(this, arguments);
26657 };
26658 var ListFontIcon = React.forwardRef(function ListFontIcon(props, ref) {
26659 return (React__default.createElement(FontIcon, __assign$98({}, props, { ref: ref }), "list"));
26660 });
26661
26662 var __assign$99 = (undefined && undefined.__assign) || function () {
26663 __assign$99 = Object.assign || function(t) {
26664 for (var s, i = 1, n = arguments.length; i < n; i++) {
26665 s = arguments[i];
26666 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26667 t[p] = s[p];
26668 }
26669 return t;
26670 };
26671 return __assign$99.apply(this, arguments);
26672 };
26673 var LiveHelpFontIcon = React.forwardRef(function LiveHelpFontIcon(props, ref) {
26674 return (React__default.createElement(FontIcon, __assign$99({}, props, { ref: ref }), "live_help"));
26675 });
26676
26677 var __assign$9a = (undefined && undefined.__assign) || function () {
26678 __assign$9a = Object.assign || function(t) {
26679 for (var s, i = 1, n = arguments.length; i < n; i++) {
26680 s = arguments[i];
26681 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26682 t[p] = s[p];
26683 }
26684 return t;
26685 };
26686 return __assign$9a.apply(this, arguments);
26687 };
26688 var LiveTvFontIcon = React.forwardRef(function LiveTvFontIcon(props, ref) {
26689 return (React__default.createElement(FontIcon, __assign$9a({}, props, { ref: ref }), "live_tv"));
26690 });
26691
26692 var __assign$9b = (undefined && undefined.__assign) || function () {
26693 __assign$9b = Object.assign || function(t) {
26694 for (var s, i = 1, n = arguments.length; i < n; i++) {
26695 s = arguments[i];
26696 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26697 t[p] = s[p];
26698 }
26699 return t;
26700 };
26701 return __assign$9b.apply(this, arguments);
26702 };
26703 var LocalActivityFontIcon = React.forwardRef(function LocalActivityFontIcon(props, ref) {
26704 return (React__default.createElement(FontIcon, __assign$9b({}, props, { ref: ref }), "local_activity"));
26705 });
26706
26707 var __assign$9c = (undefined && undefined.__assign) || function () {
26708 __assign$9c = Object.assign || function(t) {
26709 for (var s, i = 1, n = arguments.length; i < n; i++) {
26710 s = arguments[i];
26711 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26712 t[p] = s[p];
26713 }
26714 return t;
26715 };
26716 return __assign$9c.apply(this, arguments);
26717 };
26718 var LocalAirportFontIcon = React.forwardRef(function LocalAirportFontIcon(props, ref) {
26719 return (React__default.createElement(FontIcon, __assign$9c({}, props, { ref: ref }), "local_airport"));
26720 });
26721
26722 var __assign$9d = (undefined && undefined.__assign) || function () {
26723 __assign$9d = Object.assign || function(t) {
26724 for (var s, i = 1, n = arguments.length; i < n; i++) {
26725 s = arguments[i];
26726 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26727 t[p] = s[p];
26728 }
26729 return t;
26730 };
26731 return __assign$9d.apply(this, arguments);
26732 };
26733 var LocalAtmFontIcon = React.forwardRef(function LocalAtmFontIcon(props, ref) {
26734 return (React__default.createElement(FontIcon, __assign$9d({}, props, { ref: ref }), "local_atm"));
26735 });
26736
26737 var __assign$9e = (undefined && undefined.__assign) || function () {
26738 __assign$9e = Object.assign || function(t) {
26739 for (var s, i = 1, n = arguments.length; i < n; i++) {
26740 s = arguments[i];
26741 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26742 t[p] = s[p];
26743 }
26744 return t;
26745 };
26746 return __assign$9e.apply(this, arguments);
26747 };
26748 var LocalBarFontIcon = React.forwardRef(function LocalBarFontIcon(props, ref) {
26749 return (React__default.createElement(FontIcon, __assign$9e({}, props, { ref: ref }), "local_bar"));
26750 });
26751
26752 var __assign$9f = (undefined && undefined.__assign) || function () {
26753 __assign$9f = Object.assign || function(t) {
26754 for (var s, i = 1, n = arguments.length; i < n; i++) {
26755 s = arguments[i];
26756 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26757 t[p] = s[p];
26758 }
26759 return t;
26760 };
26761 return __assign$9f.apply(this, arguments);
26762 };
26763 var LocalCafeFontIcon = React.forwardRef(function LocalCafeFontIcon(props, ref) {
26764 return (React__default.createElement(FontIcon, __assign$9f({}, props, { ref: ref }), "local_cafe"));
26765 });
26766
26767 var __assign$9g = (undefined && undefined.__assign) || function () {
26768 __assign$9g = Object.assign || function(t) {
26769 for (var s, i = 1, n = arguments.length; i < n; i++) {
26770 s = arguments[i];
26771 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26772 t[p] = s[p];
26773 }
26774 return t;
26775 };
26776 return __assign$9g.apply(this, arguments);
26777 };
26778 var LocalCarWashFontIcon = React.forwardRef(function LocalCarWashFontIcon(props, ref) {
26779 return (React__default.createElement(FontIcon, __assign$9g({}, props, { ref: ref }), "local_car_wash"));
26780 });
26781
26782 var __assign$9h = (undefined && undefined.__assign) || function () {
26783 __assign$9h = Object.assign || function(t) {
26784 for (var s, i = 1, n = arguments.length; i < n; i++) {
26785 s = arguments[i];
26786 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26787 t[p] = s[p];
26788 }
26789 return t;
26790 };
26791 return __assign$9h.apply(this, arguments);
26792 };
26793 var LocalConvenienceStoreFontIcon = React.forwardRef(function LocalConvenienceStoreFontIcon(props, ref) {
26794 return (React__default.createElement(FontIcon, __assign$9h({}, props, { ref: ref }), "local_convenience_store"));
26795 });
26796
26797 var __assign$9i = (undefined && undefined.__assign) || function () {
26798 __assign$9i = Object.assign || function(t) {
26799 for (var s, i = 1, n = arguments.length; i < n; i++) {
26800 s = arguments[i];
26801 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26802 t[p] = s[p];
26803 }
26804 return t;
26805 };
26806 return __assign$9i.apply(this, arguments);
26807 };
26808 var LocalDiningFontIcon = React.forwardRef(function LocalDiningFontIcon(props, ref) {
26809 return (React__default.createElement(FontIcon, __assign$9i({}, props, { ref: ref }), "local_dining"));
26810 });
26811
26812 var __assign$9j = (undefined && undefined.__assign) || function () {
26813 __assign$9j = Object.assign || function(t) {
26814 for (var s, i = 1, n = arguments.length; i < n; i++) {
26815 s = arguments[i];
26816 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26817 t[p] = s[p];
26818 }
26819 return t;
26820 };
26821 return __assign$9j.apply(this, arguments);
26822 };
26823 var LocalDrinkFontIcon = React.forwardRef(function LocalDrinkFontIcon(props, ref) {
26824 return (React__default.createElement(FontIcon, __assign$9j({}, props, { ref: ref }), "local_drink"));
26825 });
26826
26827 var __assign$9k = (undefined && undefined.__assign) || function () {
26828 __assign$9k = Object.assign || function(t) {
26829 for (var s, i = 1, n = arguments.length; i < n; i++) {
26830 s = arguments[i];
26831 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26832 t[p] = s[p];
26833 }
26834 return t;
26835 };
26836 return __assign$9k.apply(this, arguments);
26837 };
26838 var LocalFloristFontIcon = React.forwardRef(function LocalFloristFontIcon(props, ref) {
26839 return (React__default.createElement(FontIcon, __assign$9k({}, props, { ref: ref }), "local_florist"));
26840 });
26841
26842 var __assign$9l = (undefined && undefined.__assign) || function () {
26843 __assign$9l = Object.assign || function(t) {
26844 for (var s, i = 1, n = arguments.length; i < n; i++) {
26845 s = arguments[i];
26846 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26847 t[p] = s[p];
26848 }
26849 return t;
26850 };
26851 return __assign$9l.apply(this, arguments);
26852 };
26853 var LocalGasStationFontIcon = React.forwardRef(function LocalGasStationFontIcon(props, ref) {
26854 return (React__default.createElement(FontIcon, __assign$9l({}, props, { ref: ref }), "local_gas_station"));
26855 });
26856
26857 var __assign$9m = (undefined && undefined.__assign) || function () {
26858 __assign$9m = Object.assign || function(t) {
26859 for (var s, i = 1, n = arguments.length; i < n; i++) {
26860 s = arguments[i];
26861 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26862 t[p] = s[p];
26863 }
26864 return t;
26865 };
26866 return __assign$9m.apply(this, arguments);
26867 };
26868 var LocalGroceryStoreFontIcon = React.forwardRef(function LocalGroceryStoreFontIcon(props, ref) {
26869 return (React__default.createElement(FontIcon, __assign$9m({}, props, { ref: ref }), "local_grocery_store"));
26870 });
26871
26872 var __assign$9n = (undefined && undefined.__assign) || function () {
26873 __assign$9n = Object.assign || function(t) {
26874 for (var s, i = 1, n = arguments.length; i < n; i++) {
26875 s = arguments[i];
26876 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26877 t[p] = s[p];
26878 }
26879 return t;
26880 };
26881 return __assign$9n.apply(this, arguments);
26882 };
26883 var LocalHospitalFontIcon = React.forwardRef(function LocalHospitalFontIcon(props, ref) {
26884 return (React__default.createElement(FontIcon, __assign$9n({}, props, { ref: ref }), "local_hospital"));
26885 });
26886
26887 var __assign$9o = (undefined && undefined.__assign) || function () {
26888 __assign$9o = Object.assign || function(t) {
26889 for (var s, i = 1, n = arguments.length; i < n; i++) {
26890 s = arguments[i];
26891 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26892 t[p] = s[p];
26893 }
26894 return t;
26895 };
26896 return __assign$9o.apply(this, arguments);
26897 };
26898 var LocalHotelFontIcon = React.forwardRef(function LocalHotelFontIcon(props, ref) {
26899 return (React__default.createElement(FontIcon, __assign$9o({}, props, { ref: ref }), "local_hotel"));
26900 });
26901
26902 var __assign$9p = (undefined && undefined.__assign) || function () {
26903 __assign$9p = Object.assign || function(t) {
26904 for (var s, i = 1, n = arguments.length; i < n; i++) {
26905 s = arguments[i];
26906 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26907 t[p] = s[p];
26908 }
26909 return t;
26910 };
26911 return __assign$9p.apply(this, arguments);
26912 };
26913 var LocalLaundryServiceFontIcon = React.forwardRef(function LocalLaundryServiceFontIcon(props, ref) {
26914 return (React__default.createElement(FontIcon, __assign$9p({}, props, { ref: ref }), "local_laundry_service"));
26915 });
26916
26917 var __assign$9q = (undefined && undefined.__assign) || function () {
26918 __assign$9q = Object.assign || function(t) {
26919 for (var s, i = 1, n = arguments.length; i < n; i++) {
26920 s = arguments[i];
26921 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26922 t[p] = s[p];
26923 }
26924 return t;
26925 };
26926 return __assign$9q.apply(this, arguments);
26927 };
26928 var LocalLibraryFontIcon = React.forwardRef(function LocalLibraryFontIcon(props, ref) {
26929 return (React__default.createElement(FontIcon, __assign$9q({}, props, { ref: ref }), "local_library"));
26930 });
26931
26932 var __assign$9r = (undefined && undefined.__assign) || function () {
26933 __assign$9r = Object.assign || function(t) {
26934 for (var s, i = 1, n = arguments.length; i < n; i++) {
26935 s = arguments[i];
26936 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26937 t[p] = s[p];
26938 }
26939 return t;
26940 };
26941 return __assign$9r.apply(this, arguments);
26942 };
26943 var LocalMallFontIcon = React.forwardRef(function LocalMallFontIcon(props, ref) {
26944 return (React__default.createElement(FontIcon, __assign$9r({}, props, { ref: ref }), "local_mall"));
26945 });
26946
26947 var __assign$9s = (undefined && undefined.__assign) || function () {
26948 __assign$9s = Object.assign || function(t) {
26949 for (var s, i = 1, n = arguments.length; i < n; i++) {
26950 s = arguments[i];
26951 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26952 t[p] = s[p];
26953 }
26954 return t;
26955 };
26956 return __assign$9s.apply(this, arguments);
26957 };
26958 var LocalMoviesFontIcon = React.forwardRef(function LocalMoviesFontIcon(props, ref) {
26959 return (React__default.createElement(FontIcon, __assign$9s({}, props, { ref: ref }), "local_movies"));
26960 });
26961
26962 var __assign$9t = (undefined && undefined.__assign) || function () {
26963 __assign$9t = Object.assign || function(t) {
26964 for (var s, i = 1, n = arguments.length; i < n; i++) {
26965 s = arguments[i];
26966 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26967 t[p] = s[p];
26968 }
26969 return t;
26970 };
26971 return __assign$9t.apply(this, arguments);
26972 };
26973 var LocalOfferFontIcon = React.forwardRef(function LocalOfferFontIcon(props, ref) {
26974 return (React__default.createElement(FontIcon, __assign$9t({}, props, { ref: ref }), "local_offer"));
26975 });
26976
26977 var __assign$9u = (undefined && undefined.__assign) || function () {
26978 __assign$9u = Object.assign || function(t) {
26979 for (var s, i = 1, n = arguments.length; i < n; i++) {
26980 s = arguments[i];
26981 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26982 t[p] = s[p];
26983 }
26984 return t;
26985 };
26986 return __assign$9u.apply(this, arguments);
26987 };
26988 var LocalParkingFontIcon = React.forwardRef(function LocalParkingFontIcon(props, ref) {
26989 return (React__default.createElement(FontIcon, __assign$9u({}, props, { ref: ref }), "local_parking"));
26990 });
26991
26992 var __assign$9v = (undefined && undefined.__assign) || function () {
26993 __assign$9v = Object.assign || function(t) {
26994 for (var s, i = 1, n = arguments.length; i < n; i++) {
26995 s = arguments[i];
26996 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26997 t[p] = s[p];
26998 }
26999 return t;
27000 };
27001 return __assign$9v.apply(this, arguments);
27002 };
27003 var LocalPharmacyFontIcon = React.forwardRef(function LocalPharmacyFontIcon(props, ref) {
27004 return (React__default.createElement(FontIcon, __assign$9v({}, props, { ref: ref }), "local_pharmacy"));
27005 });
27006
27007 var __assign$9w = (undefined && undefined.__assign) || function () {
27008 __assign$9w = Object.assign || function(t) {
27009 for (var s, i = 1, n = arguments.length; i < n; i++) {
27010 s = arguments[i];
27011 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27012 t[p] = s[p];
27013 }
27014 return t;
27015 };
27016 return __assign$9w.apply(this, arguments);
27017 };
27018 var LocalPhoneFontIcon = React.forwardRef(function LocalPhoneFontIcon(props, ref) {
27019 return (React__default.createElement(FontIcon, __assign$9w({}, props, { ref: ref }), "local_phone"));
27020 });
27021
27022 var __assign$9x = (undefined && undefined.__assign) || function () {
27023 __assign$9x = Object.assign || function(t) {
27024 for (var s, i = 1, n = arguments.length; i < n; i++) {
27025 s = arguments[i];
27026 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27027 t[p] = s[p];
27028 }
27029 return t;
27030 };
27031 return __assign$9x.apply(this, arguments);
27032 };
27033 var LocalPizzaFontIcon = React.forwardRef(function LocalPizzaFontIcon(props, ref) {
27034 return (React__default.createElement(FontIcon, __assign$9x({}, props, { ref: ref }), "local_pizza"));
27035 });
27036
27037 var __assign$9y = (undefined && undefined.__assign) || function () {
27038 __assign$9y = Object.assign || function(t) {
27039 for (var s, i = 1, n = arguments.length; i < n; i++) {
27040 s = arguments[i];
27041 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27042 t[p] = s[p];
27043 }
27044 return t;
27045 };
27046 return __assign$9y.apply(this, arguments);
27047 };
27048 var LocalPlayFontIcon = React.forwardRef(function LocalPlayFontIcon(props, ref) {
27049 return (React__default.createElement(FontIcon, __assign$9y({}, props, { ref: ref }), "local_play"));
27050 });
27051
27052 var __assign$9z = (undefined && undefined.__assign) || function () {
27053 __assign$9z = Object.assign || function(t) {
27054 for (var s, i = 1, n = arguments.length; i < n; i++) {
27055 s = arguments[i];
27056 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27057 t[p] = s[p];
27058 }
27059 return t;
27060 };
27061 return __assign$9z.apply(this, arguments);
27062 };
27063 var LocalPostOfficeFontIcon = React.forwardRef(function LocalPostOfficeFontIcon(props, ref) {
27064 return (React__default.createElement(FontIcon, __assign$9z({}, props, { ref: ref }), "local_post_office"));
27065 });
27066
27067 var __assign$9A = (undefined && undefined.__assign) || function () {
27068 __assign$9A = Object.assign || function(t) {
27069 for (var s, i = 1, n = arguments.length; i < n; i++) {
27070 s = arguments[i];
27071 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27072 t[p] = s[p];
27073 }
27074 return t;
27075 };
27076 return __assign$9A.apply(this, arguments);
27077 };
27078 var LocalPrintshopFontIcon = React.forwardRef(function LocalPrintshopFontIcon(props, ref) {
27079 return (React__default.createElement(FontIcon, __assign$9A({}, props, { ref: ref }), "local_printshop"));
27080 });
27081
27082 var __assign$9B = (undefined && undefined.__assign) || function () {
27083 __assign$9B = Object.assign || function(t) {
27084 for (var s, i = 1, n = arguments.length; i < n; i++) {
27085 s = arguments[i];
27086 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27087 t[p] = s[p];
27088 }
27089 return t;
27090 };
27091 return __assign$9B.apply(this, arguments);
27092 };
27093 var LocalSeeFontIcon = React.forwardRef(function LocalSeeFontIcon(props, ref) {
27094 return (React__default.createElement(FontIcon, __assign$9B({}, props, { ref: ref }), "local_see"));
27095 });
27096
27097 var __assign$9C = (undefined && undefined.__assign) || function () {
27098 __assign$9C = Object.assign || function(t) {
27099 for (var s, i = 1, n = arguments.length; i < n; i++) {
27100 s = arguments[i];
27101 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27102 t[p] = s[p];
27103 }
27104 return t;
27105 };
27106 return __assign$9C.apply(this, arguments);
27107 };
27108 var LocalShippingFontIcon = React.forwardRef(function LocalShippingFontIcon(props, ref) {
27109 return (React__default.createElement(FontIcon, __assign$9C({}, props, { ref: ref }), "local_shipping"));
27110 });
27111
27112 var __assign$9D = (undefined && undefined.__assign) || function () {
27113 __assign$9D = Object.assign || function(t) {
27114 for (var s, i = 1, n = arguments.length; i < n; i++) {
27115 s = arguments[i];
27116 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27117 t[p] = s[p];
27118 }
27119 return t;
27120 };
27121 return __assign$9D.apply(this, arguments);
27122 };
27123 var LocalTaxiFontIcon = React.forwardRef(function LocalTaxiFontIcon(props, ref) {
27124 return (React__default.createElement(FontIcon, __assign$9D({}, props, { ref: ref }), "local_taxi"));
27125 });
27126
27127 var __assign$9E = (undefined && undefined.__assign) || function () {
27128 __assign$9E = Object.assign || function(t) {
27129 for (var s, i = 1, n = arguments.length; i < n; i++) {
27130 s = arguments[i];
27131 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27132 t[p] = s[p];
27133 }
27134 return t;
27135 };
27136 return __assign$9E.apply(this, arguments);
27137 };
27138 var LocationCityFontIcon = React.forwardRef(function LocationCityFontIcon(props, ref) {
27139 return (React__default.createElement(FontIcon, __assign$9E({}, props, { ref: ref }), "location_city"));
27140 });
27141
27142 var __assign$9F = (undefined && undefined.__assign) || function () {
27143 __assign$9F = Object.assign || function(t) {
27144 for (var s, i = 1, n = arguments.length; i < n; i++) {
27145 s = arguments[i];
27146 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27147 t[p] = s[p];
27148 }
27149 return t;
27150 };
27151 return __assign$9F.apply(this, arguments);
27152 };
27153 var LocationDisabledFontIcon = React.forwardRef(function LocationDisabledFontIcon(props, ref) {
27154 return (React__default.createElement(FontIcon, __assign$9F({}, props, { ref: ref }), "location_disabled"));
27155 });
27156
27157 var __assign$9G = (undefined && undefined.__assign) || function () {
27158 __assign$9G = Object.assign || function(t) {
27159 for (var s, i = 1, n = arguments.length; i < n; i++) {
27160 s = arguments[i];
27161 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27162 t[p] = s[p];
27163 }
27164 return t;
27165 };
27166 return __assign$9G.apply(this, arguments);
27167 };
27168 var LocationOffFontIcon = React.forwardRef(function LocationOffFontIcon(props, ref) {
27169 return (React__default.createElement(FontIcon, __assign$9G({}, props, { ref: ref }), "location_off"));
27170 });
27171
27172 var __assign$9H = (undefined && undefined.__assign) || function () {
27173 __assign$9H = Object.assign || function(t) {
27174 for (var s, i = 1, n = arguments.length; i < n; i++) {
27175 s = arguments[i];
27176 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27177 t[p] = s[p];
27178 }
27179 return t;
27180 };
27181 return __assign$9H.apply(this, arguments);
27182 };
27183 var LocationOnFontIcon = React.forwardRef(function LocationOnFontIcon(props, ref) {
27184 return (React__default.createElement(FontIcon, __assign$9H({}, props, { ref: ref }), "location_on"));
27185 });
27186
27187 var __assign$9I = (undefined && undefined.__assign) || function () {
27188 __assign$9I = Object.assign || function(t) {
27189 for (var s, i = 1, n = arguments.length; i < n; i++) {
27190 s = arguments[i];
27191 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27192 t[p] = s[p];
27193 }
27194 return t;
27195 };
27196 return __assign$9I.apply(this, arguments);
27197 };
27198 var LocationSearchingFontIcon = React.forwardRef(function LocationSearchingFontIcon(props, ref) {
27199 return (React__default.createElement(FontIcon, __assign$9I({}, props, { ref: ref }), "location_searching"));
27200 });
27201
27202 var __assign$9J = (undefined && undefined.__assign) || function () {
27203 __assign$9J = Object.assign || function(t) {
27204 for (var s, i = 1, n = arguments.length; i < n; i++) {
27205 s = arguments[i];
27206 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27207 t[p] = s[p];
27208 }
27209 return t;
27210 };
27211 return __assign$9J.apply(this, arguments);
27212 };
27213 var LockOpenFontIcon = React.forwardRef(function LockOpenFontIcon(props, ref) {
27214 return (React__default.createElement(FontIcon, __assign$9J({}, props, { ref: ref }), "lock_open"));
27215 });
27216
27217 var __assign$9K = (undefined && undefined.__assign) || function () {
27218 __assign$9K = Object.assign || function(t) {
27219 for (var s, i = 1, n = arguments.length; i < n; i++) {
27220 s = arguments[i];
27221 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27222 t[p] = s[p];
27223 }
27224 return t;
27225 };
27226 return __assign$9K.apply(this, arguments);
27227 };
27228 var LockOutlineFontIcon = React.forwardRef(function LockOutlineFontIcon(props, ref) {
27229 return (React__default.createElement(FontIcon, __assign$9K({}, props, { ref: ref }), "lock_outline"));
27230 });
27231
27232 var __assign$9L = (undefined && undefined.__assign) || function () {
27233 __assign$9L = Object.assign || function(t) {
27234 for (var s, i = 1, n = arguments.length; i < n; i++) {
27235 s = arguments[i];
27236 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27237 t[p] = s[p];
27238 }
27239 return t;
27240 };
27241 return __assign$9L.apply(this, arguments);
27242 };
27243 var LockFontIcon = React.forwardRef(function LockFontIcon(props, ref) {
27244 return (React__default.createElement(FontIcon, __assign$9L({}, props, { ref: ref }), "lock"));
27245 });
27246
27247 var __assign$9M = (undefined && undefined.__assign) || function () {
27248 __assign$9M = Object.assign || function(t) {
27249 for (var s, i = 1, n = arguments.length; i < n; i++) {
27250 s = arguments[i];
27251 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27252 t[p] = s[p];
27253 }
27254 return t;
27255 };
27256 return __assign$9M.apply(this, arguments);
27257 };
27258 var Looks3FontIcon = React.forwardRef(function Looks3FontIcon(props, ref) {
27259 return (React__default.createElement(FontIcon, __assign$9M({}, props, { ref: ref }), "looks_3"));
27260 });
27261
27262 var __assign$9N = (undefined && undefined.__assign) || function () {
27263 __assign$9N = Object.assign || function(t) {
27264 for (var s, i = 1, n = arguments.length; i < n; i++) {
27265 s = arguments[i];
27266 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27267 t[p] = s[p];
27268 }
27269 return t;
27270 };
27271 return __assign$9N.apply(this, arguments);
27272 };
27273 var Looks4FontIcon = React.forwardRef(function Looks4FontIcon(props, ref) {
27274 return (React__default.createElement(FontIcon, __assign$9N({}, props, { ref: ref }), "looks_4"));
27275 });
27276
27277 var __assign$9O = (undefined && undefined.__assign) || function () {
27278 __assign$9O = Object.assign || function(t) {
27279 for (var s, i = 1, n = arguments.length; i < n; i++) {
27280 s = arguments[i];
27281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27282 t[p] = s[p];
27283 }
27284 return t;
27285 };
27286 return __assign$9O.apply(this, arguments);
27287 };
27288 var Looks5FontIcon = React.forwardRef(function Looks5FontIcon(props, ref) {
27289 return (React__default.createElement(FontIcon, __assign$9O({}, props, { ref: ref }), "looks_5"));
27290 });
27291
27292 var __assign$9P = (undefined && undefined.__assign) || function () {
27293 __assign$9P = Object.assign || function(t) {
27294 for (var s, i = 1, n = arguments.length; i < n; i++) {
27295 s = arguments[i];
27296 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27297 t[p] = s[p];
27298 }
27299 return t;
27300 };
27301 return __assign$9P.apply(this, arguments);
27302 };
27303 var Looks6FontIcon = React.forwardRef(function Looks6FontIcon(props, ref) {
27304 return (React__default.createElement(FontIcon, __assign$9P({}, props, { ref: ref }), "looks_6"));
27305 });
27306
27307 var __assign$9Q = (undefined && undefined.__assign) || function () {
27308 __assign$9Q = Object.assign || function(t) {
27309 for (var s, i = 1, n = arguments.length; i < n; i++) {
27310 s = arguments[i];
27311 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27312 t[p] = s[p];
27313 }
27314 return t;
27315 };
27316 return __assign$9Q.apply(this, arguments);
27317 };
27318 var LooksOneFontIcon = React.forwardRef(function LooksOneFontIcon(props, ref) {
27319 return (React__default.createElement(FontIcon, __assign$9Q({}, props, { ref: ref }), "looks_one"));
27320 });
27321
27322 var __assign$9R = (undefined && undefined.__assign) || function () {
27323 __assign$9R = Object.assign || function(t) {
27324 for (var s, i = 1, n = arguments.length; i < n; i++) {
27325 s = arguments[i];
27326 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27327 t[p] = s[p];
27328 }
27329 return t;
27330 };
27331 return __assign$9R.apply(this, arguments);
27332 };
27333 var LooksTwoFontIcon = React.forwardRef(function LooksTwoFontIcon(props, ref) {
27334 return (React__default.createElement(FontIcon, __assign$9R({}, props, { ref: ref }), "looks_two"));
27335 });
27336
27337 var __assign$9S = (undefined && undefined.__assign) || function () {
27338 __assign$9S = Object.assign || function(t) {
27339 for (var s, i = 1, n = arguments.length; i < n; i++) {
27340 s = arguments[i];
27341 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27342 t[p] = s[p];
27343 }
27344 return t;
27345 };
27346 return __assign$9S.apply(this, arguments);
27347 };
27348 var LooksFontIcon = React.forwardRef(function LooksFontIcon(props, ref) {
27349 return (React__default.createElement(FontIcon, __assign$9S({}, props, { ref: ref }), "looks"));
27350 });
27351
27352 var __assign$9T = (undefined && undefined.__assign) || function () {
27353 __assign$9T = Object.assign || function(t) {
27354 for (var s, i = 1, n = arguments.length; i < n; i++) {
27355 s = arguments[i];
27356 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27357 t[p] = s[p];
27358 }
27359 return t;
27360 };
27361 return __assign$9T.apply(this, arguments);
27362 };
27363 var LoopFontIcon = React.forwardRef(function LoopFontIcon(props, ref) {
27364 return (React__default.createElement(FontIcon, __assign$9T({}, props, { ref: ref }), "loop"));
27365 });
27366
27367 var __assign$9U = (undefined && undefined.__assign) || function () {
27368 __assign$9U = Object.assign || function(t) {
27369 for (var s, i = 1, n = arguments.length; i < n; i++) {
27370 s = arguments[i];
27371 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27372 t[p] = s[p];
27373 }
27374 return t;
27375 };
27376 return __assign$9U.apply(this, arguments);
27377 };
27378 var LoupeFontIcon = React.forwardRef(function LoupeFontIcon(props, ref) {
27379 return (React__default.createElement(FontIcon, __assign$9U({}, props, { ref: ref }), "loupe"));
27380 });
27381
27382 var __assign$9V = (undefined && undefined.__assign) || function () {
27383 __assign$9V = Object.assign || function(t) {
27384 for (var s, i = 1, n = arguments.length; i < n; i++) {
27385 s = arguments[i];
27386 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27387 t[p] = s[p];
27388 }
27389 return t;
27390 };
27391 return __assign$9V.apply(this, arguments);
27392 };
27393 var LowPriorityFontIcon = React.forwardRef(function LowPriorityFontIcon(props, ref) {
27394 return (React__default.createElement(FontIcon, __assign$9V({}, props, { ref: ref }), "low_priority"));
27395 });
27396
27397 var __assign$9W = (undefined && undefined.__assign) || function () {
27398 __assign$9W = Object.assign || function(t) {
27399 for (var s, i = 1, n = arguments.length; i < n; i++) {
27400 s = arguments[i];
27401 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27402 t[p] = s[p];
27403 }
27404 return t;
27405 };
27406 return __assign$9W.apply(this, arguments);
27407 };
27408 var LoyaltyFontIcon = React.forwardRef(function LoyaltyFontIcon(props, ref) {
27409 return (React__default.createElement(FontIcon, __assign$9W({}, props, { ref: ref }), "loyalty"));
27410 });
27411
27412 var __assign$9X = (undefined && undefined.__assign) || function () {
27413 __assign$9X = Object.assign || function(t) {
27414 for (var s, i = 1, n = arguments.length; i < n; i++) {
27415 s = arguments[i];
27416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27417 t[p] = s[p];
27418 }
27419 return t;
27420 };
27421 return __assign$9X.apply(this, arguments);
27422 };
27423 var MailOutlineFontIcon = React.forwardRef(function MailOutlineFontIcon(props, ref) {
27424 return (React__default.createElement(FontIcon, __assign$9X({}, props, { ref: ref }), "mail_outline"));
27425 });
27426
27427 var __assign$9Y = (undefined && undefined.__assign) || function () {
27428 __assign$9Y = Object.assign || function(t) {
27429 for (var s, i = 1, n = arguments.length; i < n; i++) {
27430 s = arguments[i];
27431 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27432 t[p] = s[p];
27433 }
27434 return t;
27435 };
27436 return __assign$9Y.apply(this, arguments);
27437 };
27438 var MailFontIcon = React.forwardRef(function MailFontIcon(props, ref) {
27439 return (React__default.createElement(FontIcon, __assign$9Y({}, props, { ref: ref }), "mail"));
27440 });
27441
27442 var __assign$9Z = (undefined && undefined.__assign) || function () {
27443 __assign$9Z = Object.assign || function(t) {
27444 for (var s, i = 1, n = arguments.length; i < n; i++) {
27445 s = arguments[i];
27446 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27447 t[p] = s[p];
27448 }
27449 return t;
27450 };
27451 return __assign$9Z.apply(this, arguments);
27452 };
27453 var MapFontIcon = React.forwardRef(function MapFontIcon(props, ref) {
27454 return (React__default.createElement(FontIcon, __assign$9Z({}, props, { ref: ref }), "map"));
27455 });
27456
27457 var __assign$9_ = (undefined && undefined.__assign) || function () {
27458 __assign$9_ = Object.assign || function(t) {
27459 for (var s, i = 1, n = arguments.length; i < n; i++) {
27460 s = arguments[i];
27461 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27462 t[p] = s[p];
27463 }
27464 return t;
27465 };
27466 return __assign$9_.apply(this, arguments);
27467 };
27468 var MarkunreadMailboxFontIcon = React.forwardRef(function MarkunreadMailboxFontIcon(props, ref) {
27469 return (React__default.createElement(FontIcon, __assign$9_({}, props, { ref: ref }), "markunread_mailbox"));
27470 });
27471
27472 var __assign$9$ = (undefined && undefined.__assign) || function () {
27473 __assign$9$ = Object.assign || function(t) {
27474 for (var s, i = 1, n = arguments.length; i < n; i++) {
27475 s = arguments[i];
27476 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27477 t[p] = s[p];
27478 }
27479 return t;
27480 };
27481 return __assign$9$.apply(this, arguments);
27482 };
27483 var MarkunreadFontIcon = React.forwardRef(function MarkunreadFontIcon(props, ref) {
27484 return (React__default.createElement(FontIcon, __assign$9$({}, props, { ref: ref }), "markunread"));
27485 });
27486
27487 var __assign$a0 = (undefined && undefined.__assign) || function () {
27488 __assign$a0 = Object.assign || function(t) {
27489 for (var s, i = 1, n = arguments.length; i < n; i++) {
27490 s = arguments[i];
27491 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27492 t[p] = s[p];
27493 }
27494 return t;
27495 };
27496 return __assign$a0.apply(this, arguments);
27497 };
27498 var MemoryFontIcon = React.forwardRef(function MemoryFontIcon(props, ref) {
27499 return (React__default.createElement(FontIcon, __assign$a0({}, props, { ref: ref }), "memory"));
27500 });
27501
27502 var __assign$a1 = (undefined && undefined.__assign) || function () {
27503 __assign$a1 = Object.assign || function(t) {
27504 for (var s, i = 1, n = arguments.length; i < n; i++) {
27505 s = arguments[i];
27506 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27507 t[p] = s[p];
27508 }
27509 return t;
27510 };
27511 return __assign$a1.apply(this, arguments);
27512 };
27513 var MenuFontIcon = React.forwardRef(function MenuFontIcon(props, ref) {
27514 return (React__default.createElement(FontIcon, __assign$a1({}, props, { ref: ref }), "menu"));
27515 });
27516
27517 var __assign$a2 = (undefined && undefined.__assign) || function () {
27518 __assign$a2 = Object.assign || function(t) {
27519 for (var s, i = 1, n = arguments.length; i < n; i++) {
27520 s = arguments[i];
27521 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27522 t[p] = s[p];
27523 }
27524 return t;
27525 };
27526 return __assign$a2.apply(this, arguments);
27527 };
27528 var MergeTypeFontIcon = React.forwardRef(function MergeTypeFontIcon(props, ref) {
27529 return (React__default.createElement(FontIcon, __assign$a2({}, props, { ref: ref }), "merge_type"));
27530 });
27531
27532 var __assign$a3 = (undefined && undefined.__assign) || function () {
27533 __assign$a3 = Object.assign || function(t) {
27534 for (var s, i = 1, n = arguments.length; i < n; i++) {
27535 s = arguments[i];
27536 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27537 t[p] = s[p];
27538 }
27539 return t;
27540 };
27541 return __assign$a3.apply(this, arguments);
27542 };
27543 var MessageFontIcon = React.forwardRef(function MessageFontIcon(props, ref) {
27544 return (React__default.createElement(FontIcon, __assign$a3({}, props, { ref: ref }), "message"));
27545 });
27546
27547 var __assign$a4 = (undefined && undefined.__assign) || function () {
27548 __assign$a4 = Object.assign || function(t) {
27549 for (var s, i = 1, n = arguments.length; i < n; i++) {
27550 s = arguments[i];
27551 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27552 t[p] = s[p];
27553 }
27554 return t;
27555 };
27556 return __assign$a4.apply(this, arguments);
27557 };
27558 var MicNoneFontIcon = React.forwardRef(function MicNoneFontIcon(props, ref) {
27559 return (React__default.createElement(FontIcon, __assign$a4({}, props, { ref: ref }), "mic_none"));
27560 });
27561
27562 var __assign$a5 = (undefined && undefined.__assign) || function () {
27563 __assign$a5 = Object.assign || function(t) {
27564 for (var s, i = 1, n = arguments.length; i < n; i++) {
27565 s = arguments[i];
27566 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27567 t[p] = s[p];
27568 }
27569 return t;
27570 };
27571 return __assign$a5.apply(this, arguments);
27572 };
27573 var MicOffFontIcon = React.forwardRef(function MicOffFontIcon(props, ref) {
27574 return (React__default.createElement(FontIcon, __assign$a5({}, props, { ref: ref }), "mic_off"));
27575 });
27576
27577 var __assign$a6 = (undefined && undefined.__assign) || function () {
27578 __assign$a6 = Object.assign || function(t) {
27579 for (var s, i = 1, n = arguments.length; i < n; i++) {
27580 s = arguments[i];
27581 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27582 t[p] = s[p];
27583 }
27584 return t;
27585 };
27586 return __assign$a6.apply(this, arguments);
27587 };
27588 var MicFontIcon = React.forwardRef(function MicFontIcon(props, ref) {
27589 return (React__default.createElement(FontIcon, __assign$a6({}, props, { ref: ref }), "mic"));
27590 });
27591
27592 var __assign$a7 = (undefined && undefined.__assign) || function () {
27593 __assign$a7 = Object.assign || function(t) {
27594 for (var s, i = 1, n = arguments.length; i < n; i++) {
27595 s = arguments[i];
27596 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27597 t[p] = s[p];
27598 }
27599 return t;
27600 };
27601 return __assign$a7.apply(this, arguments);
27602 };
27603 var MmsFontIcon = React.forwardRef(function MmsFontIcon(props, ref) {
27604 return (React__default.createElement(FontIcon, __assign$a7({}, props, { ref: ref }), "mms"));
27605 });
27606
27607 var __assign$a8 = (undefined && undefined.__assign) || function () {
27608 __assign$a8 = Object.assign || function(t) {
27609 for (var s, i = 1, n = arguments.length; i < n; i++) {
27610 s = arguments[i];
27611 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27612 t[p] = s[p];
27613 }
27614 return t;
27615 };
27616 return __assign$a8.apply(this, arguments);
27617 };
27618 var ModeCommentFontIcon = React.forwardRef(function ModeCommentFontIcon(props, ref) {
27619 return (React__default.createElement(FontIcon, __assign$a8({}, props, { ref: ref }), "mode_comment"));
27620 });
27621
27622 var __assign$a9 = (undefined && undefined.__assign) || function () {
27623 __assign$a9 = Object.assign || function(t) {
27624 for (var s, i = 1, n = arguments.length; i < n; i++) {
27625 s = arguments[i];
27626 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27627 t[p] = s[p];
27628 }
27629 return t;
27630 };
27631 return __assign$a9.apply(this, arguments);
27632 };
27633 var ModeEditFontIcon = React.forwardRef(function ModeEditFontIcon(props, ref) {
27634 return (React__default.createElement(FontIcon, __assign$a9({}, props, { ref: ref }), "mode_edit"));
27635 });
27636
27637 var __assign$aa = (undefined && undefined.__assign) || function () {
27638 __assign$aa = Object.assign || function(t) {
27639 for (var s, i = 1, n = arguments.length; i < n; i++) {
27640 s = arguments[i];
27641 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27642 t[p] = s[p];
27643 }
27644 return t;
27645 };
27646 return __assign$aa.apply(this, arguments);
27647 };
27648 var MonetizationOnFontIcon = React.forwardRef(function MonetizationOnFontIcon(props, ref) {
27649 return (React__default.createElement(FontIcon, __assign$aa({}, props, { ref: ref }), "monetization_on"));
27650 });
27651
27652 var __assign$ab = (undefined && undefined.__assign) || function () {
27653 __assign$ab = Object.assign || function(t) {
27654 for (var s, i = 1, n = arguments.length; i < n; i++) {
27655 s = arguments[i];
27656 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27657 t[p] = s[p];
27658 }
27659 return t;
27660 };
27661 return __assign$ab.apply(this, arguments);
27662 };
27663 var MoneyOffFontIcon = React.forwardRef(function MoneyOffFontIcon(props, ref) {
27664 return (React__default.createElement(FontIcon, __assign$ab({}, props, { ref: ref }), "money_off"));
27665 });
27666
27667 var __assign$ac = (undefined && undefined.__assign) || function () {
27668 __assign$ac = Object.assign || function(t) {
27669 for (var s, i = 1, n = arguments.length; i < n; i++) {
27670 s = arguments[i];
27671 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27672 t[p] = s[p];
27673 }
27674 return t;
27675 };
27676 return __assign$ac.apply(this, arguments);
27677 };
27678 var MonochromePhotosFontIcon = React.forwardRef(function MonochromePhotosFontIcon(props, ref) {
27679 return (React__default.createElement(FontIcon, __assign$ac({}, props, { ref: ref }), "monochrome_photos"));
27680 });
27681
27682 var __assign$ad = (undefined && undefined.__assign) || function () {
27683 __assign$ad = Object.assign || function(t) {
27684 for (var s, i = 1, n = arguments.length; i < n; i++) {
27685 s = arguments[i];
27686 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27687 t[p] = s[p];
27688 }
27689 return t;
27690 };
27691 return __assign$ad.apply(this, arguments);
27692 };
27693 var MoodBadFontIcon = React.forwardRef(function MoodBadFontIcon(props, ref) {
27694 return (React__default.createElement(FontIcon, __assign$ad({}, props, { ref: ref }), "mood_bad"));
27695 });
27696
27697 var __assign$ae = (undefined && undefined.__assign) || function () {
27698 __assign$ae = Object.assign || function(t) {
27699 for (var s, i = 1, n = arguments.length; i < n; i++) {
27700 s = arguments[i];
27701 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27702 t[p] = s[p];
27703 }
27704 return t;
27705 };
27706 return __assign$ae.apply(this, arguments);
27707 };
27708 var MoodFontIcon = React.forwardRef(function MoodFontIcon(props, ref) {
27709 return (React__default.createElement(FontIcon, __assign$ae({}, props, { ref: ref }), "mood"));
27710 });
27711
27712 var __assign$af = (undefined && undefined.__assign) || function () {
27713 __assign$af = Object.assign || function(t) {
27714 for (var s, i = 1, n = arguments.length; i < n; i++) {
27715 s = arguments[i];
27716 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27717 t[p] = s[p];
27718 }
27719 return t;
27720 };
27721 return __assign$af.apply(this, arguments);
27722 };
27723 var MoreHorizFontIcon = React.forwardRef(function MoreHorizFontIcon(props, ref) {
27724 return (React__default.createElement(FontIcon, __assign$af({}, props, { ref: ref }), "more_horiz"));
27725 });
27726
27727 var __assign$ag = (undefined && undefined.__assign) || function () {
27728 __assign$ag = Object.assign || function(t) {
27729 for (var s, i = 1, n = arguments.length; i < n; i++) {
27730 s = arguments[i];
27731 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27732 t[p] = s[p];
27733 }
27734 return t;
27735 };
27736 return __assign$ag.apply(this, arguments);
27737 };
27738 var MoreVertFontIcon = React.forwardRef(function MoreVertFontIcon(props, ref) {
27739 return (React__default.createElement(FontIcon, __assign$ag({}, props, { ref: ref }), "more_vert"));
27740 });
27741
27742 var __assign$ah = (undefined && undefined.__assign) || function () {
27743 __assign$ah = Object.assign || function(t) {
27744 for (var s, i = 1, n = arguments.length; i < n; i++) {
27745 s = arguments[i];
27746 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27747 t[p] = s[p];
27748 }
27749 return t;
27750 };
27751 return __assign$ah.apply(this, arguments);
27752 };
27753 var MoreFontIcon = React.forwardRef(function MoreFontIcon(props, ref) {
27754 return (React__default.createElement(FontIcon, __assign$ah({}, props, { ref: ref }), "more"));
27755 });
27756
27757 var __assign$ai = (undefined && undefined.__assign) || function () {
27758 __assign$ai = Object.assign || function(t) {
27759 for (var s, i = 1, n = arguments.length; i < n; i++) {
27760 s = arguments[i];
27761 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27762 t[p] = s[p];
27763 }
27764 return t;
27765 };
27766 return __assign$ai.apply(this, arguments);
27767 };
27768 var MotorcycleFontIcon = React.forwardRef(function MotorcycleFontIcon(props, ref) {
27769 return (React__default.createElement(FontIcon, __assign$ai({}, props, { ref: ref }), "motorcycle"));
27770 });
27771
27772 var __assign$aj = (undefined && undefined.__assign) || function () {
27773 __assign$aj = Object.assign || function(t) {
27774 for (var s, i = 1, n = arguments.length; i < n; i++) {
27775 s = arguments[i];
27776 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27777 t[p] = s[p];
27778 }
27779 return t;
27780 };
27781 return __assign$aj.apply(this, arguments);
27782 };
27783 var MouseFontIcon = React.forwardRef(function MouseFontIcon(props, ref) {
27784 return (React__default.createElement(FontIcon, __assign$aj({}, props, { ref: ref }), "mouse"));
27785 });
27786
27787 var __assign$ak = (undefined && undefined.__assign) || function () {
27788 __assign$ak = Object.assign || function(t) {
27789 for (var s, i = 1, n = arguments.length; i < n; i++) {
27790 s = arguments[i];
27791 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27792 t[p] = s[p];
27793 }
27794 return t;
27795 };
27796 return __assign$ak.apply(this, arguments);
27797 };
27798 var MoveToInboxFontIcon = React.forwardRef(function MoveToInboxFontIcon(props, ref) {
27799 return (React__default.createElement(FontIcon, __assign$ak({}, props, { ref: ref }), "move_to_inbox"));
27800 });
27801
27802 var __assign$al = (undefined && undefined.__assign) || function () {
27803 __assign$al = Object.assign || function(t) {
27804 for (var s, i = 1, n = arguments.length; i < n; i++) {
27805 s = arguments[i];
27806 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27807 t[p] = s[p];
27808 }
27809 return t;
27810 };
27811 return __assign$al.apply(this, arguments);
27812 };
27813 var MovieCreationFontIcon = React.forwardRef(function MovieCreationFontIcon(props, ref) {
27814 return (React__default.createElement(FontIcon, __assign$al({}, props, { ref: ref }), "movie_creation"));
27815 });
27816
27817 var __assign$am = (undefined && undefined.__assign) || function () {
27818 __assign$am = Object.assign || function(t) {
27819 for (var s, i = 1, n = arguments.length; i < n; i++) {
27820 s = arguments[i];
27821 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27822 t[p] = s[p];
27823 }
27824 return t;
27825 };
27826 return __assign$am.apply(this, arguments);
27827 };
27828 var MovieFilterFontIcon = React.forwardRef(function MovieFilterFontIcon(props, ref) {
27829 return (React__default.createElement(FontIcon, __assign$am({}, props, { ref: ref }), "movie_filter"));
27830 });
27831
27832 var __assign$an = (undefined && undefined.__assign) || function () {
27833 __assign$an = Object.assign || function(t) {
27834 for (var s, i = 1, n = arguments.length; i < n; i++) {
27835 s = arguments[i];
27836 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27837 t[p] = s[p];
27838 }
27839 return t;
27840 };
27841 return __assign$an.apply(this, arguments);
27842 };
27843 var MovieFontIcon = React.forwardRef(function MovieFontIcon(props, ref) {
27844 return (React__default.createElement(FontIcon, __assign$an({}, props, { ref: ref }), "movie"));
27845 });
27846
27847 var __assign$ao = (undefined && undefined.__assign) || function () {
27848 __assign$ao = Object.assign || function(t) {
27849 for (var s, i = 1, n = arguments.length; i < n; i++) {
27850 s = arguments[i];
27851 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27852 t[p] = s[p];
27853 }
27854 return t;
27855 };
27856 return __assign$ao.apply(this, arguments);
27857 };
27858 var MultilineChartFontIcon = React.forwardRef(function MultilineChartFontIcon(props, ref) {
27859 return (React__default.createElement(FontIcon, __assign$ao({}, props, { ref: ref }), "multiline_chart"));
27860 });
27861
27862 var __assign$ap = (undefined && undefined.__assign) || function () {
27863 __assign$ap = Object.assign || function(t) {
27864 for (var s, i = 1, n = arguments.length; i < n; i++) {
27865 s = arguments[i];
27866 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27867 t[p] = s[p];
27868 }
27869 return t;
27870 };
27871 return __assign$ap.apply(this, arguments);
27872 };
27873 var MusicNoteFontIcon = React.forwardRef(function MusicNoteFontIcon(props, ref) {
27874 return (React__default.createElement(FontIcon, __assign$ap({}, props, { ref: ref }), "music_note"));
27875 });
27876
27877 var __assign$aq = (undefined && undefined.__assign) || function () {
27878 __assign$aq = Object.assign || function(t) {
27879 for (var s, i = 1, n = arguments.length; i < n; i++) {
27880 s = arguments[i];
27881 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27882 t[p] = s[p];
27883 }
27884 return t;
27885 };
27886 return __assign$aq.apply(this, arguments);
27887 };
27888 var MusicVideoFontIcon = React.forwardRef(function MusicVideoFontIcon(props, ref) {
27889 return (React__default.createElement(FontIcon, __assign$aq({}, props, { ref: ref }), "music_video"));
27890 });
27891
27892 var __assign$ar = (undefined && undefined.__assign) || function () {
27893 __assign$ar = Object.assign || function(t) {
27894 for (var s, i = 1, n = arguments.length; i < n; i++) {
27895 s = arguments[i];
27896 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27897 t[p] = s[p];
27898 }
27899 return t;
27900 };
27901 return __assign$ar.apply(this, arguments);
27902 };
27903 var MyLocationFontIcon = React.forwardRef(function MyLocationFontIcon(props, ref) {
27904 return (React__default.createElement(FontIcon, __assign$ar({}, props, { ref: ref }), "my_location"));
27905 });
27906
27907 var __assign$as = (undefined && undefined.__assign) || function () {
27908 __assign$as = Object.assign || function(t) {
27909 for (var s, i = 1, n = arguments.length; i < n; i++) {
27910 s = arguments[i];
27911 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27912 t[p] = s[p];
27913 }
27914 return t;
27915 };
27916 return __assign$as.apply(this, arguments);
27917 };
27918 var NaturePeopleFontIcon = React.forwardRef(function NaturePeopleFontIcon(props, ref) {
27919 return (React__default.createElement(FontIcon, __assign$as({}, props, { ref: ref }), "nature_people"));
27920 });
27921
27922 var __assign$at = (undefined && undefined.__assign) || function () {
27923 __assign$at = Object.assign || function(t) {
27924 for (var s, i = 1, n = arguments.length; i < n; i++) {
27925 s = arguments[i];
27926 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27927 t[p] = s[p];
27928 }
27929 return t;
27930 };
27931 return __assign$at.apply(this, arguments);
27932 };
27933 var NatureFontIcon = React.forwardRef(function NatureFontIcon(props, ref) {
27934 return (React__default.createElement(FontIcon, __assign$at({}, props, { ref: ref }), "nature"));
27935 });
27936
27937 var __assign$au = (undefined && undefined.__assign) || function () {
27938 __assign$au = Object.assign || function(t) {
27939 for (var s, i = 1, n = arguments.length; i < n; i++) {
27940 s = arguments[i];
27941 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27942 t[p] = s[p];
27943 }
27944 return t;
27945 };
27946 return __assign$au.apply(this, arguments);
27947 };
27948 var NavigateBeforeFontIcon = React.forwardRef(function NavigateBeforeFontIcon(props, ref) {
27949 return (React__default.createElement(FontIcon, __assign$au({}, props, { ref: ref }), "navigate_before"));
27950 });
27951
27952 var __assign$av = (undefined && undefined.__assign) || function () {
27953 __assign$av = Object.assign || function(t) {
27954 for (var s, i = 1, n = arguments.length; i < n; i++) {
27955 s = arguments[i];
27956 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27957 t[p] = s[p];
27958 }
27959 return t;
27960 };
27961 return __assign$av.apply(this, arguments);
27962 };
27963 var NavigateNextFontIcon = React.forwardRef(function NavigateNextFontIcon(props, ref) {
27964 return (React__default.createElement(FontIcon, __assign$av({}, props, { ref: ref }), "navigate_next"));
27965 });
27966
27967 var __assign$aw = (undefined && undefined.__assign) || function () {
27968 __assign$aw = Object.assign || function(t) {
27969 for (var s, i = 1, n = arguments.length; i < n; i++) {
27970 s = arguments[i];
27971 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27972 t[p] = s[p];
27973 }
27974 return t;
27975 };
27976 return __assign$aw.apply(this, arguments);
27977 };
27978 var NavigationFontIcon = React.forwardRef(function NavigationFontIcon(props, ref) {
27979 return (React__default.createElement(FontIcon, __assign$aw({}, props, { ref: ref }), "navigation"));
27980 });
27981
27982 var __assign$ax = (undefined && undefined.__assign) || function () {
27983 __assign$ax = Object.assign || function(t) {
27984 for (var s, i = 1, n = arguments.length; i < n; i++) {
27985 s = arguments[i];
27986 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27987 t[p] = s[p];
27988 }
27989 return t;
27990 };
27991 return __assign$ax.apply(this, arguments);
27992 };
27993 var NearMeFontIcon = React.forwardRef(function NearMeFontIcon(props, ref) {
27994 return (React__default.createElement(FontIcon, __assign$ax({}, props, { ref: ref }), "near_me"));
27995 });
27996
27997 var __assign$ay = (undefined && undefined.__assign) || function () {
27998 __assign$ay = Object.assign || function(t) {
27999 for (var s, i = 1, n = arguments.length; i < n; i++) {
28000 s = arguments[i];
28001 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28002 t[p] = s[p];
28003 }
28004 return t;
28005 };
28006 return __assign$ay.apply(this, arguments);
28007 };
28008 var NetworkCellFontIcon = React.forwardRef(function NetworkCellFontIcon(props, ref) {
28009 return (React__default.createElement(FontIcon, __assign$ay({}, props, { ref: ref }), "network_cell"));
28010 });
28011
28012 var __assign$az = (undefined && undefined.__assign) || function () {
28013 __assign$az = Object.assign || function(t) {
28014 for (var s, i = 1, n = arguments.length; i < n; i++) {
28015 s = arguments[i];
28016 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28017 t[p] = s[p];
28018 }
28019 return t;
28020 };
28021 return __assign$az.apply(this, arguments);
28022 };
28023 var NetworkCheckFontIcon = React.forwardRef(function NetworkCheckFontIcon(props, ref) {
28024 return (React__default.createElement(FontIcon, __assign$az({}, props, { ref: ref }), "network_check"));
28025 });
28026
28027 var __assign$aA = (undefined && undefined.__assign) || function () {
28028 __assign$aA = Object.assign || function(t) {
28029 for (var s, i = 1, n = arguments.length; i < n; i++) {
28030 s = arguments[i];
28031 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28032 t[p] = s[p];
28033 }
28034 return t;
28035 };
28036 return __assign$aA.apply(this, arguments);
28037 };
28038 var NetworkLockedFontIcon = React.forwardRef(function NetworkLockedFontIcon(props, ref) {
28039 return (React__default.createElement(FontIcon, __assign$aA({}, props, { ref: ref }), "network_locked"));
28040 });
28041
28042 var __assign$aB = (undefined && undefined.__assign) || function () {
28043 __assign$aB = Object.assign || function(t) {
28044 for (var s, i = 1, n = arguments.length; i < n; i++) {
28045 s = arguments[i];
28046 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28047 t[p] = s[p];
28048 }
28049 return t;
28050 };
28051 return __assign$aB.apply(this, arguments);
28052 };
28053 var NetworkWifiFontIcon = React.forwardRef(function NetworkWifiFontIcon(props, ref) {
28054 return (React__default.createElement(FontIcon, __assign$aB({}, props, { ref: ref }), "network_wifi"));
28055 });
28056
28057 var __assign$aC = (undefined && undefined.__assign) || function () {
28058 __assign$aC = Object.assign || function(t) {
28059 for (var s, i = 1, n = arguments.length; i < n; i++) {
28060 s = arguments[i];
28061 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28062 t[p] = s[p];
28063 }
28064 return t;
28065 };
28066 return __assign$aC.apply(this, arguments);
28067 };
28068 var NewReleasesFontIcon = React.forwardRef(function NewReleasesFontIcon(props, ref) {
28069 return (React__default.createElement(FontIcon, __assign$aC({}, props, { ref: ref }), "new_releases"));
28070 });
28071
28072 var __assign$aD = (undefined && undefined.__assign) || function () {
28073 __assign$aD = Object.assign || function(t) {
28074 for (var s, i = 1, n = arguments.length; i < n; i++) {
28075 s = arguments[i];
28076 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28077 t[p] = s[p];
28078 }
28079 return t;
28080 };
28081 return __assign$aD.apply(this, arguments);
28082 };
28083 var NextWeekFontIcon = React.forwardRef(function NextWeekFontIcon(props, ref) {
28084 return (React__default.createElement(FontIcon, __assign$aD({}, props, { ref: ref }), "next_week"));
28085 });
28086
28087 var __assign$aE = (undefined && undefined.__assign) || function () {
28088 __assign$aE = Object.assign || function(t) {
28089 for (var s, i = 1, n = arguments.length; i < n; i++) {
28090 s = arguments[i];
28091 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28092 t[p] = s[p];
28093 }
28094 return t;
28095 };
28096 return __assign$aE.apply(this, arguments);
28097 };
28098 var NfcFontIcon = React.forwardRef(function NfcFontIcon(props, ref) {
28099 return (React__default.createElement(FontIcon, __assign$aE({}, props, { ref: ref }), "nfc"));
28100 });
28101
28102 var __assign$aF = (undefined && undefined.__assign) || function () {
28103 __assign$aF = Object.assign || function(t) {
28104 for (var s, i = 1, n = arguments.length; i < n; i++) {
28105 s = arguments[i];
28106 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28107 t[p] = s[p];
28108 }
28109 return t;
28110 };
28111 return __assign$aF.apply(this, arguments);
28112 };
28113 var NoEncryptionFontIcon = React.forwardRef(function NoEncryptionFontIcon(props, ref) {
28114 return (React__default.createElement(FontIcon, __assign$aF({}, props, { ref: ref }), "no_encryption"));
28115 });
28116
28117 var __assign$aG = (undefined && undefined.__assign) || function () {
28118 __assign$aG = Object.assign || function(t) {
28119 for (var s, i = 1, n = arguments.length; i < n; i++) {
28120 s = arguments[i];
28121 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28122 t[p] = s[p];
28123 }
28124 return t;
28125 };
28126 return __assign$aG.apply(this, arguments);
28127 };
28128 var NoSimFontIcon = React.forwardRef(function NoSimFontIcon(props, ref) {
28129 return (React__default.createElement(FontIcon, __assign$aG({}, props, { ref: ref }), "no_sim"));
28130 });
28131
28132 var __assign$aH = (undefined && undefined.__assign) || function () {
28133 __assign$aH = Object.assign || function(t) {
28134 for (var s, i = 1, n = arguments.length; i < n; i++) {
28135 s = arguments[i];
28136 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28137 t[p] = s[p];
28138 }
28139 return t;
28140 };
28141 return __assign$aH.apply(this, arguments);
28142 };
28143 var NotInterestedFontIcon = React.forwardRef(function NotInterestedFontIcon(props, ref) {
28144 return (React__default.createElement(FontIcon, __assign$aH({}, props, { ref: ref }), "not_interested"));
28145 });
28146
28147 var __assign$aI = (undefined && undefined.__assign) || function () {
28148 __assign$aI = Object.assign || function(t) {
28149 for (var s, i = 1, n = arguments.length; i < n; i++) {
28150 s = arguments[i];
28151 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28152 t[p] = s[p];
28153 }
28154 return t;
28155 };
28156 return __assign$aI.apply(this, arguments);
28157 };
28158 var NoteAddFontIcon = React.forwardRef(function NoteAddFontIcon(props, ref) {
28159 return (React__default.createElement(FontIcon, __assign$aI({}, props, { ref: ref }), "note_add"));
28160 });
28161
28162 var __assign$aJ = (undefined && undefined.__assign) || function () {
28163 __assign$aJ = Object.assign || function(t) {
28164 for (var s, i = 1, n = arguments.length; i < n; i++) {
28165 s = arguments[i];
28166 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28167 t[p] = s[p];
28168 }
28169 return t;
28170 };
28171 return __assign$aJ.apply(this, arguments);
28172 };
28173 var NoteFontIcon = React.forwardRef(function NoteFontIcon(props, ref) {
28174 return (React__default.createElement(FontIcon, __assign$aJ({}, props, { ref: ref }), "note"));
28175 });
28176
28177 var __assign$aK = (undefined && undefined.__assign) || function () {
28178 __assign$aK = Object.assign || function(t) {
28179 for (var s, i = 1, n = arguments.length; i < n; i++) {
28180 s = arguments[i];
28181 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28182 t[p] = s[p];
28183 }
28184 return t;
28185 };
28186 return __assign$aK.apply(this, arguments);
28187 };
28188 var NotificationsActiveFontIcon = React.forwardRef(function NotificationsActiveFontIcon(props, ref) {
28189 return (React__default.createElement(FontIcon, __assign$aK({}, props, { ref: ref }), "notifications_active"));
28190 });
28191
28192 var __assign$aL = (undefined && undefined.__assign) || function () {
28193 __assign$aL = Object.assign || function(t) {
28194 for (var s, i = 1, n = arguments.length; i < n; i++) {
28195 s = arguments[i];
28196 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28197 t[p] = s[p];
28198 }
28199 return t;
28200 };
28201 return __assign$aL.apply(this, arguments);
28202 };
28203 var NotificationsNoneFontIcon = React.forwardRef(function NotificationsNoneFontIcon(props, ref) {
28204 return (React__default.createElement(FontIcon, __assign$aL({}, props, { ref: ref }), "notifications_none"));
28205 });
28206
28207 var __assign$aM = (undefined && undefined.__assign) || function () {
28208 __assign$aM = Object.assign || function(t) {
28209 for (var s, i = 1, n = arguments.length; i < n; i++) {
28210 s = arguments[i];
28211 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28212 t[p] = s[p];
28213 }
28214 return t;
28215 };
28216 return __assign$aM.apply(this, arguments);
28217 };
28218 var NotificationsOffFontIcon = React.forwardRef(function NotificationsOffFontIcon(props, ref) {
28219 return (React__default.createElement(FontIcon, __assign$aM({}, props, { ref: ref }), "notifications_off"));
28220 });
28221
28222 var __assign$aN = (undefined && undefined.__assign) || function () {
28223 __assign$aN = Object.assign || function(t) {
28224 for (var s, i = 1, n = arguments.length; i < n; i++) {
28225 s = arguments[i];
28226 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28227 t[p] = s[p];
28228 }
28229 return t;
28230 };
28231 return __assign$aN.apply(this, arguments);
28232 };
28233 var NotificationsPausedFontIcon = React.forwardRef(function NotificationsPausedFontIcon(props, ref) {
28234 return (React__default.createElement(FontIcon, __assign$aN({}, props, { ref: ref }), "notifications_paused"));
28235 });
28236
28237 var __assign$aO = (undefined && undefined.__assign) || function () {
28238 __assign$aO = Object.assign || function(t) {
28239 for (var s, i = 1, n = arguments.length; i < n; i++) {
28240 s = arguments[i];
28241 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28242 t[p] = s[p];
28243 }
28244 return t;
28245 };
28246 return __assign$aO.apply(this, arguments);
28247 };
28248 var NotificationsFontIcon = React.forwardRef(function NotificationsFontIcon(props, ref) {
28249 return (React__default.createElement(FontIcon, __assign$aO({}, props, { ref: ref }), "notifications"));
28250 });
28251
28252 var __assign$aP = (undefined && undefined.__assign) || function () {
28253 __assign$aP = Object.assign || function(t) {
28254 for (var s, i = 1, n = arguments.length; i < n; i++) {
28255 s = arguments[i];
28256 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28257 t[p] = s[p];
28258 }
28259 return t;
28260 };
28261 return __assign$aP.apply(this, arguments);
28262 };
28263 var OfflinePinFontIcon = React.forwardRef(function OfflinePinFontIcon(props, ref) {
28264 return (React__default.createElement(FontIcon, __assign$aP({}, props, { ref: ref }), "offline_pin"));
28265 });
28266
28267 var __assign$aQ = (undefined && undefined.__assign) || function () {
28268 __assign$aQ = Object.assign || function(t) {
28269 for (var s, i = 1, n = arguments.length; i < n; i++) {
28270 s = arguments[i];
28271 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28272 t[p] = s[p];
28273 }
28274 return t;
28275 };
28276 return __assign$aQ.apply(this, arguments);
28277 };
28278 var OndemandVideoFontIcon = React.forwardRef(function OndemandVideoFontIcon(props, ref) {
28279 return (React__default.createElement(FontIcon, __assign$aQ({}, props, { ref: ref }), "ondemand_video"));
28280 });
28281
28282 var __assign$aR = (undefined && undefined.__assign) || function () {
28283 __assign$aR = Object.assign || function(t) {
28284 for (var s, i = 1, n = arguments.length; i < n; i++) {
28285 s = arguments[i];
28286 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28287 t[p] = s[p];
28288 }
28289 return t;
28290 };
28291 return __assign$aR.apply(this, arguments);
28292 };
28293 var OpacityFontIcon = React.forwardRef(function OpacityFontIcon(props, ref) {
28294 return (React__default.createElement(FontIcon, __assign$aR({}, props, { ref: ref }), "opacity"));
28295 });
28296
28297 var __assign$aS = (undefined && undefined.__assign) || function () {
28298 __assign$aS = Object.assign || function(t) {
28299 for (var s, i = 1, n = arguments.length; i < n; i++) {
28300 s = arguments[i];
28301 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28302 t[p] = s[p];
28303 }
28304 return t;
28305 };
28306 return __assign$aS.apply(this, arguments);
28307 };
28308 var OpenInBrowserFontIcon = React.forwardRef(function OpenInBrowserFontIcon(props, ref) {
28309 return (React__default.createElement(FontIcon, __assign$aS({}, props, { ref: ref }), "open_in_browser"));
28310 });
28311
28312 var __assign$aT = (undefined && undefined.__assign) || function () {
28313 __assign$aT = Object.assign || function(t) {
28314 for (var s, i = 1, n = arguments.length; i < n; i++) {
28315 s = arguments[i];
28316 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28317 t[p] = s[p];
28318 }
28319 return t;
28320 };
28321 return __assign$aT.apply(this, arguments);
28322 };
28323 var OpenInNewFontIcon = React.forwardRef(function OpenInNewFontIcon(props, ref) {
28324 return (React__default.createElement(FontIcon, __assign$aT({}, props, { ref: ref }), "open_in_new"));
28325 });
28326
28327 var __assign$aU = (undefined && undefined.__assign) || function () {
28328 __assign$aU = Object.assign || function(t) {
28329 for (var s, i = 1, n = arguments.length; i < n; i++) {
28330 s = arguments[i];
28331 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28332 t[p] = s[p];
28333 }
28334 return t;
28335 };
28336 return __assign$aU.apply(this, arguments);
28337 };
28338 var OpenWithFontIcon = React.forwardRef(function OpenWithFontIcon(props, ref) {
28339 return (React__default.createElement(FontIcon, __assign$aU({}, props, { ref: ref }), "open_with"));
28340 });
28341
28342 var __assign$aV = (undefined && undefined.__assign) || function () {
28343 __assign$aV = Object.assign || function(t) {
28344 for (var s, i = 1, n = arguments.length; i < n; i++) {
28345 s = arguments[i];
28346 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28347 t[p] = s[p];
28348 }
28349 return t;
28350 };
28351 return __assign$aV.apply(this, arguments);
28352 };
28353 var PagesFontIcon = React.forwardRef(function PagesFontIcon(props, ref) {
28354 return (React__default.createElement(FontIcon, __assign$aV({}, props, { ref: ref }), "pages"));
28355 });
28356
28357 var __assign$aW = (undefined && undefined.__assign) || function () {
28358 __assign$aW = Object.assign || function(t) {
28359 for (var s, i = 1, n = arguments.length; i < n; i++) {
28360 s = arguments[i];
28361 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28362 t[p] = s[p];
28363 }
28364 return t;
28365 };
28366 return __assign$aW.apply(this, arguments);
28367 };
28368 var PageviewFontIcon = React.forwardRef(function PageviewFontIcon(props, ref) {
28369 return (React__default.createElement(FontIcon, __assign$aW({}, props, { ref: ref }), "pageview"));
28370 });
28371
28372 var __assign$aX = (undefined && undefined.__assign) || function () {
28373 __assign$aX = Object.assign || function(t) {
28374 for (var s, i = 1, n = arguments.length; i < n; i++) {
28375 s = arguments[i];
28376 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28377 t[p] = s[p];
28378 }
28379 return t;
28380 };
28381 return __assign$aX.apply(this, arguments);
28382 };
28383 var PaletteFontIcon = React.forwardRef(function PaletteFontIcon(props, ref) {
28384 return (React__default.createElement(FontIcon, __assign$aX({}, props, { ref: ref }), "palette"));
28385 });
28386
28387 var __assign$aY = (undefined && undefined.__assign) || function () {
28388 __assign$aY = Object.assign || function(t) {
28389 for (var s, i = 1, n = arguments.length; i < n; i++) {
28390 s = arguments[i];
28391 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28392 t[p] = s[p];
28393 }
28394 return t;
28395 };
28396 return __assign$aY.apply(this, arguments);
28397 };
28398 var PanToolFontIcon = React.forwardRef(function PanToolFontIcon(props, ref) {
28399 return (React__default.createElement(FontIcon, __assign$aY({}, props, { ref: ref }), "pan_tool"));
28400 });
28401
28402 var __assign$aZ = (undefined && undefined.__assign) || function () {
28403 __assign$aZ = Object.assign || function(t) {
28404 for (var s, i = 1, n = arguments.length; i < n; i++) {
28405 s = arguments[i];
28406 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28407 t[p] = s[p];
28408 }
28409 return t;
28410 };
28411 return __assign$aZ.apply(this, arguments);
28412 };
28413 var PanoramaFishEyeFontIcon = React.forwardRef(function PanoramaFishEyeFontIcon(props, ref) {
28414 return (React__default.createElement(FontIcon, __assign$aZ({}, props, { ref: ref }), "panorama_fish_eye"));
28415 });
28416
28417 var __assign$a_ = (undefined && undefined.__assign) || function () {
28418 __assign$a_ = Object.assign || function(t) {
28419 for (var s, i = 1, n = arguments.length; i < n; i++) {
28420 s = arguments[i];
28421 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28422 t[p] = s[p];
28423 }
28424 return t;
28425 };
28426 return __assign$a_.apply(this, arguments);
28427 };
28428 var PanoramaHorizontalFontIcon = React.forwardRef(function PanoramaHorizontalFontIcon(props, ref) {
28429 return (React__default.createElement(FontIcon, __assign$a_({}, props, { ref: ref }), "panorama_horizontal"));
28430 });
28431
28432 var __assign$a$ = (undefined && undefined.__assign) || function () {
28433 __assign$a$ = Object.assign || function(t) {
28434 for (var s, i = 1, n = arguments.length; i < n; i++) {
28435 s = arguments[i];
28436 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28437 t[p] = s[p];
28438 }
28439 return t;
28440 };
28441 return __assign$a$.apply(this, arguments);
28442 };
28443 var PanoramaVerticalFontIcon = React.forwardRef(function PanoramaVerticalFontIcon(props, ref) {
28444 return (React__default.createElement(FontIcon, __assign$a$({}, props, { ref: ref }), "panorama_vertical"));
28445 });
28446
28447 var __assign$b0 = (undefined && undefined.__assign) || function () {
28448 __assign$b0 = Object.assign || function(t) {
28449 for (var s, i = 1, n = arguments.length; i < n; i++) {
28450 s = arguments[i];
28451 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28452 t[p] = s[p];
28453 }
28454 return t;
28455 };
28456 return __assign$b0.apply(this, arguments);
28457 };
28458 var PanoramaWideAngleFontIcon = React.forwardRef(function PanoramaWideAngleFontIcon(props, ref) {
28459 return (React__default.createElement(FontIcon, __assign$b0({}, props, { ref: ref }), "panorama_wide_angle"));
28460 });
28461
28462 var __assign$b1 = (undefined && undefined.__assign) || function () {
28463 __assign$b1 = Object.assign || function(t) {
28464 for (var s, i = 1, n = arguments.length; i < n; i++) {
28465 s = arguments[i];
28466 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28467 t[p] = s[p];
28468 }
28469 return t;
28470 };
28471 return __assign$b1.apply(this, arguments);
28472 };
28473 var PanoramaFontIcon = React.forwardRef(function PanoramaFontIcon(props, ref) {
28474 return (React__default.createElement(FontIcon, __assign$b1({}, props, { ref: ref }), "panorama"));
28475 });
28476
28477 var __assign$b2 = (undefined && undefined.__assign) || function () {
28478 __assign$b2 = Object.assign || function(t) {
28479 for (var s, i = 1, n = arguments.length; i < n; i++) {
28480 s = arguments[i];
28481 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28482 t[p] = s[p];
28483 }
28484 return t;
28485 };
28486 return __assign$b2.apply(this, arguments);
28487 };
28488 var PartyModeFontIcon = React.forwardRef(function PartyModeFontIcon(props, ref) {
28489 return (React__default.createElement(FontIcon, __assign$b2({}, props, { ref: ref }), "party_mode"));
28490 });
28491
28492 var __assign$b3 = (undefined && undefined.__assign) || function () {
28493 __assign$b3 = Object.assign || function(t) {
28494 for (var s, i = 1, n = arguments.length; i < n; i++) {
28495 s = arguments[i];
28496 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28497 t[p] = s[p];
28498 }
28499 return t;
28500 };
28501 return __assign$b3.apply(this, arguments);
28502 };
28503 var PauseCircleFilledFontIcon = React.forwardRef(function PauseCircleFilledFontIcon(props, ref) {
28504 return (React__default.createElement(FontIcon, __assign$b3({}, props, { ref: ref }), "pause_circle_filled"));
28505 });
28506
28507 var __assign$b4 = (undefined && undefined.__assign) || function () {
28508 __assign$b4 = Object.assign || function(t) {
28509 for (var s, i = 1, n = arguments.length; i < n; i++) {
28510 s = arguments[i];
28511 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28512 t[p] = s[p];
28513 }
28514 return t;
28515 };
28516 return __assign$b4.apply(this, arguments);
28517 };
28518 var PauseCircleOutlineFontIcon = React.forwardRef(function PauseCircleOutlineFontIcon(props, ref) {
28519 return (React__default.createElement(FontIcon, __assign$b4({}, props, { ref: ref }), "pause_circle_outline"));
28520 });
28521
28522 var __assign$b5 = (undefined && undefined.__assign) || function () {
28523 __assign$b5 = Object.assign || function(t) {
28524 for (var s, i = 1, n = arguments.length; i < n; i++) {
28525 s = arguments[i];
28526 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28527 t[p] = s[p];
28528 }
28529 return t;
28530 };
28531 return __assign$b5.apply(this, arguments);
28532 };
28533 var PauseFontIcon = React.forwardRef(function PauseFontIcon(props, ref) {
28534 return (React__default.createElement(FontIcon, __assign$b5({}, props, { ref: ref }), "pause"));
28535 });
28536
28537 var __assign$b6 = (undefined && undefined.__assign) || function () {
28538 __assign$b6 = Object.assign || function(t) {
28539 for (var s, i = 1, n = arguments.length; i < n; i++) {
28540 s = arguments[i];
28541 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28542 t[p] = s[p];
28543 }
28544 return t;
28545 };
28546 return __assign$b6.apply(this, arguments);
28547 };
28548 var PaymentFontIcon = React.forwardRef(function PaymentFontIcon(props, ref) {
28549 return (React__default.createElement(FontIcon, __assign$b6({}, props, { ref: ref }), "payment"));
28550 });
28551
28552 var __assign$b7 = (undefined && undefined.__assign) || function () {
28553 __assign$b7 = Object.assign || function(t) {
28554 for (var s, i = 1, n = arguments.length; i < n; i++) {
28555 s = arguments[i];
28556 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28557 t[p] = s[p];
28558 }
28559 return t;
28560 };
28561 return __assign$b7.apply(this, arguments);
28562 };
28563 var PeopleOutlineFontIcon = React.forwardRef(function PeopleOutlineFontIcon(props, ref) {
28564 return (React__default.createElement(FontIcon, __assign$b7({}, props, { ref: ref }), "people_outline"));
28565 });
28566
28567 var __assign$b8 = (undefined && undefined.__assign) || function () {
28568 __assign$b8 = Object.assign || function(t) {
28569 for (var s, i = 1, n = arguments.length; i < n; i++) {
28570 s = arguments[i];
28571 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28572 t[p] = s[p];
28573 }
28574 return t;
28575 };
28576 return __assign$b8.apply(this, arguments);
28577 };
28578 var PeopleFontIcon = React.forwardRef(function PeopleFontIcon(props, ref) {
28579 return (React__default.createElement(FontIcon, __assign$b8({}, props, { ref: ref }), "people"));
28580 });
28581
28582 var __assign$b9 = (undefined && undefined.__assign) || function () {
28583 __assign$b9 = Object.assign || function(t) {
28584 for (var s, i = 1, n = arguments.length; i < n; i++) {
28585 s = arguments[i];
28586 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28587 t[p] = s[p];
28588 }
28589 return t;
28590 };
28591 return __assign$b9.apply(this, arguments);
28592 };
28593 var PermCameraMicFontIcon = React.forwardRef(function PermCameraMicFontIcon(props, ref) {
28594 return (React__default.createElement(FontIcon, __assign$b9({}, props, { ref: ref }), "perm_camera_mic"));
28595 });
28596
28597 var __assign$ba = (undefined && undefined.__assign) || function () {
28598 __assign$ba = Object.assign || function(t) {
28599 for (var s, i = 1, n = arguments.length; i < n; i++) {
28600 s = arguments[i];
28601 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28602 t[p] = s[p];
28603 }
28604 return t;
28605 };
28606 return __assign$ba.apply(this, arguments);
28607 };
28608 var PermContactCalendarFontIcon = React.forwardRef(function PermContactCalendarFontIcon(props, ref) {
28609 return (React__default.createElement(FontIcon, __assign$ba({}, props, { ref: ref }), "perm_contact_calendar"));
28610 });
28611
28612 var __assign$bb = (undefined && undefined.__assign) || function () {
28613 __assign$bb = Object.assign || function(t) {
28614 for (var s, i = 1, n = arguments.length; i < n; i++) {
28615 s = arguments[i];
28616 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28617 t[p] = s[p];
28618 }
28619 return t;
28620 };
28621 return __assign$bb.apply(this, arguments);
28622 };
28623 var PermDataSettingFontIcon = React.forwardRef(function PermDataSettingFontIcon(props, ref) {
28624 return (React__default.createElement(FontIcon, __assign$bb({}, props, { ref: ref }), "perm_data_setting"));
28625 });
28626
28627 var __assign$bc = (undefined && undefined.__assign) || function () {
28628 __assign$bc = Object.assign || function(t) {
28629 for (var s, i = 1, n = arguments.length; i < n; i++) {
28630 s = arguments[i];
28631 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28632 t[p] = s[p];
28633 }
28634 return t;
28635 };
28636 return __assign$bc.apply(this, arguments);
28637 };
28638 var PermDeviceInformationFontIcon = React.forwardRef(function PermDeviceInformationFontIcon(props, ref) {
28639 return (React__default.createElement(FontIcon, __assign$bc({}, props, { ref: ref }), "perm_device_information"));
28640 });
28641
28642 var __assign$bd = (undefined && undefined.__assign) || function () {
28643 __assign$bd = Object.assign || function(t) {
28644 for (var s, i = 1, n = arguments.length; i < n; i++) {
28645 s = arguments[i];
28646 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28647 t[p] = s[p];
28648 }
28649 return t;
28650 };
28651 return __assign$bd.apply(this, arguments);
28652 };
28653 var PermIdentityFontIcon = React.forwardRef(function PermIdentityFontIcon(props, ref) {
28654 return (React__default.createElement(FontIcon, __assign$bd({}, props, { ref: ref }), "perm_identity"));
28655 });
28656
28657 var __assign$be = (undefined && undefined.__assign) || function () {
28658 __assign$be = Object.assign || function(t) {
28659 for (var s, i = 1, n = arguments.length; i < n; i++) {
28660 s = arguments[i];
28661 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28662 t[p] = s[p];
28663 }
28664 return t;
28665 };
28666 return __assign$be.apply(this, arguments);
28667 };
28668 var PermMediaFontIcon = React.forwardRef(function PermMediaFontIcon(props, ref) {
28669 return (React__default.createElement(FontIcon, __assign$be({}, props, { ref: ref }), "perm_media"));
28670 });
28671
28672 var __assign$bf = (undefined && undefined.__assign) || function () {
28673 __assign$bf = Object.assign || function(t) {
28674 for (var s, i = 1, n = arguments.length; i < n; i++) {
28675 s = arguments[i];
28676 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28677 t[p] = s[p];
28678 }
28679 return t;
28680 };
28681 return __assign$bf.apply(this, arguments);
28682 };
28683 var PermPhoneMsgFontIcon = React.forwardRef(function PermPhoneMsgFontIcon(props, ref) {
28684 return (React__default.createElement(FontIcon, __assign$bf({}, props, { ref: ref }), "perm_phone_msg"));
28685 });
28686
28687 var __assign$bg = (undefined && undefined.__assign) || function () {
28688 __assign$bg = Object.assign || function(t) {
28689 for (var s, i = 1, n = arguments.length; i < n; i++) {
28690 s = arguments[i];
28691 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28692 t[p] = s[p];
28693 }
28694 return t;
28695 };
28696 return __assign$bg.apply(this, arguments);
28697 };
28698 var PermScanWifiFontIcon = React.forwardRef(function PermScanWifiFontIcon(props, ref) {
28699 return (React__default.createElement(FontIcon, __assign$bg({}, props, { ref: ref }), "perm_scan_wifi"));
28700 });
28701
28702 var __assign$bh = (undefined && undefined.__assign) || function () {
28703 __assign$bh = Object.assign || function(t) {
28704 for (var s, i = 1, n = arguments.length; i < n; i++) {
28705 s = arguments[i];
28706 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28707 t[p] = s[p];
28708 }
28709 return t;
28710 };
28711 return __assign$bh.apply(this, arguments);
28712 };
28713 var PersonAddFontIcon = React.forwardRef(function PersonAddFontIcon(props, ref) {
28714 return (React__default.createElement(FontIcon, __assign$bh({}, props, { ref: ref }), "person_add"));
28715 });
28716
28717 var __assign$bi = (undefined && undefined.__assign) || function () {
28718 __assign$bi = Object.assign || function(t) {
28719 for (var s, i = 1, n = arguments.length; i < n; i++) {
28720 s = arguments[i];
28721 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28722 t[p] = s[p];
28723 }
28724 return t;
28725 };
28726 return __assign$bi.apply(this, arguments);
28727 };
28728 var PersonOutlineFontIcon = React.forwardRef(function PersonOutlineFontIcon(props, ref) {
28729 return (React__default.createElement(FontIcon, __assign$bi({}, props, { ref: ref }), "person_outline"));
28730 });
28731
28732 var __assign$bj = (undefined && undefined.__assign) || function () {
28733 __assign$bj = Object.assign || function(t) {
28734 for (var s, i = 1, n = arguments.length; i < n; i++) {
28735 s = arguments[i];
28736 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28737 t[p] = s[p];
28738 }
28739 return t;
28740 };
28741 return __assign$bj.apply(this, arguments);
28742 };
28743 var PersonPinCircleFontIcon = React.forwardRef(function PersonPinCircleFontIcon(props, ref) {
28744 return (React__default.createElement(FontIcon, __assign$bj({}, props, { ref: ref }), "person_pin_circle"));
28745 });
28746
28747 var __assign$bk = (undefined && undefined.__assign) || function () {
28748 __assign$bk = Object.assign || function(t) {
28749 for (var s, i = 1, n = arguments.length; i < n; i++) {
28750 s = arguments[i];
28751 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28752 t[p] = s[p];
28753 }
28754 return t;
28755 };
28756 return __assign$bk.apply(this, arguments);
28757 };
28758 var PersonPinFontIcon = React.forwardRef(function PersonPinFontIcon(props, ref) {
28759 return (React__default.createElement(FontIcon, __assign$bk({}, props, { ref: ref }), "person_pin"));
28760 });
28761
28762 var __assign$bl = (undefined && undefined.__assign) || function () {
28763 __assign$bl = Object.assign || function(t) {
28764 for (var s, i = 1, n = arguments.length; i < n; i++) {
28765 s = arguments[i];
28766 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28767 t[p] = s[p];
28768 }
28769 return t;
28770 };
28771 return __assign$bl.apply(this, arguments);
28772 };
28773 var PersonFontIcon = React.forwardRef(function PersonFontIcon(props, ref) {
28774 return (React__default.createElement(FontIcon, __assign$bl({}, props, { ref: ref }), "person"));
28775 });
28776
28777 var __assign$bm = (undefined && undefined.__assign) || function () {
28778 __assign$bm = Object.assign || function(t) {
28779 for (var s, i = 1, n = arguments.length; i < n; i++) {
28780 s = arguments[i];
28781 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28782 t[p] = s[p];
28783 }
28784 return t;
28785 };
28786 return __assign$bm.apply(this, arguments);
28787 };
28788 var PersonalVideoFontIcon = React.forwardRef(function PersonalVideoFontIcon(props, ref) {
28789 return (React__default.createElement(FontIcon, __assign$bm({}, props, { ref: ref }), "personal_video"));
28790 });
28791
28792 var __assign$bn = (undefined && undefined.__assign) || function () {
28793 __assign$bn = Object.assign || function(t) {
28794 for (var s, i = 1, n = arguments.length; i < n; i++) {
28795 s = arguments[i];
28796 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28797 t[p] = s[p];
28798 }
28799 return t;
28800 };
28801 return __assign$bn.apply(this, arguments);
28802 };
28803 var PetsFontIcon = React.forwardRef(function PetsFontIcon(props, ref) {
28804 return (React__default.createElement(FontIcon, __assign$bn({}, props, { ref: ref }), "pets"));
28805 });
28806
28807 var __assign$bo = (undefined && undefined.__assign) || function () {
28808 __assign$bo = Object.assign || function(t) {
28809 for (var s, i = 1, n = arguments.length; i < n; i++) {
28810 s = arguments[i];
28811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28812 t[p] = s[p];
28813 }
28814 return t;
28815 };
28816 return __assign$bo.apply(this, arguments);
28817 };
28818 var PhoneAndroidFontIcon = React.forwardRef(function PhoneAndroidFontIcon(props, ref) {
28819 return (React__default.createElement(FontIcon, __assign$bo({}, props, { ref: ref }), "phone_android"));
28820 });
28821
28822 var __assign$bp = (undefined && undefined.__assign) || function () {
28823 __assign$bp = Object.assign || function(t) {
28824 for (var s, i = 1, n = arguments.length; i < n; i++) {
28825 s = arguments[i];
28826 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28827 t[p] = s[p];
28828 }
28829 return t;
28830 };
28831 return __assign$bp.apply(this, arguments);
28832 };
28833 var PhoneBluetoothSpeakerFontIcon = React.forwardRef(function PhoneBluetoothSpeakerFontIcon(props, ref) {
28834 return (React__default.createElement(FontIcon, __assign$bp({}, props, { ref: ref }), "phone_bluetooth_speaker"));
28835 });
28836
28837 var __assign$bq = (undefined && undefined.__assign) || function () {
28838 __assign$bq = Object.assign || function(t) {
28839 for (var s, i = 1, n = arguments.length; i < n; i++) {
28840 s = arguments[i];
28841 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28842 t[p] = s[p];
28843 }
28844 return t;
28845 };
28846 return __assign$bq.apply(this, arguments);
28847 };
28848 var PhoneForwardedFontIcon = React.forwardRef(function PhoneForwardedFontIcon(props, ref) {
28849 return (React__default.createElement(FontIcon, __assign$bq({}, props, { ref: ref }), "phone_forwarded"));
28850 });
28851
28852 var __assign$br = (undefined && undefined.__assign) || function () {
28853 __assign$br = Object.assign || function(t) {
28854 for (var s, i = 1, n = arguments.length; i < n; i++) {
28855 s = arguments[i];
28856 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28857 t[p] = s[p];
28858 }
28859 return t;
28860 };
28861 return __assign$br.apply(this, arguments);
28862 };
28863 var PhoneInTalkFontIcon = React.forwardRef(function PhoneInTalkFontIcon(props, ref) {
28864 return (React__default.createElement(FontIcon, __assign$br({}, props, { ref: ref }), "phone_in_talk"));
28865 });
28866
28867 var __assign$bs = (undefined && undefined.__assign) || function () {
28868 __assign$bs = Object.assign || function(t) {
28869 for (var s, i = 1, n = arguments.length; i < n; i++) {
28870 s = arguments[i];
28871 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28872 t[p] = s[p];
28873 }
28874 return t;
28875 };
28876 return __assign$bs.apply(this, arguments);
28877 };
28878 var PhoneIphoneFontIcon = React.forwardRef(function PhoneIphoneFontIcon(props, ref) {
28879 return (React__default.createElement(FontIcon, __assign$bs({}, props, { ref: ref }), "phone_iphone"));
28880 });
28881
28882 var __assign$bt = (undefined && undefined.__assign) || function () {
28883 __assign$bt = Object.assign || function(t) {
28884 for (var s, i = 1, n = arguments.length; i < n; i++) {
28885 s = arguments[i];
28886 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28887 t[p] = s[p];
28888 }
28889 return t;
28890 };
28891 return __assign$bt.apply(this, arguments);
28892 };
28893 var PhoneLockedFontIcon = React.forwardRef(function PhoneLockedFontIcon(props, ref) {
28894 return (React__default.createElement(FontIcon, __assign$bt({}, props, { ref: ref }), "phone_locked"));
28895 });
28896
28897 var __assign$bu = (undefined && undefined.__assign) || function () {
28898 __assign$bu = Object.assign || function(t) {
28899 for (var s, i = 1, n = arguments.length; i < n; i++) {
28900 s = arguments[i];
28901 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28902 t[p] = s[p];
28903 }
28904 return t;
28905 };
28906 return __assign$bu.apply(this, arguments);
28907 };
28908 var PhoneMissedFontIcon = React.forwardRef(function PhoneMissedFontIcon(props, ref) {
28909 return (React__default.createElement(FontIcon, __assign$bu({}, props, { ref: ref }), "phone_missed"));
28910 });
28911
28912 var __assign$bv = (undefined && undefined.__assign) || function () {
28913 __assign$bv = Object.assign || function(t) {
28914 for (var s, i = 1, n = arguments.length; i < n; i++) {
28915 s = arguments[i];
28916 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28917 t[p] = s[p];
28918 }
28919 return t;
28920 };
28921 return __assign$bv.apply(this, arguments);
28922 };
28923 var PhonePausedFontIcon = React.forwardRef(function PhonePausedFontIcon(props, ref) {
28924 return (React__default.createElement(FontIcon, __assign$bv({}, props, { ref: ref }), "phone_paused"));
28925 });
28926
28927 var __assign$bw = (undefined && undefined.__assign) || function () {
28928 __assign$bw = Object.assign || function(t) {
28929 for (var s, i = 1, n = arguments.length; i < n; i++) {
28930 s = arguments[i];
28931 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28932 t[p] = s[p];
28933 }
28934 return t;
28935 };
28936 return __assign$bw.apply(this, arguments);
28937 };
28938 var PhoneFontIcon = React.forwardRef(function PhoneFontIcon(props, ref) {
28939 return (React__default.createElement(FontIcon, __assign$bw({}, props, { ref: ref }), "phone"));
28940 });
28941
28942 var __assign$bx = (undefined && undefined.__assign) || function () {
28943 __assign$bx = Object.assign || function(t) {
28944 for (var s, i = 1, n = arguments.length; i < n; i++) {
28945 s = arguments[i];
28946 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28947 t[p] = s[p];
28948 }
28949 return t;
28950 };
28951 return __assign$bx.apply(this, arguments);
28952 };
28953 var PhonelinkEraseFontIcon = React.forwardRef(function PhonelinkEraseFontIcon(props, ref) {
28954 return (React__default.createElement(FontIcon, __assign$bx({}, props, { ref: ref }), "phonelink_erase"));
28955 });
28956
28957 var __assign$by = (undefined && undefined.__assign) || function () {
28958 __assign$by = Object.assign || function(t) {
28959 for (var s, i = 1, n = arguments.length; i < n; i++) {
28960 s = arguments[i];
28961 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28962 t[p] = s[p];
28963 }
28964 return t;
28965 };
28966 return __assign$by.apply(this, arguments);
28967 };
28968 var PhonelinkLockFontIcon = React.forwardRef(function PhonelinkLockFontIcon(props, ref) {
28969 return (React__default.createElement(FontIcon, __assign$by({}, props, { ref: ref }), "phonelink_lock"));
28970 });
28971
28972 var __assign$bz = (undefined && undefined.__assign) || function () {
28973 __assign$bz = Object.assign || function(t) {
28974 for (var s, i = 1, n = arguments.length; i < n; i++) {
28975 s = arguments[i];
28976 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28977 t[p] = s[p];
28978 }
28979 return t;
28980 };
28981 return __assign$bz.apply(this, arguments);
28982 };
28983 var PhonelinkOffFontIcon = React.forwardRef(function PhonelinkOffFontIcon(props, ref) {
28984 return (React__default.createElement(FontIcon, __assign$bz({}, props, { ref: ref }), "phonelink_off"));
28985 });
28986
28987 var __assign$bA = (undefined && undefined.__assign) || function () {
28988 __assign$bA = Object.assign || function(t) {
28989 for (var s, i = 1, n = arguments.length; i < n; i++) {
28990 s = arguments[i];
28991 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28992 t[p] = s[p];
28993 }
28994 return t;
28995 };
28996 return __assign$bA.apply(this, arguments);
28997 };
28998 var PhonelinkRingFontIcon = React.forwardRef(function PhonelinkRingFontIcon(props, ref) {
28999 return (React__default.createElement(FontIcon, __assign$bA({}, props, { ref: ref }), "phonelink_ring"));
29000 });
29001
29002 var __assign$bB = (undefined && undefined.__assign) || function () {
29003 __assign$bB = Object.assign || function(t) {
29004 for (var s, i = 1, n = arguments.length; i < n; i++) {
29005 s = arguments[i];
29006 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29007 t[p] = s[p];
29008 }
29009 return t;
29010 };
29011 return __assign$bB.apply(this, arguments);
29012 };
29013 var PhonelinkSetupFontIcon = React.forwardRef(function PhonelinkSetupFontIcon(props, ref) {
29014 return (React__default.createElement(FontIcon, __assign$bB({}, props, { ref: ref }), "phonelink_setup"));
29015 });
29016
29017 var __assign$bC = (undefined && undefined.__assign) || function () {
29018 __assign$bC = Object.assign || function(t) {
29019 for (var s, i = 1, n = arguments.length; i < n; i++) {
29020 s = arguments[i];
29021 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29022 t[p] = s[p];
29023 }
29024 return t;
29025 };
29026 return __assign$bC.apply(this, arguments);
29027 };
29028 var PhonelinkFontIcon = React.forwardRef(function PhonelinkFontIcon(props, ref) {
29029 return (React__default.createElement(FontIcon, __assign$bC({}, props, { ref: ref }), "phonelink"));
29030 });
29031
29032 var __assign$bD = (undefined && undefined.__assign) || function () {
29033 __assign$bD = Object.assign || function(t) {
29034 for (var s, i = 1, n = arguments.length; i < n; i++) {
29035 s = arguments[i];
29036 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29037 t[p] = s[p];
29038 }
29039 return t;
29040 };
29041 return __assign$bD.apply(this, arguments);
29042 };
29043 var PhotoAlbumFontIcon = React.forwardRef(function PhotoAlbumFontIcon(props, ref) {
29044 return (React__default.createElement(FontIcon, __assign$bD({}, props, { ref: ref }), "photo_album"));
29045 });
29046
29047 var __assign$bE = (undefined && undefined.__assign) || function () {
29048 __assign$bE = Object.assign || function(t) {
29049 for (var s, i = 1, n = arguments.length; i < n; i++) {
29050 s = arguments[i];
29051 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29052 t[p] = s[p];
29053 }
29054 return t;
29055 };
29056 return __assign$bE.apply(this, arguments);
29057 };
29058 var PhotoCameraFontIcon = React.forwardRef(function PhotoCameraFontIcon(props, ref) {
29059 return (React__default.createElement(FontIcon, __assign$bE({}, props, { ref: ref }), "photo_camera"));
29060 });
29061
29062 var __assign$bF = (undefined && undefined.__assign) || function () {
29063 __assign$bF = Object.assign || function(t) {
29064 for (var s, i = 1, n = arguments.length; i < n; i++) {
29065 s = arguments[i];
29066 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29067 t[p] = s[p];
29068 }
29069 return t;
29070 };
29071 return __assign$bF.apply(this, arguments);
29072 };
29073 var PhotoFilterFontIcon = React.forwardRef(function PhotoFilterFontIcon(props, ref) {
29074 return (React__default.createElement(FontIcon, __assign$bF({}, props, { ref: ref }), "photo_filter"));
29075 });
29076
29077 var __assign$bG = (undefined && undefined.__assign) || function () {
29078 __assign$bG = Object.assign || function(t) {
29079 for (var s, i = 1, n = arguments.length; i < n; i++) {
29080 s = arguments[i];
29081 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29082 t[p] = s[p];
29083 }
29084 return t;
29085 };
29086 return __assign$bG.apply(this, arguments);
29087 };
29088 var PhotoLibraryFontIcon = React.forwardRef(function PhotoLibraryFontIcon(props, ref) {
29089 return (React__default.createElement(FontIcon, __assign$bG({}, props, { ref: ref }), "photo_library"));
29090 });
29091
29092 var __assign$bH = (undefined && undefined.__assign) || function () {
29093 __assign$bH = Object.assign || function(t) {
29094 for (var s, i = 1, n = arguments.length; i < n; i++) {
29095 s = arguments[i];
29096 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29097 t[p] = s[p];
29098 }
29099 return t;
29100 };
29101 return __assign$bH.apply(this, arguments);
29102 };
29103 var PhotoSizeSelectActualFontIcon = React.forwardRef(function PhotoSizeSelectActualFontIcon(props, ref) {
29104 return (React__default.createElement(FontIcon, __assign$bH({}, props, { ref: ref }), "photo_size_select_actual"));
29105 });
29106
29107 var __assign$bI = (undefined && undefined.__assign) || function () {
29108 __assign$bI = Object.assign || function(t) {
29109 for (var s, i = 1, n = arguments.length; i < n; i++) {
29110 s = arguments[i];
29111 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29112 t[p] = s[p];
29113 }
29114 return t;
29115 };
29116 return __assign$bI.apply(this, arguments);
29117 };
29118 var PhotoSizeSelectLargeFontIcon = React.forwardRef(function PhotoSizeSelectLargeFontIcon(props, ref) {
29119 return (React__default.createElement(FontIcon, __assign$bI({}, props, { ref: ref }), "photo_size_select_large"));
29120 });
29121
29122 var __assign$bJ = (undefined && undefined.__assign) || function () {
29123 __assign$bJ = Object.assign || function(t) {
29124 for (var s, i = 1, n = arguments.length; i < n; i++) {
29125 s = arguments[i];
29126 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29127 t[p] = s[p];
29128 }
29129 return t;
29130 };
29131 return __assign$bJ.apply(this, arguments);
29132 };
29133 var PhotoSizeSelectSmallFontIcon = React.forwardRef(function PhotoSizeSelectSmallFontIcon(props, ref) {
29134 return (React__default.createElement(FontIcon, __assign$bJ({}, props, { ref: ref }), "photo_size_select_small"));
29135 });
29136
29137 var __assign$bK = (undefined && undefined.__assign) || function () {
29138 __assign$bK = Object.assign || function(t) {
29139 for (var s, i = 1, n = arguments.length; i < n; i++) {
29140 s = arguments[i];
29141 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29142 t[p] = s[p];
29143 }
29144 return t;
29145 };
29146 return __assign$bK.apply(this, arguments);
29147 };
29148 var PhotoFontIcon = React.forwardRef(function PhotoFontIcon(props, ref) {
29149 return (React__default.createElement(FontIcon, __assign$bK({}, props, { ref: ref }), "photo"));
29150 });
29151
29152 var __assign$bL = (undefined && undefined.__assign) || function () {
29153 __assign$bL = Object.assign || function(t) {
29154 for (var s, i = 1, n = arguments.length; i < n; i++) {
29155 s = arguments[i];
29156 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29157 t[p] = s[p];
29158 }
29159 return t;
29160 };
29161 return __assign$bL.apply(this, arguments);
29162 };
29163 var PictureAsPdfFontIcon = React.forwardRef(function PictureAsPdfFontIcon(props, ref) {
29164 return (React__default.createElement(FontIcon, __assign$bL({}, props, { ref: ref }), "picture_as_pdf"));
29165 });
29166
29167 var __assign$bM = (undefined && undefined.__assign) || function () {
29168 __assign$bM = Object.assign || function(t) {
29169 for (var s, i = 1, n = arguments.length; i < n; i++) {
29170 s = arguments[i];
29171 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29172 t[p] = s[p];
29173 }
29174 return t;
29175 };
29176 return __assign$bM.apply(this, arguments);
29177 };
29178 var PictureInPictureAltFontIcon = React.forwardRef(function PictureInPictureAltFontIcon(props, ref) {
29179 return (React__default.createElement(FontIcon, __assign$bM({}, props, { ref: ref }), "picture_in_picture_alt"));
29180 });
29181
29182 var __assign$bN = (undefined && undefined.__assign) || function () {
29183 __assign$bN = Object.assign || function(t) {
29184 for (var s, i = 1, n = arguments.length; i < n; i++) {
29185 s = arguments[i];
29186 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29187 t[p] = s[p];
29188 }
29189 return t;
29190 };
29191 return __assign$bN.apply(this, arguments);
29192 };
29193 var PictureInPictureFontIcon = React.forwardRef(function PictureInPictureFontIcon(props, ref) {
29194 return (React__default.createElement(FontIcon, __assign$bN({}, props, { ref: ref }), "picture_in_picture"));
29195 });
29196
29197 var __assign$bO = (undefined && undefined.__assign) || function () {
29198 __assign$bO = Object.assign || function(t) {
29199 for (var s, i = 1, n = arguments.length; i < n; i++) {
29200 s = arguments[i];
29201 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29202 t[p] = s[p];
29203 }
29204 return t;
29205 };
29206 return __assign$bO.apply(this, arguments);
29207 };
29208 var PieChartOutlinedFontIcon = React.forwardRef(function PieChartOutlinedFontIcon(props, ref) {
29209 return (React__default.createElement(FontIcon, __assign$bO({}, props, { ref: ref }), "pie_chart_outlined"));
29210 });
29211
29212 var __assign$bP = (undefined && undefined.__assign) || function () {
29213 __assign$bP = Object.assign || function(t) {
29214 for (var s, i = 1, n = arguments.length; i < n; i++) {
29215 s = arguments[i];
29216 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29217 t[p] = s[p];
29218 }
29219 return t;
29220 };
29221 return __assign$bP.apply(this, arguments);
29222 };
29223 var PieChartFontIcon = React.forwardRef(function PieChartFontIcon(props, ref) {
29224 return (React__default.createElement(FontIcon, __assign$bP({}, props, { ref: ref }), "pie_chart"));
29225 });
29226
29227 var __assign$bQ = (undefined && undefined.__assign) || function () {
29228 __assign$bQ = Object.assign || function(t) {
29229 for (var s, i = 1, n = arguments.length; i < n; i++) {
29230 s = arguments[i];
29231 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29232 t[p] = s[p];
29233 }
29234 return t;
29235 };
29236 return __assign$bQ.apply(this, arguments);
29237 };
29238 var PinDropFontIcon = React.forwardRef(function PinDropFontIcon(props, ref) {
29239 return (React__default.createElement(FontIcon, __assign$bQ({}, props, { ref: ref }), "pin_drop"));
29240 });
29241
29242 var __assign$bR = (undefined && undefined.__assign) || function () {
29243 __assign$bR = Object.assign || function(t) {
29244 for (var s, i = 1, n = arguments.length; i < n; i++) {
29245 s = arguments[i];
29246 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29247 t[p] = s[p];
29248 }
29249 return t;
29250 };
29251 return __assign$bR.apply(this, arguments);
29252 };
29253 var PlaceFontIcon = React.forwardRef(function PlaceFontIcon(props, ref) {
29254 return (React__default.createElement(FontIcon, __assign$bR({}, props, { ref: ref }), "place"));
29255 });
29256
29257 var __assign$bS = (undefined && undefined.__assign) || function () {
29258 __assign$bS = Object.assign || function(t) {
29259 for (var s, i = 1, n = arguments.length; i < n; i++) {
29260 s = arguments[i];
29261 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29262 t[p] = s[p];
29263 }
29264 return t;
29265 };
29266 return __assign$bS.apply(this, arguments);
29267 };
29268 var PlayArrowFontIcon = React.forwardRef(function PlayArrowFontIcon(props, ref) {
29269 return (React__default.createElement(FontIcon, __assign$bS({}, props, { ref: ref }), "play_arrow"));
29270 });
29271
29272 var __assign$bT = (undefined && undefined.__assign) || function () {
29273 __assign$bT = Object.assign || function(t) {
29274 for (var s, i = 1, n = arguments.length; i < n; i++) {
29275 s = arguments[i];
29276 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29277 t[p] = s[p];
29278 }
29279 return t;
29280 };
29281 return __assign$bT.apply(this, arguments);
29282 };
29283 var PlayCircleFilledFontIcon = React.forwardRef(function PlayCircleFilledFontIcon(props, ref) {
29284 return (React__default.createElement(FontIcon, __assign$bT({}, props, { ref: ref }), "play_circle_filled"));
29285 });
29286
29287 var __assign$bU = (undefined && undefined.__assign) || function () {
29288 __assign$bU = Object.assign || function(t) {
29289 for (var s, i = 1, n = arguments.length; i < n; i++) {
29290 s = arguments[i];
29291 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29292 t[p] = s[p];
29293 }
29294 return t;
29295 };
29296 return __assign$bU.apply(this, arguments);
29297 };
29298 var PlayCircleOutlineFontIcon = React.forwardRef(function PlayCircleOutlineFontIcon(props, ref) {
29299 return (React__default.createElement(FontIcon, __assign$bU({}, props, { ref: ref }), "play_circle_outline"));
29300 });
29301
29302 var __assign$bV = (undefined && undefined.__assign) || function () {
29303 __assign$bV = Object.assign || function(t) {
29304 for (var s, i = 1, n = arguments.length; i < n; i++) {
29305 s = arguments[i];
29306 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29307 t[p] = s[p];
29308 }
29309 return t;
29310 };
29311 return __assign$bV.apply(this, arguments);
29312 };
29313 var PlayForWorkFontIcon = React.forwardRef(function PlayForWorkFontIcon(props, ref) {
29314 return (React__default.createElement(FontIcon, __assign$bV({}, props, { ref: ref }), "play_for_work"));
29315 });
29316
29317 var __assign$bW = (undefined && undefined.__assign) || function () {
29318 __assign$bW = Object.assign || function(t) {
29319 for (var s, i = 1, n = arguments.length; i < n; i++) {
29320 s = arguments[i];
29321 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29322 t[p] = s[p];
29323 }
29324 return t;
29325 };
29326 return __assign$bW.apply(this, arguments);
29327 };
29328 var PlaylistAddCheckFontIcon = React.forwardRef(function PlaylistAddCheckFontIcon(props, ref) {
29329 return (React__default.createElement(FontIcon, __assign$bW({}, props, { ref: ref }), "playlist_add_check"));
29330 });
29331
29332 var __assign$bX = (undefined && undefined.__assign) || function () {
29333 __assign$bX = Object.assign || function(t) {
29334 for (var s, i = 1, n = arguments.length; i < n; i++) {
29335 s = arguments[i];
29336 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29337 t[p] = s[p];
29338 }
29339 return t;
29340 };
29341 return __assign$bX.apply(this, arguments);
29342 };
29343 var PlaylistAddFontIcon = React.forwardRef(function PlaylistAddFontIcon(props, ref) {
29344 return (React__default.createElement(FontIcon, __assign$bX({}, props, { ref: ref }), "playlist_add"));
29345 });
29346
29347 var __assign$bY = (undefined && undefined.__assign) || function () {
29348 __assign$bY = Object.assign || function(t) {
29349 for (var s, i = 1, n = arguments.length; i < n; i++) {
29350 s = arguments[i];
29351 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29352 t[p] = s[p];
29353 }
29354 return t;
29355 };
29356 return __assign$bY.apply(this, arguments);
29357 };
29358 var PlaylistPlayFontIcon = React.forwardRef(function PlaylistPlayFontIcon(props, ref) {
29359 return (React__default.createElement(FontIcon, __assign$bY({}, props, { ref: ref }), "playlist_play"));
29360 });
29361
29362 var __assign$bZ = (undefined && undefined.__assign) || function () {
29363 __assign$bZ = Object.assign || function(t) {
29364 for (var s, i = 1, n = arguments.length; i < n; i++) {
29365 s = arguments[i];
29366 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29367 t[p] = s[p];
29368 }
29369 return t;
29370 };
29371 return __assign$bZ.apply(this, arguments);
29372 };
29373 var PlusOneFontIcon = React.forwardRef(function PlusOneFontIcon(props, ref) {
29374 return (React__default.createElement(FontIcon, __assign$bZ({}, props, { ref: ref }), "plus_one"));
29375 });
29376
29377 var __assign$b_ = (undefined && undefined.__assign) || function () {
29378 __assign$b_ = Object.assign || function(t) {
29379 for (var s, i = 1, n = arguments.length; i < n; i++) {
29380 s = arguments[i];
29381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29382 t[p] = s[p];
29383 }
29384 return t;
29385 };
29386 return __assign$b_.apply(this, arguments);
29387 };
29388 var PollFontIcon = React.forwardRef(function PollFontIcon(props, ref) {
29389 return (React__default.createElement(FontIcon, __assign$b_({}, props, { ref: ref }), "poll"));
29390 });
29391
29392 var __assign$b$ = (undefined && undefined.__assign) || function () {
29393 __assign$b$ = Object.assign || function(t) {
29394 for (var s, i = 1, n = arguments.length; i < n; i++) {
29395 s = arguments[i];
29396 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29397 t[p] = s[p];
29398 }
29399 return t;
29400 };
29401 return __assign$b$.apply(this, arguments);
29402 };
29403 var PolymerFontIcon = React.forwardRef(function PolymerFontIcon(props, ref) {
29404 return (React__default.createElement(FontIcon, __assign$b$({}, props, { ref: ref }), "polymer"));
29405 });
29406
29407 var __assign$c0 = (undefined && undefined.__assign) || function () {
29408 __assign$c0 = Object.assign || function(t) {
29409 for (var s, i = 1, n = arguments.length; i < n; i++) {
29410 s = arguments[i];
29411 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29412 t[p] = s[p];
29413 }
29414 return t;
29415 };
29416 return __assign$c0.apply(this, arguments);
29417 };
29418 var PoolFontIcon = React.forwardRef(function PoolFontIcon(props, ref) {
29419 return (React__default.createElement(FontIcon, __assign$c0({}, props, { ref: ref }), "pool"));
29420 });
29421
29422 var __assign$c1 = (undefined && undefined.__assign) || function () {
29423 __assign$c1 = Object.assign || function(t) {
29424 for (var s, i = 1, n = arguments.length; i < n; i++) {
29425 s = arguments[i];
29426 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29427 t[p] = s[p];
29428 }
29429 return t;
29430 };
29431 return __assign$c1.apply(this, arguments);
29432 };
29433 var PortableWifiOffFontIcon = React.forwardRef(function PortableWifiOffFontIcon(props, ref) {
29434 return (React__default.createElement(FontIcon, __assign$c1({}, props, { ref: ref }), "portable_wifi_off"));
29435 });
29436
29437 var __assign$c2 = (undefined && undefined.__assign) || function () {
29438 __assign$c2 = Object.assign || function(t) {
29439 for (var s, i = 1, n = arguments.length; i < n; i++) {
29440 s = arguments[i];
29441 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29442 t[p] = s[p];
29443 }
29444 return t;
29445 };
29446 return __assign$c2.apply(this, arguments);
29447 };
29448 var PortraitFontIcon = React.forwardRef(function PortraitFontIcon(props, ref) {
29449 return (React__default.createElement(FontIcon, __assign$c2({}, props, { ref: ref }), "portrait"));
29450 });
29451
29452 var __assign$c3 = (undefined && undefined.__assign) || function () {
29453 __assign$c3 = Object.assign || function(t) {
29454 for (var s, i = 1, n = arguments.length; i < n; i++) {
29455 s = arguments[i];
29456 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29457 t[p] = s[p];
29458 }
29459 return t;
29460 };
29461 return __assign$c3.apply(this, arguments);
29462 };
29463 var PowerInputFontIcon = React.forwardRef(function PowerInputFontIcon(props, ref) {
29464 return (React__default.createElement(FontIcon, __assign$c3({}, props, { ref: ref }), "power_input"));
29465 });
29466
29467 var __assign$c4 = (undefined && undefined.__assign) || function () {
29468 __assign$c4 = Object.assign || function(t) {
29469 for (var s, i = 1, n = arguments.length; i < n; i++) {
29470 s = arguments[i];
29471 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29472 t[p] = s[p];
29473 }
29474 return t;
29475 };
29476 return __assign$c4.apply(this, arguments);
29477 };
29478 var PowerSettingsNewFontIcon = React.forwardRef(function PowerSettingsNewFontIcon(props, ref) {
29479 return (React__default.createElement(FontIcon, __assign$c4({}, props, { ref: ref }), "power_settings_new"));
29480 });
29481
29482 var __assign$c5 = (undefined && undefined.__assign) || function () {
29483 __assign$c5 = Object.assign || function(t) {
29484 for (var s, i = 1, n = arguments.length; i < n; i++) {
29485 s = arguments[i];
29486 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29487 t[p] = s[p];
29488 }
29489 return t;
29490 };
29491 return __assign$c5.apply(this, arguments);
29492 };
29493 var PowerFontIcon = React.forwardRef(function PowerFontIcon(props, ref) {
29494 return (React__default.createElement(FontIcon, __assign$c5({}, props, { ref: ref }), "power"));
29495 });
29496
29497 var __assign$c6 = (undefined && undefined.__assign) || function () {
29498 __assign$c6 = Object.assign || function(t) {
29499 for (var s, i = 1, n = arguments.length; i < n; i++) {
29500 s = arguments[i];
29501 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29502 t[p] = s[p];
29503 }
29504 return t;
29505 };
29506 return __assign$c6.apply(this, arguments);
29507 };
29508 var PregnantWomanFontIcon = React.forwardRef(function PregnantWomanFontIcon(props, ref) {
29509 return (React__default.createElement(FontIcon, __assign$c6({}, props, { ref: ref }), "pregnant_woman"));
29510 });
29511
29512 var __assign$c7 = (undefined && undefined.__assign) || function () {
29513 __assign$c7 = Object.assign || function(t) {
29514 for (var s, i = 1, n = arguments.length; i < n; i++) {
29515 s = arguments[i];
29516 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29517 t[p] = s[p];
29518 }
29519 return t;
29520 };
29521 return __assign$c7.apply(this, arguments);
29522 };
29523 var PresentToAllFontIcon = React.forwardRef(function PresentToAllFontIcon(props, ref) {
29524 return (React__default.createElement(FontIcon, __assign$c7({}, props, { ref: ref }), "present_to_all"));
29525 });
29526
29527 var __assign$c8 = (undefined && undefined.__assign) || function () {
29528 __assign$c8 = Object.assign || function(t) {
29529 for (var s, i = 1, n = arguments.length; i < n; i++) {
29530 s = arguments[i];
29531 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29532 t[p] = s[p];
29533 }
29534 return t;
29535 };
29536 return __assign$c8.apply(this, arguments);
29537 };
29538 var PrintFontIcon = React.forwardRef(function PrintFontIcon(props, ref) {
29539 return (React__default.createElement(FontIcon, __assign$c8({}, props, { ref: ref }), "print"));
29540 });
29541
29542 var __assign$c9 = (undefined && undefined.__assign) || function () {
29543 __assign$c9 = Object.assign || function(t) {
29544 for (var s, i = 1, n = arguments.length; i < n; i++) {
29545 s = arguments[i];
29546 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29547 t[p] = s[p];
29548 }
29549 return t;
29550 };
29551 return __assign$c9.apply(this, arguments);
29552 };
29553 var PriorityHighFontIcon = React.forwardRef(function PriorityHighFontIcon(props, ref) {
29554 return (React__default.createElement(FontIcon, __assign$c9({}, props, { ref: ref }), "priority_high"));
29555 });
29556
29557 var __assign$ca = (undefined && undefined.__assign) || function () {
29558 __assign$ca = Object.assign || function(t) {
29559 for (var s, i = 1, n = arguments.length; i < n; i++) {
29560 s = arguments[i];
29561 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29562 t[p] = s[p];
29563 }
29564 return t;
29565 };
29566 return __assign$ca.apply(this, arguments);
29567 };
29568 var PublicFontIcon = React.forwardRef(function PublicFontIcon(props, ref) {
29569 return (React__default.createElement(FontIcon, __assign$ca({}, props, { ref: ref }), "public"));
29570 });
29571
29572 var __assign$cb = (undefined && undefined.__assign) || function () {
29573 __assign$cb = Object.assign || function(t) {
29574 for (var s, i = 1, n = arguments.length; i < n; i++) {
29575 s = arguments[i];
29576 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29577 t[p] = s[p];
29578 }
29579 return t;
29580 };
29581 return __assign$cb.apply(this, arguments);
29582 };
29583 var PublishFontIcon = React.forwardRef(function PublishFontIcon(props, ref) {
29584 return (React__default.createElement(FontIcon, __assign$cb({}, props, { ref: ref }), "publish"));
29585 });
29586
29587 var __assign$cc = (undefined && undefined.__assign) || function () {
29588 __assign$cc = Object.assign || function(t) {
29589 for (var s, i = 1, n = arguments.length; i < n; i++) {
29590 s = arguments[i];
29591 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29592 t[p] = s[p];
29593 }
29594 return t;
29595 };
29596 return __assign$cc.apply(this, arguments);
29597 };
29598 var QueryBuilderFontIcon = React.forwardRef(function QueryBuilderFontIcon(props, ref) {
29599 return (React__default.createElement(FontIcon, __assign$cc({}, props, { ref: ref }), "query_builder"));
29600 });
29601
29602 var __assign$cd = (undefined && undefined.__assign) || function () {
29603 __assign$cd = Object.assign || function(t) {
29604 for (var s, i = 1, n = arguments.length; i < n; i++) {
29605 s = arguments[i];
29606 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29607 t[p] = s[p];
29608 }
29609 return t;
29610 };
29611 return __assign$cd.apply(this, arguments);
29612 };
29613 var QuestionAnswerFontIcon = React.forwardRef(function QuestionAnswerFontIcon(props, ref) {
29614 return (React__default.createElement(FontIcon, __assign$cd({}, props, { ref: ref }), "question_answer"));
29615 });
29616
29617 var __assign$ce = (undefined && undefined.__assign) || function () {
29618 __assign$ce = Object.assign || function(t) {
29619 for (var s, i = 1, n = arguments.length; i < n; i++) {
29620 s = arguments[i];
29621 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29622 t[p] = s[p];
29623 }
29624 return t;
29625 };
29626 return __assign$ce.apply(this, arguments);
29627 };
29628 var QueueMusicFontIcon = React.forwardRef(function QueueMusicFontIcon(props, ref) {
29629 return (React__default.createElement(FontIcon, __assign$ce({}, props, { ref: ref }), "queue_music"));
29630 });
29631
29632 var __assign$cf = (undefined && undefined.__assign) || function () {
29633 __assign$cf = Object.assign || function(t) {
29634 for (var s, i = 1, n = arguments.length; i < n; i++) {
29635 s = arguments[i];
29636 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29637 t[p] = s[p];
29638 }
29639 return t;
29640 };
29641 return __assign$cf.apply(this, arguments);
29642 };
29643 var QueuePlayNextFontIcon = React.forwardRef(function QueuePlayNextFontIcon(props, ref) {
29644 return (React__default.createElement(FontIcon, __assign$cf({}, props, { ref: ref }), "queue_play_next"));
29645 });
29646
29647 var __assign$cg = (undefined && undefined.__assign) || function () {
29648 __assign$cg = Object.assign || function(t) {
29649 for (var s, i = 1, n = arguments.length; i < n; i++) {
29650 s = arguments[i];
29651 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29652 t[p] = s[p];
29653 }
29654 return t;
29655 };
29656 return __assign$cg.apply(this, arguments);
29657 };
29658 var QueueFontIcon = React.forwardRef(function QueueFontIcon(props, ref) {
29659 return (React__default.createElement(FontIcon, __assign$cg({}, props, { ref: ref }), "queue"));
29660 });
29661
29662 var __assign$ch = (undefined && undefined.__assign) || function () {
29663 __assign$ch = Object.assign || function(t) {
29664 for (var s, i = 1, n = arguments.length; i < n; i++) {
29665 s = arguments[i];
29666 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29667 t[p] = s[p];
29668 }
29669 return t;
29670 };
29671 return __assign$ch.apply(this, arguments);
29672 };
29673 var RadioButtonCheckedFontIcon = React.forwardRef(function RadioButtonCheckedFontIcon(props, ref) {
29674 return (React__default.createElement(FontIcon, __assign$ch({}, props, { ref: ref }), "radio_button_checked"));
29675 });
29676
29677 var __assign$ci = (undefined && undefined.__assign) || function () {
29678 __assign$ci = Object.assign || function(t) {
29679 for (var s, i = 1, n = arguments.length; i < n; i++) {
29680 s = arguments[i];
29681 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29682 t[p] = s[p];
29683 }
29684 return t;
29685 };
29686 return __assign$ci.apply(this, arguments);
29687 };
29688 var RadioButtonUncheckedFontIcon = React.forwardRef(function RadioButtonUncheckedFontIcon(props, ref) {
29689 return (React__default.createElement(FontIcon, __assign$ci({}, props, { ref: ref }), "radio_button_unchecked"));
29690 });
29691
29692 var __assign$cj = (undefined && undefined.__assign) || function () {
29693 __assign$cj = Object.assign || function(t) {
29694 for (var s, i = 1, n = arguments.length; i < n; i++) {
29695 s = arguments[i];
29696 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29697 t[p] = s[p];
29698 }
29699 return t;
29700 };
29701 return __assign$cj.apply(this, arguments);
29702 };
29703 var RadioFontIcon = React.forwardRef(function RadioFontIcon(props, ref) {
29704 return (React__default.createElement(FontIcon, __assign$cj({}, props, { ref: ref }), "radio"));
29705 });
29706
29707 var __assign$ck = (undefined && undefined.__assign) || function () {
29708 __assign$ck = Object.assign || function(t) {
29709 for (var s, i = 1, n = arguments.length; i < n; i++) {
29710 s = arguments[i];
29711 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29712 t[p] = s[p];
29713 }
29714 return t;
29715 };
29716 return __assign$ck.apply(this, arguments);
29717 };
29718 var RateReviewFontIcon = React.forwardRef(function RateReviewFontIcon(props, ref) {
29719 return (React__default.createElement(FontIcon, __assign$ck({}, props, { ref: ref }), "rate_review"));
29720 });
29721
29722 var __assign$cl = (undefined && undefined.__assign) || function () {
29723 __assign$cl = Object.assign || function(t) {
29724 for (var s, i = 1, n = arguments.length; i < n; i++) {
29725 s = arguments[i];
29726 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29727 t[p] = s[p];
29728 }
29729 return t;
29730 };
29731 return __assign$cl.apply(this, arguments);
29732 };
29733 var ReceiptFontIcon = React.forwardRef(function ReceiptFontIcon(props, ref) {
29734 return (React__default.createElement(FontIcon, __assign$cl({}, props, { ref: ref }), "receipt"));
29735 });
29736
29737 var __assign$cm = (undefined && undefined.__assign) || function () {
29738 __assign$cm = Object.assign || function(t) {
29739 for (var s, i = 1, n = arguments.length; i < n; i++) {
29740 s = arguments[i];
29741 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29742 t[p] = s[p];
29743 }
29744 return t;
29745 };
29746 return __assign$cm.apply(this, arguments);
29747 };
29748 var RecentActorsFontIcon = React.forwardRef(function RecentActorsFontIcon(props, ref) {
29749 return (React__default.createElement(FontIcon, __assign$cm({}, props, { ref: ref }), "recent_actors"));
29750 });
29751
29752 var __assign$cn = (undefined && undefined.__assign) || function () {
29753 __assign$cn = Object.assign || function(t) {
29754 for (var s, i = 1, n = arguments.length; i < n; i++) {
29755 s = arguments[i];
29756 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29757 t[p] = s[p];
29758 }
29759 return t;
29760 };
29761 return __assign$cn.apply(this, arguments);
29762 };
29763 var RecordVoiceOverFontIcon = React.forwardRef(function RecordVoiceOverFontIcon(props, ref) {
29764 return (React__default.createElement(FontIcon, __assign$cn({}, props, { ref: ref }), "record_voice_over"));
29765 });
29766
29767 var __assign$co = (undefined && undefined.__assign) || function () {
29768 __assign$co = Object.assign || function(t) {
29769 for (var s, i = 1, n = arguments.length; i < n; i++) {
29770 s = arguments[i];
29771 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29772 t[p] = s[p];
29773 }
29774 return t;
29775 };
29776 return __assign$co.apply(this, arguments);
29777 };
29778 var RedeemFontIcon = React.forwardRef(function RedeemFontIcon(props, ref) {
29779 return (React__default.createElement(FontIcon, __assign$co({}, props, { ref: ref }), "redeem"));
29780 });
29781
29782 var __assign$cp = (undefined && undefined.__assign) || function () {
29783 __assign$cp = Object.assign || function(t) {
29784 for (var s, i = 1, n = arguments.length; i < n; i++) {
29785 s = arguments[i];
29786 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29787 t[p] = s[p];
29788 }
29789 return t;
29790 };
29791 return __assign$cp.apply(this, arguments);
29792 };
29793 var RedoFontIcon = React.forwardRef(function RedoFontIcon(props, ref) {
29794 return (React__default.createElement(FontIcon, __assign$cp({}, props, { ref: ref }), "redo"));
29795 });
29796
29797 var __assign$cq = (undefined && undefined.__assign) || function () {
29798 __assign$cq = Object.assign || function(t) {
29799 for (var s, i = 1, n = arguments.length; i < n; i++) {
29800 s = arguments[i];
29801 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29802 t[p] = s[p];
29803 }
29804 return t;
29805 };
29806 return __assign$cq.apply(this, arguments);
29807 };
29808 var RefreshFontIcon = React.forwardRef(function RefreshFontIcon(props, ref) {
29809 return (React__default.createElement(FontIcon, __assign$cq({}, props, { ref: ref }), "refresh"));
29810 });
29811
29812 var __assign$cr = (undefined && undefined.__assign) || function () {
29813 __assign$cr = Object.assign || function(t) {
29814 for (var s, i = 1, n = arguments.length; i < n; i++) {
29815 s = arguments[i];
29816 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29817 t[p] = s[p];
29818 }
29819 return t;
29820 };
29821 return __assign$cr.apply(this, arguments);
29822 };
29823 var RemoveCircleOutlineFontIcon = React.forwardRef(function RemoveCircleOutlineFontIcon(props, ref) {
29824 return (React__default.createElement(FontIcon, __assign$cr({}, props, { ref: ref }), "remove_circle_outline"));
29825 });
29826
29827 var __assign$cs = (undefined && undefined.__assign) || function () {
29828 __assign$cs = Object.assign || function(t) {
29829 for (var s, i = 1, n = arguments.length; i < n; i++) {
29830 s = arguments[i];
29831 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29832 t[p] = s[p];
29833 }
29834 return t;
29835 };
29836 return __assign$cs.apply(this, arguments);
29837 };
29838 var RemoveCircleFontIcon = React.forwardRef(function RemoveCircleFontIcon(props, ref) {
29839 return (React__default.createElement(FontIcon, __assign$cs({}, props, { ref: ref }), "remove_circle"));
29840 });
29841
29842 var __assign$ct = (undefined && undefined.__assign) || function () {
29843 __assign$ct = Object.assign || function(t) {
29844 for (var s, i = 1, n = arguments.length; i < n; i++) {
29845 s = arguments[i];
29846 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29847 t[p] = s[p];
29848 }
29849 return t;
29850 };
29851 return __assign$ct.apply(this, arguments);
29852 };
29853 var RemoveFromQueueFontIcon = React.forwardRef(function RemoveFromQueueFontIcon(props, ref) {
29854 return (React__default.createElement(FontIcon, __assign$ct({}, props, { ref: ref }), "remove_from_queue"));
29855 });
29856
29857 var __assign$cu = (undefined && undefined.__assign) || function () {
29858 __assign$cu = Object.assign || function(t) {
29859 for (var s, i = 1, n = arguments.length; i < n; i++) {
29860 s = arguments[i];
29861 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29862 t[p] = s[p];
29863 }
29864 return t;
29865 };
29866 return __assign$cu.apply(this, arguments);
29867 };
29868 var RemoveRedEyeFontIcon = React.forwardRef(function RemoveRedEyeFontIcon(props, ref) {
29869 return (React__default.createElement(FontIcon, __assign$cu({}, props, { ref: ref }), "remove_red_eye"));
29870 });
29871
29872 var __assign$cv = (undefined && undefined.__assign) || function () {
29873 __assign$cv = Object.assign || function(t) {
29874 for (var s, i = 1, n = arguments.length; i < n; i++) {
29875 s = arguments[i];
29876 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29877 t[p] = s[p];
29878 }
29879 return t;
29880 };
29881 return __assign$cv.apply(this, arguments);
29882 };
29883 var RemoveShoppingCartFontIcon = React.forwardRef(function RemoveShoppingCartFontIcon(props, ref) {
29884 return (React__default.createElement(FontIcon, __assign$cv({}, props, { ref: ref }), "remove_shopping_cart"));
29885 });
29886
29887 var __assign$cw = (undefined && undefined.__assign) || function () {
29888 __assign$cw = Object.assign || function(t) {
29889 for (var s, i = 1, n = arguments.length; i < n; i++) {
29890 s = arguments[i];
29891 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29892 t[p] = s[p];
29893 }
29894 return t;
29895 };
29896 return __assign$cw.apply(this, arguments);
29897 };
29898 var RemoveFontIcon = React.forwardRef(function RemoveFontIcon(props, ref) {
29899 return (React__default.createElement(FontIcon, __assign$cw({}, props, { ref: ref }), "remove"));
29900 });
29901
29902 var __assign$cx = (undefined && undefined.__assign) || function () {
29903 __assign$cx = Object.assign || function(t) {
29904 for (var s, i = 1, n = arguments.length; i < n; i++) {
29905 s = arguments[i];
29906 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29907 t[p] = s[p];
29908 }
29909 return t;
29910 };
29911 return __assign$cx.apply(this, arguments);
29912 };
29913 var ReorderFontIcon = React.forwardRef(function ReorderFontIcon(props, ref) {
29914 return (React__default.createElement(FontIcon, __assign$cx({}, props, { ref: ref }), "reorder"));
29915 });
29916
29917 var __assign$cy = (undefined && undefined.__assign) || function () {
29918 __assign$cy = Object.assign || function(t) {
29919 for (var s, i = 1, n = arguments.length; i < n; i++) {
29920 s = arguments[i];
29921 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29922 t[p] = s[p];
29923 }
29924 return t;
29925 };
29926 return __assign$cy.apply(this, arguments);
29927 };
29928 var RepeatOneFontIcon = React.forwardRef(function RepeatOneFontIcon(props, ref) {
29929 return (React__default.createElement(FontIcon, __assign$cy({}, props, { ref: ref }), "repeat_one"));
29930 });
29931
29932 var __assign$cz = (undefined && undefined.__assign) || function () {
29933 __assign$cz = Object.assign || function(t) {
29934 for (var s, i = 1, n = arguments.length; i < n; i++) {
29935 s = arguments[i];
29936 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29937 t[p] = s[p];
29938 }
29939 return t;
29940 };
29941 return __assign$cz.apply(this, arguments);
29942 };
29943 var RepeatFontIcon = React.forwardRef(function RepeatFontIcon(props, ref) {
29944 return (React__default.createElement(FontIcon, __assign$cz({}, props, { ref: ref }), "repeat"));
29945 });
29946
29947 var __assign$cA = (undefined && undefined.__assign) || function () {
29948 __assign$cA = Object.assign || function(t) {
29949 for (var s, i = 1, n = arguments.length; i < n; i++) {
29950 s = arguments[i];
29951 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29952 t[p] = s[p];
29953 }
29954 return t;
29955 };
29956 return __assign$cA.apply(this, arguments);
29957 };
29958 var Replay10FontIcon = React.forwardRef(function Replay10FontIcon(props, ref) {
29959 return (React__default.createElement(FontIcon, __assign$cA({}, props, { ref: ref }), "replay_10"));
29960 });
29961
29962 var __assign$cB = (undefined && undefined.__assign) || function () {
29963 __assign$cB = Object.assign || function(t) {
29964 for (var s, i = 1, n = arguments.length; i < n; i++) {
29965 s = arguments[i];
29966 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29967 t[p] = s[p];
29968 }
29969 return t;
29970 };
29971 return __assign$cB.apply(this, arguments);
29972 };
29973 var Replay30FontIcon = React.forwardRef(function Replay30FontIcon(props, ref) {
29974 return (React__default.createElement(FontIcon, __assign$cB({}, props, { ref: ref }), "replay_30"));
29975 });
29976
29977 var __assign$cC = (undefined && undefined.__assign) || function () {
29978 __assign$cC = Object.assign || function(t) {
29979 for (var s, i = 1, n = arguments.length; i < n; i++) {
29980 s = arguments[i];
29981 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29982 t[p] = s[p];
29983 }
29984 return t;
29985 };
29986 return __assign$cC.apply(this, arguments);
29987 };
29988 var Replay5FontIcon = React.forwardRef(function Replay5FontIcon(props, ref) {
29989 return (React__default.createElement(FontIcon, __assign$cC({}, props, { ref: ref }), "replay_5"));
29990 });
29991
29992 var __assign$cD = (undefined && undefined.__assign) || function () {
29993 __assign$cD = Object.assign || function(t) {
29994 for (var s, i = 1, n = arguments.length; i < n; i++) {
29995 s = arguments[i];
29996 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29997 t[p] = s[p];
29998 }
29999 return t;
30000 };
30001 return __assign$cD.apply(this, arguments);
30002 };
30003 var ReplayFontIcon = React.forwardRef(function ReplayFontIcon(props, ref) {
30004 return (React__default.createElement(FontIcon, __assign$cD({}, props, { ref: ref }), "replay"));
30005 });
30006
30007 var __assign$cE = (undefined && undefined.__assign) || function () {
30008 __assign$cE = Object.assign || function(t) {
30009 for (var s, i = 1, n = arguments.length; i < n; i++) {
30010 s = arguments[i];
30011 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30012 t[p] = s[p];
30013 }
30014 return t;
30015 };
30016 return __assign$cE.apply(this, arguments);
30017 };
30018 var ReplyAllFontIcon = React.forwardRef(function ReplyAllFontIcon(props, ref) {
30019 return (React__default.createElement(FontIcon, __assign$cE({}, props, { ref: ref }), "reply_all"));
30020 });
30021
30022 var __assign$cF = (undefined && undefined.__assign) || function () {
30023 __assign$cF = Object.assign || function(t) {
30024 for (var s, i = 1, n = arguments.length; i < n; i++) {
30025 s = arguments[i];
30026 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30027 t[p] = s[p];
30028 }
30029 return t;
30030 };
30031 return __assign$cF.apply(this, arguments);
30032 };
30033 var ReplyFontIcon = React.forwardRef(function ReplyFontIcon(props, ref) {
30034 return (React__default.createElement(FontIcon, __assign$cF({}, props, { ref: ref }), "reply"));
30035 });
30036
30037 var __assign$cG = (undefined && undefined.__assign) || function () {
30038 __assign$cG = Object.assign || function(t) {
30039 for (var s, i = 1, n = arguments.length; i < n; i++) {
30040 s = arguments[i];
30041 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30042 t[p] = s[p];
30043 }
30044 return t;
30045 };
30046 return __assign$cG.apply(this, arguments);
30047 };
30048 var ReportProblemFontIcon = React.forwardRef(function ReportProblemFontIcon(props, ref) {
30049 return (React__default.createElement(FontIcon, __assign$cG({}, props, { ref: ref }), "report_problem"));
30050 });
30051
30052 var __assign$cH = (undefined && undefined.__assign) || function () {
30053 __assign$cH = Object.assign || function(t) {
30054 for (var s, i = 1, n = arguments.length; i < n; i++) {
30055 s = arguments[i];
30056 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30057 t[p] = s[p];
30058 }
30059 return t;
30060 };
30061 return __assign$cH.apply(this, arguments);
30062 };
30063 var ReportFontIcon = React.forwardRef(function ReportFontIcon(props, ref) {
30064 return (React__default.createElement(FontIcon, __assign$cH({}, props, { ref: ref }), "report"));
30065 });
30066
30067 var __assign$cI = (undefined && undefined.__assign) || function () {
30068 __assign$cI = Object.assign || function(t) {
30069 for (var s, i = 1, n = arguments.length; i < n; i++) {
30070 s = arguments[i];
30071 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30072 t[p] = s[p];
30073 }
30074 return t;
30075 };
30076 return __assign$cI.apply(this, arguments);
30077 };
30078 var RestaurantMenuFontIcon = React.forwardRef(function RestaurantMenuFontIcon(props, ref) {
30079 return (React__default.createElement(FontIcon, __assign$cI({}, props, { ref: ref }), "restaurant_menu"));
30080 });
30081
30082 var __assign$cJ = (undefined && undefined.__assign) || function () {
30083 __assign$cJ = Object.assign || function(t) {
30084 for (var s, i = 1, n = arguments.length; i < n; i++) {
30085 s = arguments[i];
30086 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30087 t[p] = s[p];
30088 }
30089 return t;
30090 };
30091 return __assign$cJ.apply(this, arguments);
30092 };
30093 var RestaurantFontIcon = React.forwardRef(function RestaurantFontIcon(props, ref) {
30094 return (React__default.createElement(FontIcon, __assign$cJ({}, props, { ref: ref }), "restaurant"));
30095 });
30096
30097 var __assign$cK = (undefined && undefined.__assign) || function () {
30098 __assign$cK = Object.assign || function(t) {
30099 for (var s, i = 1, n = arguments.length; i < n; i++) {
30100 s = arguments[i];
30101 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30102 t[p] = s[p];
30103 }
30104 return t;
30105 };
30106 return __assign$cK.apply(this, arguments);
30107 };
30108 var RestorePageFontIcon = React.forwardRef(function RestorePageFontIcon(props, ref) {
30109 return (React__default.createElement(FontIcon, __assign$cK({}, props, { ref: ref }), "restore_page"));
30110 });
30111
30112 var __assign$cL = (undefined && undefined.__assign) || function () {
30113 __assign$cL = Object.assign || function(t) {
30114 for (var s, i = 1, n = arguments.length; i < n; i++) {
30115 s = arguments[i];
30116 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30117 t[p] = s[p];
30118 }
30119 return t;
30120 };
30121 return __assign$cL.apply(this, arguments);
30122 };
30123 var RestoreFontIcon = React.forwardRef(function RestoreFontIcon(props, ref) {
30124 return (React__default.createElement(FontIcon, __assign$cL({}, props, { ref: ref }), "restore"));
30125 });
30126
30127 var __assign$cM = (undefined && undefined.__assign) || function () {
30128 __assign$cM = Object.assign || function(t) {
30129 for (var s, i = 1, n = arguments.length; i < n; i++) {
30130 s = arguments[i];
30131 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30132 t[p] = s[p];
30133 }
30134 return t;
30135 };
30136 return __assign$cM.apply(this, arguments);
30137 };
30138 var RingVolumeFontIcon = React.forwardRef(function RingVolumeFontIcon(props, ref) {
30139 return (React__default.createElement(FontIcon, __assign$cM({}, props, { ref: ref }), "ring_volume"));
30140 });
30141
30142 var __assign$cN = (undefined && undefined.__assign) || function () {
30143 __assign$cN = Object.assign || function(t) {
30144 for (var s, i = 1, n = arguments.length; i < n; i++) {
30145 s = arguments[i];
30146 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30147 t[p] = s[p];
30148 }
30149 return t;
30150 };
30151 return __assign$cN.apply(this, arguments);
30152 };
30153 var RoomServiceFontIcon = React.forwardRef(function RoomServiceFontIcon(props, ref) {
30154 return (React__default.createElement(FontIcon, __assign$cN({}, props, { ref: ref }), "room_service"));
30155 });
30156
30157 var __assign$cO = (undefined && undefined.__assign) || function () {
30158 __assign$cO = Object.assign || function(t) {
30159 for (var s, i = 1, n = arguments.length; i < n; i++) {
30160 s = arguments[i];
30161 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30162 t[p] = s[p];
30163 }
30164 return t;
30165 };
30166 return __assign$cO.apply(this, arguments);
30167 };
30168 var RoomFontIcon = React.forwardRef(function RoomFontIcon(props, ref) {
30169 return (React__default.createElement(FontIcon, __assign$cO({}, props, { ref: ref }), "room"));
30170 });
30171
30172 var __assign$cP = (undefined && undefined.__assign) || function () {
30173 __assign$cP = Object.assign || function(t) {
30174 for (var s, i = 1, n = arguments.length; i < n; i++) {
30175 s = arguments[i];
30176 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30177 t[p] = s[p];
30178 }
30179 return t;
30180 };
30181 return __assign$cP.apply(this, arguments);
30182 };
30183 var Rotate90DegreesCcwFontIcon = React.forwardRef(function Rotate90DegreesCcwFontIcon(props, ref) {
30184 return (React__default.createElement(FontIcon, __assign$cP({}, props, { ref: ref }), "rotate_90_degrees_ccw"));
30185 });
30186
30187 var __assign$cQ = (undefined && undefined.__assign) || function () {
30188 __assign$cQ = Object.assign || function(t) {
30189 for (var s, i = 1, n = arguments.length; i < n; i++) {
30190 s = arguments[i];
30191 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30192 t[p] = s[p];
30193 }
30194 return t;
30195 };
30196 return __assign$cQ.apply(this, arguments);
30197 };
30198 var RotateLeftFontIcon = React.forwardRef(function RotateLeftFontIcon(props, ref) {
30199 return (React__default.createElement(FontIcon, __assign$cQ({}, props, { ref: ref }), "rotate_left"));
30200 });
30201
30202 var __assign$cR = (undefined && undefined.__assign) || function () {
30203 __assign$cR = Object.assign || function(t) {
30204 for (var s, i = 1, n = arguments.length; i < n; i++) {
30205 s = arguments[i];
30206 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30207 t[p] = s[p];
30208 }
30209 return t;
30210 };
30211 return __assign$cR.apply(this, arguments);
30212 };
30213 var RotateRightFontIcon = React.forwardRef(function RotateRightFontIcon(props, ref) {
30214 return (React__default.createElement(FontIcon, __assign$cR({}, props, { ref: ref }), "rotate_right"));
30215 });
30216
30217 var __assign$cS = (undefined && undefined.__assign) || function () {
30218 __assign$cS = Object.assign || function(t) {
30219 for (var s, i = 1, n = arguments.length; i < n; i++) {
30220 s = arguments[i];
30221 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30222 t[p] = s[p];
30223 }
30224 return t;
30225 };
30226 return __assign$cS.apply(this, arguments);
30227 };
30228 var RoundedCornerFontIcon = React.forwardRef(function RoundedCornerFontIcon(props, ref) {
30229 return (React__default.createElement(FontIcon, __assign$cS({}, props, { ref: ref }), "rounded_corner"));
30230 });
30231
30232 var __assign$cT = (undefined && undefined.__assign) || function () {
30233 __assign$cT = Object.assign || function(t) {
30234 for (var s, i = 1, n = arguments.length; i < n; i++) {
30235 s = arguments[i];
30236 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30237 t[p] = s[p];
30238 }
30239 return t;
30240 };
30241 return __assign$cT.apply(this, arguments);
30242 };
30243 var RouterFontIcon = React.forwardRef(function RouterFontIcon(props, ref) {
30244 return (React__default.createElement(FontIcon, __assign$cT({}, props, { ref: ref }), "router"));
30245 });
30246
30247 var __assign$cU = (undefined && undefined.__assign) || function () {
30248 __assign$cU = Object.assign || function(t) {
30249 for (var s, i = 1, n = arguments.length; i < n; i++) {
30250 s = arguments[i];
30251 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30252 t[p] = s[p];
30253 }
30254 return t;
30255 };
30256 return __assign$cU.apply(this, arguments);
30257 };
30258 var RowingFontIcon = React.forwardRef(function RowingFontIcon(props, ref) {
30259 return (React__default.createElement(FontIcon, __assign$cU({}, props, { ref: ref }), "rowing"));
30260 });
30261
30262 var __assign$cV = (undefined && undefined.__assign) || function () {
30263 __assign$cV = Object.assign || function(t) {
30264 for (var s, i = 1, n = arguments.length; i < n; i++) {
30265 s = arguments[i];
30266 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30267 t[p] = s[p];
30268 }
30269 return t;
30270 };
30271 return __assign$cV.apply(this, arguments);
30272 };
30273 var RssFeedFontIcon = React.forwardRef(function RssFeedFontIcon(props, ref) {
30274 return (React__default.createElement(FontIcon, __assign$cV({}, props, { ref: ref }), "rss_feed"));
30275 });
30276
30277 var __assign$cW = (undefined && undefined.__assign) || function () {
30278 __assign$cW = Object.assign || function(t) {
30279 for (var s, i = 1, n = arguments.length; i < n; i++) {
30280 s = arguments[i];
30281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30282 t[p] = s[p];
30283 }
30284 return t;
30285 };
30286 return __assign$cW.apply(this, arguments);
30287 };
30288 var RvHookupFontIcon = React.forwardRef(function RvHookupFontIcon(props, ref) {
30289 return (React__default.createElement(FontIcon, __assign$cW({}, props, { ref: ref }), "rv_hookup"));
30290 });
30291
30292 var __assign$cX = (undefined && undefined.__assign) || function () {
30293 __assign$cX = Object.assign || function(t) {
30294 for (var s, i = 1, n = arguments.length; i < n; i++) {
30295 s = arguments[i];
30296 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30297 t[p] = s[p];
30298 }
30299 return t;
30300 };
30301 return __assign$cX.apply(this, arguments);
30302 };
30303 var SatelliteFontIcon = React.forwardRef(function SatelliteFontIcon(props, ref) {
30304 return (React__default.createElement(FontIcon, __assign$cX({}, props, { ref: ref }), "satellite"));
30305 });
30306
30307 var __assign$cY = (undefined && undefined.__assign) || function () {
30308 __assign$cY = Object.assign || function(t) {
30309 for (var s, i = 1, n = arguments.length; i < n; i++) {
30310 s = arguments[i];
30311 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30312 t[p] = s[p];
30313 }
30314 return t;
30315 };
30316 return __assign$cY.apply(this, arguments);
30317 };
30318 var SaveFontIcon = React.forwardRef(function SaveFontIcon(props, ref) {
30319 return (React__default.createElement(FontIcon, __assign$cY({}, props, { ref: ref }), "save"));
30320 });
30321
30322 var __assign$cZ = (undefined && undefined.__assign) || function () {
30323 __assign$cZ = Object.assign || function(t) {
30324 for (var s, i = 1, n = arguments.length; i < n; i++) {
30325 s = arguments[i];
30326 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30327 t[p] = s[p];
30328 }
30329 return t;
30330 };
30331 return __assign$cZ.apply(this, arguments);
30332 };
30333 var ScannerFontIcon = React.forwardRef(function ScannerFontIcon(props, ref) {
30334 return (React__default.createElement(FontIcon, __assign$cZ({}, props, { ref: ref }), "scanner"));
30335 });
30336
30337 var __assign$c_ = (undefined && undefined.__assign) || function () {
30338 __assign$c_ = Object.assign || function(t) {
30339 for (var s, i = 1, n = arguments.length; i < n; i++) {
30340 s = arguments[i];
30341 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30342 t[p] = s[p];
30343 }
30344 return t;
30345 };
30346 return __assign$c_.apply(this, arguments);
30347 };
30348 var ScheduleFontIcon = React.forwardRef(function ScheduleFontIcon(props, ref) {
30349 return (React__default.createElement(FontIcon, __assign$c_({}, props, { ref: ref }), "schedule"));
30350 });
30351
30352 var __assign$c$ = (undefined && undefined.__assign) || function () {
30353 __assign$c$ = Object.assign || function(t) {
30354 for (var s, i = 1, n = arguments.length; i < n; i++) {
30355 s = arguments[i];
30356 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30357 t[p] = s[p];
30358 }
30359 return t;
30360 };
30361 return __assign$c$.apply(this, arguments);
30362 };
30363 var SchoolFontIcon = React.forwardRef(function SchoolFontIcon(props, ref) {
30364 return (React__default.createElement(FontIcon, __assign$c$({}, props, { ref: ref }), "school"));
30365 });
30366
30367 var __assign$d0 = (undefined && undefined.__assign) || function () {
30368 __assign$d0 = Object.assign || function(t) {
30369 for (var s, i = 1, n = arguments.length; i < n; i++) {
30370 s = arguments[i];
30371 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30372 t[p] = s[p];
30373 }
30374 return t;
30375 };
30376 return __assign$d0.apply(this, arguments);
30377 };
30378 var ScreenLockLandscapeFontIcon = React.forwardRef(function ScreenLockLandscapeFontIcon(props, ref) {
30379 return (React__default.createElement(FontIcon, __assign$d0({}, props, { ref: ref }), "screen_lock_landscape"));
30380 });
30381
30382 var __assign$d1 = (undefined && undefined.__assign) || function () {
30383 __assign$d1 = Object.assign || function(t) {
30384 for (var s, i = 1, n = arguments.length; i < n; i++) {
30385 s = arguments[i];
30386 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30387 t[p] = s[p];
30388 }
30389 return t;
30390 };
30391 return __assign$d1.apply(this, arguments);
30392 };
30393 var ScreenLockPortraitFontIcon = React.forwardRef(function ScreenLockPortraitFontIcon(props, ref) {
30394 return (React__default.createElement(FontIcon, __assign$d1({}, props, { ref: ref }), "screen_lock_portrait"));
30395 });
30396
30397 var __assign$d2 = (undefined && undefined.__assign) || function () {
30398 __assign$d2 = Object.assign || function(t) {
30399 for (var s, i = 1, n = arguments.length; i < n; i++) {
30400 s = arguments[i];
30401 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30402 t[p] = s[p];
30403 }
30404 return t;
30405 };
30406 return __assign$d2.apply(this, arguments);
30407 };
30408 var ScreenLockRotationFontIcon = React.forwardRef(function ScreenLockRotationFontIcon(props, ref) {
30409 return (React__default.createElement(FontIcon, __assign$d2({}, props, { ref: ref }), "screen_lock_rotation"));
30410 });
30411
30412 var __assign$d3 = (undefined && undefined.__assign) || function () {
30413 __assign$d3 = Object.assign || function(t) {
30414 for (var s, i = 1, n = arguments.length; i < n; i++) {
30415 s = arguments[i];
30416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30417 t[p] = s[p];
30418 }
30419 return t;
30420 };
30421 return __assign$d3.apply(this, arguments);
30422 };
30423 var ScreenRotationFontIcon = React.forwardRef(function ScreenRotationFontIcon(props, ref) {
30424 return (React__default.createElement(FontIcon, __assign$d3({}, props, { ref: ref }), "screen_rotation"));
30425 });
30426
30427 var __assign$d4 = (undefined && undefined.__assign) || function () {
30428 __assign$d4 = Object.assign || function(t) {
30429 for (var s, i = 1, n = arguments.length; i < n; i++) {
30430 s = arguments[i];
30431 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30432 t[p] = s[p];
30433 }
30434 return t;
30435 };
30436 return __assign$d4.apply(this, arguments);
30437 };
30438 var ScreenShareFontIcon = React.forwardRef(function ScreenShareFontIcon(props, ref) {
30439 return (React__default.createElement(FontIcon, __assign$d4({}, props, { ref: ref }), "screen_share"));
30440 });
30441
30442 var __assign$d5 = (undefined && undefined.__assign) || function () {
30443 __assign$d5 = Object.assign || function(t) {
30444 for (var s, i = 1, n = arguments.length; i < n; i++) {
30445 s = arguments[i];
30446 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30447 t[p] = s[p];
30448 }
30449 return t;
30450 };
30451 return __assign$d5.apply(this, arguments);
30452 };
30453 var SdCardFontIcon = React.forwardRef(function SdCardFontIcon(props, ref) {
30454 return (React__default.createElement(FontIcon, __assign$d5({}, props, { ref: ref }), "sd_card"));
30455 });
30456
30457 var __assign$d6 = (undefined && undefined.__assign) || function () {
30458 __assign$d6 = Object.assign || function(t) {
30459 for (var s, i = 1, n = arguments.length; i < n; i++) {
30460 s = arguments[i];
30461 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30462 t[p] = s[p];
30463 }
30464 return t;
30465 };
30466 return __assign$d6.apply(this, arguments);
30467 };
30468 var SdStorageFontIcon = React.forwardRef(function SdStorageFontIcon(props, ref) {
30469 return (React__default.createElement(FontIcon, __assign$d6({}, props, { ref: ref }), "sd_storage"));
30470 });
30471
30472 var __assign$d7 = (undefined && undefined.__assign) || function () {
30473 __assign$d7 = Object.assign || function(t) {
30474 for (var s, i = 1, n = arguments.length; i < n; i++) {
30475 s = arguments[i];
30476 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30477 t[p] = s[p];
30478 }
30479 return t;
30480 };
30481 return __assign$d7.apply(this, arguments);
30482 };
30483 var SearchFontIcon = React.forwardRef(function SearchFontIcon(props, ref) {
30484 return (React__default.createElement(FontIcon, __assign$d7({}, props, { ref: ref }), "search"));
30485 });
30486
30487 var __assign$d8 = (undefined && undefined.__assign) || function () {
30488 __assign$d8 = Object.assign || function(t) {
30489 for (var s, i = 1, n = arguments.length; i < n; i++) {
30490 s = arguments[i];
30491 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30492 t[p] = s[p];
30493 }
30494 return t;
30495 };
30496 return __assign$d8.apply(this, arguments);
30497 };
30498 var SecurityFontIcon = React.forwardRef(function SecurityFontIcon(props, ref) {
30499 return (React__default.createElement(FontIcon, __assign$d8({}, props, { ref: ref }), "security"));
30500 });
30501
30502 var __assign$d9 = (undefined && undefined.__assign) || function () {
30503 __assign$d9 = Object.assign || function(t) {
30504 for (var s, i = 1, n = arguments.length; i < n; i++) {
30505 s = arguments[i];
30506 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30507 t[p] = s[p];
30508 }
30509 return t;
30510 };
30511 return __assign$d9.apply(this, arguments);
30512 };
30513 var SelectAllFontIcon = React.forwardRef(function SelectAllFontIcon(props, ref) {
30514 return (React__default.createElement(FontIcon, __assign$d9({}, props, { ref: ref }), "select_all"));
30515 });
30516
30517 var __assign$da = (undefined && undefined.__assign) || function () {
30518 __assign$da = Object.assign || function(t) {
30519 for (var s, i = 1, n = arguments.length; i < n; i++) {
30520 s = arguments[i];
30521 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30522 t[p] = s[p];
30523 }
30524 return t;
30525 };
30526 return __assign$da.apply(this, arguments);
30527 };
30528 var SendFontIcon = React.forwardRef(function SendFontIcon(props, ref) {
30529 return (React__default.createElement(FontIcon, __assign$da({}, props, { ref: ref }), "send"));
30530 });
30531
30532 var __assign$db = (undefined && undefined.__assign) || function () {
30533 __assign$db = Object.assign || function(t) {
30534 for (var s, i = 1, n = arguments.length; i < n; i++) {
30535 s = arguments[i];
30536 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30537 t[p] = s[p];
30538 }
30539 return t;
30540 };
30541 return __assign$db.apply(this, arguments);
30542 };
30543 var SentimentDissatisfiedFontIcon = React.forwardRef(function SentimentDissatisfiedFontIcon(props, ref) {
30544 return (React__default.createElement(FontIcon, __assign$db({}, props, { ref: ref }), "sentiment_dissatisfied"));
30545 });
30546
30547 var __assign$dc = (undefined && undefined.__assign) || function () {
30548 __assign$dc = Object.assign || function(t) {
30549 for (var s, i = 1, n = arguments.length; i < n; i++) {
30550 s = arguments[i];
30551 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30552 t[p] = s[p];
30553 }
30554 return t;
30555 };
30556 return __assign$dc.apply(this, arguments);
30557 };
30558 var SentimentNeutralFontIcon = React.forwardRef(function SentimentNeutralFontIcon(props, ref) {
30559 return (React__default.createElement(FontIcon, __assign$dc({}, props, { ref: ref }), "sentiment_neutral"));
30560 });
30561
30562 var __assign$dd = (undefined && undefined.__assign) || function () {
30563 __assign$dd = Object.assign || function(t) {
30564 for (var s, i = 1, n = arguments.length; i < n; i++) {
30565 s = arguments[i];
30566 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30567 t[p] = s[p];
30568 }
30569 return t;
30570 };
30571 return __assign$dd.apply(this, arguments);
30572 };
30573 var SentimentSatisfiedFontIcon = React.forwardRef(function SentimentSatisfiedFontIcon(props, ref) {
30574 return (React__default.createElement(FontIcon, __assign$dd({}, props, { ref: ref }), "sentiment_satisfied"));
30575 });
30576
30577 var __assign$de = (undefined && undefined.__assign) || function () {
30578 __assign$de = Object.assign || function(t) {
30579 for (var s, i = 1, n = arguments.length; i < n; i++) {
30580 s = arguments[i];
30581 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30582 t[p] = s[p];
30583 }
30584 return t;
30585 };
30586 return __assign$de.apply(this, arguments);
30587 };
30588 var SentimentVeryDissatisfiedFontIcon = React.forwardRef(function SentimentVeryDissatisfiedFontIcon(props, ref) {
30589 return (React__default.createElement(FontIcon, __assign$de({}, props, { ref: ref }), "sentiment_very_dissatisfied"));
30590 });
30591
30592 var __assign$df = (undefined && undefined.__assign) || function () {
30593 __assign$df = Object.assign || function(t) {
30594 for (var s, i = 1, n = arguments.length; i < n; i++) {
30595 s = arguments[i];
30596 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30597 t[p] = s[p];
30598 }
30599 return t;
30600 };
30601 return __assign$df.apply(this, arguments);
30602 };
30603 var SentimentVerySatisfiedFontIcon = React.forwardRef(function SentimentVerySatisfiedFontIcon(props, ref) {
30604 return (React__default.createElement(FontIcon, __assign$df({}, props, { ref: ref }), "sentiment_very_satisfied"));
30605 });
30606
30607 var __assign$dg = (undefined && undefined.__assign) || function () {
30608 __assign$dg = Object.assign || function(t) {
30609 for (var s, i = 1, n = arguments.length; i < n; i++) {
30610 s = arguments[i];
30611 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30612 t[p] = s[p];
30613 }
30614 return t;
30615 };
30616 return __assign$dg.apply(this, arguments);
30617 };
30618 var SettingsApplicationsFontIcon = React.forwardRef(function SettingsApplicationsFontIcon(props, ref) {
30619 return (React__default.createElement(FontIcon, __assign$dg({}, props, { ref: ref }), "settings_applications"));
30620 });
30621
30622 var __assign$dh = (undefined && undefined.__assign) || function () {
30623 __assign$dh = Object.assign || function(t) {
30624 for (var s, i = 1, n = arguments.length; i < n; i++) {
30625 s = arguments[i];
30626 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30627 t[p] = s[p];
30628 }
30629 return t;
30630 };
30631 return __assign$dh.apply(this, arguments);
30632 };
30633 var SettingsBackupRestoreFontIcon = React.forwardRef(function SettingsBackupRestoreFontIcon(props, ref) {
30634 return (React__default.createElement(FontIcon, __assign$dh({}, props, { ref: ref }), "settings_backup_restore"));
30635 });
30636
30637 var __assign$di = (undefined && undefined.__assign) || function () {
30638 __assign$di = Object.assign || function(t) {
30639 for (var s, i = 1, n = arguments.length; i < n; i++) {
30640 s = arguments[i];
30641 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30642 t[p] = s[p];
30643 }
30644 return t;
30645 };
30646 return __assign$di.apply(this, arguments);
30647 };
30648 var SettingsBluetoothFontIcon = React.forwardRef(function SettingsBluetoothFontIcon(props, ref) {
30649 return (React__default.createElement(FontIcon, __assign$di({}, props, { ref: ref }), "settings_bluetooth"));
30650 });
30651
30652 var __assign$dj = (undefined && undefined.__assign) || function () {
30653 __assign$dj = Object.assign || function(t) {
30654 for (var s, i = 1, n = arguments.length; i < n; i++) {
30655 s = arguments[i];
30656 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30657 t[p] = s[p];
30658 }
30659 return t;
30660 };
30661 return __assign$dj.apply(this, arguments);
30662 };
30663 var SettingsBrightnessFontIcon = React.forwardRef(function SettingsBrightnessFontIcon(props, ref) {
30664 return (React__default.createElement(FontIcon, __assign$dj({}, props, { ref: ref }), "settings_brightness"));
30665 });
30666
30667 var __assign$dk = (undefined && undefined.__assign) || function () {
30668 __assign$dk = Object.assign || function(t) {
30669 for (var s, i = 1, n = arguments.length; i < n; i++) {
30670 s = arguments[i];
30671 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30672 t[p] = s[p];
30673 }
30674 return t;
30675 };
30676 return __assign$dk.apply(this, arguments);
30677 };
30678 var SettingsCellFontIcon = React.forwardRef(function SettingsCellFontIcon(props, ref) {
30679 return (React__default.createElement(FontIcon, __assign$dk({}, props, { ref: ref }), "settings_cell"));
30680 });
30681
30682 var __assign$dl = (undefined && undefined.__assign) || function () {
30683 __assign$dl = Object.assign || function(t) {
30684 for (var s, i = 1, n = arguments.length; i < n; i++) {
30685 s = arguments[i];
30686 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30687 t[p] = s[p];
30688 }
30689 return t;
30690 };
30691 return __assign$dl.apply(this, arguments);
30692 };
30693 var SettingsEthernetFontIcon = React.forwardRef(function SettingsEthernetFontIcon(props, ref) {
30694 return (React__default.createElement(FontIcon, __assign$dl({}, props, { ref: ref }), "settings_ethernet"));
30695 });
30696
30697 var __assign$dm = (undefined && undefined.__assign) || function () {
30698 __assign$dm = Object.assign || function(t) {
30699 for (var s, i = 1, n = arguments.length; i < n; i++) {
30700 s = arguments[i];
30701 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30702 t[p] = s[p];
30703 }
30704 return t;
30705 };
30706 return __assign$dm.apply(this, arguments);
30707 };
30708 var SettingsInputAntennaFontIcon = React.forwardRef(function SettingsInputAntennaFontIcon(props, ref) {
30709 return (React__default.createElement(FontIcon, __assign$dm({}, props, { ref: ref }), "settings_input_antenna"));
30710 });
30711
30712 var __assign$dn = (undefined && undefined.__assign) || function () {
30713 __assign$dn = Object.assign || function(t) {
30714 for (var s, i = 1, n = arguments.length; i < n; i++) {
30715 s = arguments[i];
30716 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30717 t[p] = s[p];
30718 }
30719 return t;
30720 };
30721 return __assign$dn.apply(this, arguments);
30722 };
30723 var SettingsInputComponentFontIcon = React.forwardRef(function SettingsInputComponentFontIcon(props, ref) {
30724 return (React__default.createElement(FontIcon, __assign$dn({}, props, { ref: ref }), "settings_input_component"));
30725 });
30726
30727 var __assign$do = (undefined && undefined.__assign) || function () {
30728 __assign$do = Object.assign || function(t) {
30729 for (var s, i = 1, n = arguments.length; i < n; i++) {
30730 s = arguments[i];
30731 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30732 t[p] = s[p];
30733 }
30734 return t;
30735 };
30736 return __assign$do.apply(this, arguments);
30737 };
30738 var SettingsInputCompositeFontIcon = React.forwardRef(function SettingsInputCompositeFontIcon(props, ref) {
30739 return (React__default.createElement(FontIcon, __assign$do({}, props, { ref: ref }), "settings_input_composite"));
30740 });
30741
30742 var __assign$dp = (undefined && undefined.__assign) || function () {
30743 __assign$dp = Object.assign || function(t) {
30744 for (var s, i = 1, n = arguments.length; i < n; i++) {
30745 s = arguments[i];
30746 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30747 t[p] = s[p];
30748 }
30749 return t;
30750 };
30751 return __assign$dp.apply(this, arguments);
30752 };
30753 var SettingsInputHdmiFontIcon = React.forwardRef(function SettingsInputHdmiFontIcon(props, ref) {
30754 return (React__default.createElement(FontIcon, __assign$dp({}, props, { ref: ref }), "settings_input_hdmi"));
30755 });
30756
30757 var __assign$dq = (undefined && undefined.__assign) || function () {
30758 __assign$dq = Object.assign || function(t) {
30759 for (var s, i = 1, n = arguments.length; i < n; i++) {
30760 s = arguments[i];
30761 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30762 t[p] = s[p];
30763 }
30764 return t;
30765 };
30766 return __assign$dq.apply(this, arguments);
30767 };
30768 var SettingsInputSvideoFontIcon = React.forwardRef(function SettingsInputSvideoFontIcon(props, ref) {
30769 return (React__default.createElement(FontIcon, __assign$dq({}, props, { ref: ref }), "settings_input_svideo"));
30770 });
30771
30772 var __assign$dr = (undefined && undefined.__assign) || function () {
30773 __assign$dr = Object.assign || function(t) {
30774 for (var s, i = 1, n = arguments.length; i < n; i++) {
30775 s = arguments[i];
30776 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30777 t[p] = s[p];
30778 }
30779 return t;
30780 };
30781 return __assign$dr.apply(this, arguments);
30782 };
30783 var SettingsOverscanFontIcon = React.forwardRef(function SettingsOverscanFontIcon(props, ref) {
30784 return (React__default.createElement(FontIcon, __assign$dr({}, props, { ref: ref }), "settings_overscan"));
30785 });
30786
30787 var __assign$ds = (undefined && undefined.__assign) || function () {
30788 __assign$ds = Object.assign || function(t) {
30789 for (var s, i = 1, n = arguments.length; i < n; i++) {
30790 s = arguments[i];
30791 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30792 t[p] = s[p];
30793 }
30794 return t;
30795 };
30796 return __assign$ds.apply(this, arguments);
30797 };
30798 var SettingsPhoneFontIcon = React.forwardRef(function SettingsPhoneFontIcon(props, ref) {
30799 return (React__default.createElement(FontIcon, __assign$ds({}, props, { ref: ref }), "settings_phone"));
30800 });
30801
30802 var __assign$dt = (undefined && undefined.__assign) || function () {
30803 __assign$dt = Object.assign || function(t) {
30804 for (var s, i = 1, n = arguments.length; i < n; i++) {
30805 s = arguments[i];
30806 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30807 t[p] = s[p];
30808 }
30809 return t;
30810 };
30811 return __assign$dt.apply(this, arguments);
30812 };
30813 var SettingsPowerFontIcon = React.forwardRef(function SettingsPowerFontIcon(props, ref) {
30814 return (React__default.createElement(FontIcon, __assign$dt({}, props, { ref: ref }), "settings_power"));
30815 });
30816
30817 var __assign$du = (undefined && undefined.__assign) || function () {
30818 __assign$du = Object.assign || function(t) {
30819 for (var s, i = 1, n = arguments.length; i < n; i++) {
30820 s = arguments[i];
30821 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30822 t[p] = s[p];
30823 }
30824 return t;
30825 };
30826 return __assign$du.apply(this, arguments);
30827 };
30828 var SettingsRemoteFontIcon = React.forwardRef(function SettingsRemoteFontIcon(props, ref) {
30829 return (React__default.createElement(FontIcon, __assign$du({}, props, { ref: ref }), "settings_remote"));
30830 });
30831
30832 var __assign$dv = (undefined && undefined.__assign) || function () {
30833 __assign$dv = Object.assign || function(t) {
30834 for (var s, i = 1, n = arguments.length; i < n; i++) {
30835 s = arguments[i];
30836 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30837 t[p] = s[p];
30838 }
30839 return t;
30840 };
30841 return __assign$dv.apply(this, arguments);
30842 };
30843 var SettingsSystemDaydreamFontIcon = React.forwardRef(function SettingsSystemDaydreamFontIcon(props, ref) {
30844 return (React__default.createElement(FontIcon, __assign$dv({}, props, { ref: ref }), "settings_system_daydream"));
30845 });
30846
30847 var __assign$dw = (undefined && undefined.__assign) || function () {
30848 __assign$dw = Object.assign || function(t) {
30849 for (var s, i = 1, n = arguments.length; i < n; i++) {
30850 s = arguments[i];
30851 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30852 t[p] = s[p];
30853 }
30854 return t;
30855 };
30856 return __assign$dw.apply(this, arguments);
30857 };
30858 var SettingsVoiceFontIcon = React.forwardRef(function SettingsVoiceFontIcon(props, ref) {
30859 return (React__default.createElement(FontIcon, __assign$dw({}, props, { ref: ref }), "settings_voice"));
30860 });
30861
30862 var __assign$dx = (undefined && undefined.__assign) || function () {
30863 __assign$dx = Object.assign || function(t) {
30864 for (var s, i = 1, n = arguments.length; i < n; i++) {
30865 s = arguments[i];
30866 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30867 t[p] = s[p];
30868 }
30869 return t;
30870 };
30871 return __assign$dx.apply(this, arguments);
30872 };
30873 var SettingsFontIcon = React.forwardRef(function SettingsFontIcon(props, ref) {
30874 return (React__default.createElement(FontIcon, __assign$dx({}, props, { ref: ref }), "settings"));
30875 });
30876
30877 var __assign$dy = (undefined && undefined.__assign) || function () {
30878 __assign$dy = Object.assign || function(t) {
30879 for (var s, i = 1, n = arguments.length; i < n; i++) {
30880 s = arguments[i];
30881 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30882 t[p] = s[p];
30883 }
30884 return t;
30885 };
30886 return __assign$dy.apply(this, arguments);
30887 };
30888 var ShareFontIcon = React.forwardRef(function ShareFontIcon(props, ref) {
30889 return (React__default.createElement(FontIcon, __assign$dy({}, props, { ref: ref }), "share"));
30890 });
30891
30892 var __assign$dz = (undefined && undefined.__assign) || function () {
30893 __assign$dz = Object.assign || function(t) {
30894 for (var s, i = 1, n = arguments.length; i < n; i++) {
30895 s = arguments[i];
30896 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30897 t[p] = s[p];
30898 }
30899 return t;
30900 };
30901 return __assign$dz.apply(this, arguments);
30902 };
30903 var ShopTwoFontIcon = React.forwardRef(function ShopTwoFontIcon(props, ref) {
30904 return (React__default.createElement(FontIcon, __assign$dz({}, props, { ref: ref }), "shop_two"));
30905 });
30906
30907 var __assign$dA = (undefined && undefined.__assign) || function () {
30908 __assign$dA = Object.assign || function(t) {
30909 for (var s, i = 1, n = arguments.length; i < n; i++) {
30910 s = arguments[i];
30911 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30912 t[p] = s[p];
30913 }
30914 return t;
30915 };
30916 return __assign$dA.apply(this, arguments);
30917 };
30918 var ShopFontIcon = React.forwardRef(function ShopFontIcon(props, ref) {
30919 return (React__default.createElement(FontIcon, __assign$dA({}, props, { ref: ref }), "shop"));
30920 });
30921
30922 var __assign$dB = (undefined && undefined.__assign) || function () {
30923 __assign$dB = Object.assign || function(t) {
30924 for (var s, i = 1, n = arguments.length; i < n; i++) {
30925 s = arguments[i];
30926 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30927 t[p] = s[p];
30928 }
30929 return t;
30930 };
30931 return __assign$dB.apply(this, arguments);
30932 };
30933 var ShoppingBasketFontIcon = React.forwardRef(function ShoppingBasketFontIcon(props, ref) {
30934 return (React__default.createElement(FontIcon, __assign$dB({}, props, { ref: ref }), "shopping_basket"));
30935 });
30936
30937 var __assign$dC = (undefined && undefined.__assign) || function () {
30938 __assign$dC = Object.assign || function(t) {
30939 for (var s, i = 1, n = arguments.length; i < n; i++) {
30940 s = arguments[i];
30941 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30942 t[p] = s[p];
30943 }
30944 return t;
30945 };
30946 return __assign$dC.apply(this, arguments);
30947 };
30948 var ShoppingCartFontIcon = React.forwardRef(function ShoppingCartFontIcon(props, ref) {
30949 return (React__default.createElement(FontIcon, __assign$dC({}, props, { ref: ref }), "shopping_cart"));
30950 });
30951
30952 var __assign$dD = (undefined && undefined.__assign) || function () {
30953 __assign$dD = Object.assign || function(t) {
30954 for (var s, i = 1, n = arguments.length; i < n; i++) {
30955 s = arguments[i];
30956 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30957 t[p] = s[p];
30958 }
30959 return t;
30960 };
30961 return __assign$dD.apply(this, arguments);
30962 };
30963 var ShortTextFontIcon = React.forwardRef(function ShortTextFontIcon(props, ref) {
30964 return (React__default.createElement(FontIcon, __assign$dD({}, props, { ref: ref }), "short_text"));
30965 });
30966
30967 var __assign$dE = (undefined && undefined.__assign) || function () {
30968 __assign$dE = Object.assign || function(t) {
30969 for (var s, i = 1, n = arguments.length; i < n; i++) {
30970 s = arguments[i];
30971 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30972 t[p] = s[p];
30973 }
30974 return t;
30975 };
30976 return __assign$dE.apply(this, arguments);
30977 };
30978 var ShowChartFontIcon = React.forwardRef(function ShowChartFontIcon(props, ref) {
30979 return (React__default.createElement(FontIcon, __assign$dE({}, props, { ref: ref }), "show_chart"));
30980 });
30981
30982 var __assign$dF = (undefined && undefined.__assign) || function () {
30983 __assign$dF = Object.assign || function(t) {
30984 for (var s, i = 1, n = arguments.length; i < n; i++) {
30985 s = arguments[i];
30986 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30987 t[p] = s[p];
30988 }
30989 return t;
30990 };
30991 return __assign$dF.apply(this, arguments);
30992 };
30993 var ShuffleFontIcon = React.forwardRef(function ShuffleFontIcon(props, ref) {
30994 return (React__default.createElement(FontIcon, __assign$dF({}, props, { ref: ref }), "shuffle"));
30995 });
30996
30997 var __assign$dG = (undefined && undefined.__assign) || function () {
30998 __assign$dG = Object.assign || function(t) {
30999 for (var s, i = 1, n = arguments.length; i < n; i++) {
31000 s = arguments[i];
31001 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31002 t[p] = s[p];
31003 }
31004 return t;
31005 };
31006 return __assign$dG.apply(this, arguments);
31007 };
31008 var SignalCellular4BarFontIcon = React.forwardRef(function SignalCellular4BarFontIcon(props, ref) {
31009 return (React__default.createElement(FontIcon, __assign$dG({}, props, { ref: ref }), "signal_cellular_4_bar"));
31010 });
31011
31012 var __assign$dH = (undefined && undefined.__assign) || function () {
31013 __assign$dH = Object.assign || function(t) {
31014 for (var s, i = 1, n = arguments.length; i < n; i++) {
31015 s = arguments[i];
31016 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31017 t[p] = s[p];
31018 }
31019 return t;
31020 };
31021 return __assign$dH.apply(this, arguments);
31022 };
31023 var SignalCellularConnectedNoInternet4BarFontIcon = React.forwardRef(function SignalCellularConnectedNoInternet4BarFontIcon(props, ref) {
31024 return (React__default.createElement(FontIcon, __assign$dH({}, props, { ref: ref }), "signal_cellular_connected_no_internet_4_bar"));
31025 });
31026
31027 var __assign$dI = (undefined && undefined.__assign) || function () {
31028 __assign$dI = Object.assign || function(t) {
31029 for (var s, i = 1, n = arguments.length; i < n; i++) {
31030 s = arguments[i];
31031 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31032 t[p] = s[p];
31033 }
31034 return t;
31035 };
31036 return __assign$dI.apply(this, arguments);
31037 };
31038 var SignalCellularNoSimFontIcon = React.forwardRef(function SignalCellularNoSimFontIcon(props, ref) {
31039 return (React__default.createElement(FontIcon, __assign$dI({}, props, { ref: ref }), "signal_cellular_no_sim"));
31040 });
31041
31042 var __assign$dJ = (undefined && undefined.__assign) || function () {
31043 __assign$dJ = Object.assign || function(t) {
31044 for (var s, i = 1, n = arguments.length; i < n; i++) {
31045 s = arguments[i];
31046 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31047 t[p] = s[p];
31048 }
31049 return t;
31050 };
31051 return __assign$dJ.apply(this, arguments);
31052 };
31053 var SignalCellularNullFontIcon = React.forwardRef(function SignalCellularNullFontIcon(props, ref) {
31054 return (React__default.createElement(FontIcon, __assign$dJ({}, props, { ref: ref }), "signal_cellular_null"));
31055 });
31056
31057 var __assign$dK = (undefined && undefined.__assign) || function () {
31058 __assign$dK = Object.assign || function(t) {
31059 for (var s, i = 1, n = arguments.length; i < n; i++) {
31060 s = arguments[i];
31061 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31062 t[p] = s[p];
31063 }
31064 return t;
31065 };
31066 return __assign$dK.apply(this, arguments);
31067 };
31068 var SignalCellularOffFontIcon = React.forwardRef(function SignalCellularOffFontIcon(props, ref) {
31069 return (React__default.createElement(FontIcon, __assign$dK({}, props, { ref: ref }), "signal_cellular_off"));
31070 });
31071
31072 var __assign$dL = (undefined && undefined.__assign) || function () {
31073 __assign$dL = Object.assign || function(t) {
31074 for (var s, i = 1, n = arguments.length; i < n; i++) {
31075 s = arguments[i];
31076 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31077 t[p] = s[p];
31078 }
31079 return t;
31080 };
31081 return __assign$dL.apply(this, arguments);
31082 };
31083 var SignalWifi4BarLockFontIcon = React.forwardRef(function SignalWifi4BarLockFontIcon(props, ref) {
31084 return (React__default.createElement(FontIcon, __assign$dL({}, props, { ref: ref }), "signal_wifi_4_bar_lock"));
31085 });
31086
31087 var __assign$dM = (undefined && undefined.__assign) || function () {
31088 __assign$dM = Object.assign || function(t) {
31089 for (var s, i = 1, n = arguments.length; i < n; i++) {
31090 s = arguments[i];
31091 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31092 t[p] = s[p];
31093 }
31094 return t;
31095 };
31096 return __assign$dM.apply(this, arguments);
31097 };
31098 var SignalWifi4BarFontIcon = React.forwardRef(function SignalWifi4BarFontIcon(props, ref) {
31099 return (React__default.createElement(FontIcon, __assign$dM({}, props, { ref: ref }), "signal_wifi_4_bar"));
31100 });
31101
31102 var __assign$dN = (undefined && undefined.__assign) || function () {
31103 __assign$dN = Object.assign || function(t) {
31104 for (var s, i = 1, n = arguments.length; i < n; i++) {
31105 s = arguments[i];
31106 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31107 t[p] = s[p];
31108 }
31109 return t;
31110 };
31111 return __assign$dN.apply(this, arguments);
31112 };
31113 var SignalWifiOffFontIcon = React.forwardRef(function SignalWifiOffFontIcon(props, ref) {
31114 return (React__default.createElement(FontIcon, __assign$dN({}, props, { ref: ref }), "signal_wifi_off"));
31115 });
31116
31117 var __assign$dO = (undefined && undefined.__assign) || function () {
31118 __assign$dO = Object.assign || function(t) {
31119 for (var s, i = 1, n = arguments.length; i < n; i++) {
31120 s = arguments[i];
31121 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31122 t[p] = s[p];
31123 }
31124 return t;
31125 };
31126 return __assign$dO.apply(this, arguments);
31127 };
31128 var SimCardAlertFontIcon = React.forwardRef(function SimCardAlertFontIcon(props, ref) {
31129 return (React__default.createElement(FontIcon, __assign$dO({}, props, { ref: ref }), "sim_card_alert"));
31130 });
31131
31132 var __assign$dP = (undefined && undefined.__assign) || function () {
31133 __assign$dP = Object.assign || function(t) {
31134 for (var s, i = 1, n = arguments.length; i < n; i++) {
31135 s = arguments[i];
31136 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31137 t[p] = s[p];
31138 }
31139 return t;
31140 };
31141 return __assign$dP.apply(this, arguments);
31142 };
31143 var SimCardFontIcon = React.forwardRef(function SimCardFontIcon(props, ref) {
31144 return (React__default.createElement(FontIcon, __assign$dP({}, props, { ref: ref }), "sim_card"));
31145 });
31146
31147 var __assign$dQ = (undefined && undefined.__assign) || function () {
31148 __assign$dQ = Object.assign || function(t) {
31149 for (var s, i = 1, n = arguments.length; i < n; i++) {
31150 s = arguments[i];
31151 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31152 t[p] = s[p];
31153 }
31154 return t;
31155 };
31156 return __assign$dQ.apply(this, arguments);
31157 };
31158 var SkipNextFontIcon = React.forwardRef(function SkipNextFontIcon(props, ref) {
31159 return (React__default.createElement(FontIcon, __assign$dQ({}, props, { ref: ref }), "skip_next"));
31160 });
31161
31162 var __assign$dR = (undefined && undefined.__assign) || function () {
31163 __assign$dR = Object.assign || function(t) {
31164 for (var s, i = 1, n = arguments.length; i < n; i++) {
31165 s = arguments[i];
31166 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31167 t[p] = s[p];
31168 }
31169 return t;
31170 };
31171 return __assign$dR.apply(this, arguments);
31172 };
31173 var SkipPreviousFontIcon = React.forwardRef(function SkipPreviousFontIcon(props, ref) {
31174 return (React__default.createElement(FontIcon, __assign$dR({}, props, { ref: ref }), "skip_previous"));
31175 });
31176
31177 var __assign$dS = (undefined && undefined.__assign) || function () {
31178 __assign$dS = Object.assign || function(t) {
31179 for (var s, i = 1, n = arguments.length; i < n; i++) {
31180 s = arguments[i];
31181 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31182 t[p] = s[p];
31183 }
31184 return t;
31185 };
31186 return __assign$dS.apply(this, arguments);
31187 };
31188 var SlideshowFontIcon = React.forwardRef(function SlideshowFontIcon(props, ref) {
31189 return (React__default.createElement(FontIcon, __assign$dS({}, props, { ref: ref }), "slideshow"));
31190 });
31191
31192 var __assign$dT = (undefined && undefined.__assign) || function () {
31193 __assign$dT = Object.assign || function(t) {
31194 for (var s, i = 1, n = arguments.length; i < n; i++) {
31195 s = arguments[i];
31196 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31197 t[p] = s[p];
31198 }
31199 return t;
31200 };
31201 return __assign$dT.apply(this, arguments);
31202 };
31203 var SlowMotionVideoFontIcon = React.forwardRef(function SlowMotionVideoFontIcon(props, ref) {
31204 return (React__default.createElement(FontIcon, __assign$dT({}, props, { ref: ref }), "slow_motion_video"));
31205 });
31206
31207 var __assign$dU = (undefined && undefined.__assign) || function () {
31208 __assign$dU = Object.assign || function(t) {
31209 for (var s, i = 1, n = arguments.length; i < n; i++) {
31210 s = arguments[i];
31211 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31212 t[p] = s[p];
31213 }
31214 return t;
31215 };
31216 return __assign$dU.apply(this, arguments);
31217 };
31218 var SmartphoneFontIcon = React.forwardRef(function SmartphoneFontIcon(props, ref) {
31219 return (React__default.createElement(FontIcon, __assign$dU({}, props, { ref: ref }), "smartphone"));
31220 });
31221
31222 var __assign$dV = (undefined && undefined.__assign) || function () {
31223 __assign$dV = Object.assign || function(t) {
31224 for (var s, i = 1, n = arguments.length; i < n; i++) {
31225 s = arguments[i];
31226 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31227 t[p] = s[p];
31228 }
31229 return t;
31230 };
31231 return __assign$dV.apply(this, arguments);
31232 };
31233 var SmokeFreeFontIcon = React.forwardRef(function SmokeFreeFontIcon(props, ref) {
31234 return (React__default.createElement(FontIcon, __assign$dV({}, props, { ref: ref }), "smoke_free"));
31235 });
31236
31237 var __assign$dW = (undefined && undefined.__assign) || function () {
31238 __assign$dW = Object.assign || function(t) {
31239 for (var s, i = 1, n = arguments.length; i < n; i++) {
31240 s = arguments[i];
31241 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31242 t[p] = s[p];
31243 }
31244 return t;
31245 };
31246 return __assign$dW.apply(this, arguments);
31247 };
31248 var SmokingRoomsFontIcon = React.forwardRef(function SmokingRoomsFontIcon(props, ref) {
31249 return (React__default.createElement(FontIcon, __assign$dW({}, props, { ref: ref }), "smoking_rooms"));
31250 });
31251
31252 var __assign$dX = (undefined && undefined.__assign) || function () {
31253 __assign$dX = Object.assign || function(t) {
31254 for (var s, i = 1, n = arguments.length; i < n; i++) {
31255 s = arguments[i];
31256 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31257 t[p] = s[p];
31258 }
31259 return t;
31260 };
31261 return __assign$dX.apply(this, arguments);
31262 };
31263 var SmsFailedFontIcon = React.forwardRef(function SmsFailedFontIcon(props, ref) {
31264 return (React__default.createElement(FontIcon, __assign$dX({}, props, { ref: ref }), "sms_failed"));
31265 });
31266
31267 var __assign$dY = (undefined && undefined.__assign) || function () {
31268 __assign$dY = Object.assign || function(t) {
31269 for (var s, i = 1, n = arguments.length; i < n; i++) {
31270 s = arguments[i];
31271 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31272 t[p] = s[p];
31273 }
31274 return t;
31275 };
31276 return __assign$dY.apply(this, arguments);
31277 };
31278 var SmsFontIcon = React.forwardRef(function SmsFontIcon(props, ref) {
31279 return (React__default.createElement(FontIcon, __assign$dY({}, props, { ref: ref }), "sms"));
31280 });
31281
31282 var __assign$dZ = (undefined && undefined.__assign) || function () {
31283 __assign$dZ = Object.assign || function(t) {
31284 for (var s, i = 1, n = arguments.length; i < n; i++) {
31285 s = arguments[i];
31286 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31287 t[p] = s[p];
31288 }
31289 return t;
31290 };
31291 return __assign$dZ.apply(this, arguments);
31292 };
31293 var SnoozeFontIcon = React.forwardRef(function SnoozeFontIcon(props, ref) {
31294 return (React__default.createElement(FontIcon, __assign$dZ({}, props, { ref: ref }), "snooze"));
31295 });
31296
31297 var __assign$d_ = (undefined && undefined.__assign) || function () {
31298 __assign$d_ = Object.assign || function(t) {
31299 for (var s, i = 1, n = arguments.length; i < n; i++) {
31300 s = arguments[i];
31301 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31302 t[p] = s[p];
31303 }
31304 return t;
31305 };
31306 return __assign$d_.apply(this, arguments);
31307 };
31308 var SortByAlphaFontIcon = React.forwardRef(function SortByAlphaFontIcon(props, ref) {
31309 return (React__default.createElement(FontIcon, __assign$d_({}, props, { ref: ref }), "sort_by_alpha"));
31310 });
31311
31312 var __assign$d$ = (undefined && undefined.__assign) || function () {
31313 __assign$d$ = Object.assign || function(t) {
31314 for (var s, i = 1, n = arguments.length; i < n; i++) {
31315 s = arguments[i];
31316 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31317 t[p] = s[p];
31318 }
31319 return t;
31320 };
31321 return __assign$d$.apply(this, arguments);
31322 };
31323 var SortFontIcon = React.forwardRef(function SortFontIcon(props, ref) {
31324 return (React__default.createElement(FontIcon, __assign$d$({}, props, { ref: ref }), "sort"));
31325 });
31326
31327 var __assign$e0 = (undefined && undefined.__assign) || function () {
31328 __assign$e0 = Object.assign || function(t) {
31329 for (var s, i = 1, n = arguments.length; i < n; i++) {
31330 s = arguments[i];
31331 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31332 t[p] = s[p];
31333 }
31334 return t;
31335 };
31336 return __assign$e0.apply(this, arguments);
31337 };
31338 var SpaFontIcon = React.forwardRef(function SpaFontIcon(props, ref) {
31339 return (React__default.createElement(FontIcon, __assign$e0({}, props, { ref: ref }), "spa"));
31340 });
31341
31342 var __assign$e1 = (undefined && undefined.__assign) || function () {
31343 __assign$e1 = Object.assign || function(t) {
31344 for (var s, i = 1, n = arguments.length; i < n; i++) {
31345 s = arguments[i];
31346 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31347 t[p] = s[p];
31348 }
31349 return t;
31350 };
31351 return __assign$e1.apply(this, arguments);
31352 };
31353 var SpaceBarFontIcon = React.forwardRef(function SpaceBarFontIcon(props, ref) {
31354 return (React__default.createElement(FontIcon, __assign$e1({}, props, { ref: ref }), "space_bar"));
31355 });
31356
31357 var __assign$e2 = (undefined && undefined.__assign) || function () {
31358 __assign$e2 = Object.assign || function(t) {
31359 for (var s, i = 1, n = arguments.length; i < n; i++) {
31360 s = arguments[i];
31361 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31362 t[p] = s[p];
31363 }
31364 return t;
31365 };
31366 return __assign$e2.apply(this, arguments);
31367 };
31368 var SpeakerGroupFontIcon = React.forwardRef(function SpeakerGroupFontIcon(props, ref) {
31369 return (React__default.createElement(FontIcon, __assign$e2({}, props, { ref: ref }), "speaker_group"));
31370 });
31371
31372 var __assign$e3 = (undefined && undefined.__assign) || function () {
31373 __assign$e3 = Object.assign || function(t) {
31374 for (var s, i = 1, n = arguments.length; i < n; i++) {
31375 s = arguments[i];
31376 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31377 t[p] = s[p];
31378 }
31379 return t;
31380 };
31381 return __assign$e3.apply(this, arguments);
31382 };
31383 var SpeakerNotesOffFontIcon = React.forwardRef(function SpeakerNotesOffFontIcon(props, ref) {
31384 return (React__default.createElement(FontIcon, __assign$e3({}, props, { ref: ref }), "speaker_notes_off"));
31385 });
31386
31387 var __assign$e4 = (undefined && undefined.__assign) || function () {
31388 __assign$e4 = Object.assign || function(t) {
31389 for (var s, i = 1, n = arguments.length; i < n; i++) {
31390 s = arguments[i];
31391 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31392 t[p] = s[p];
31393 }
31394 return t;
31395 };
31396 return __assign$e4.apply(this, arguments);
31397 };
31398 var SpeakerNotesFontIcon = React.forwardRef(function SpeakerNotesFontIcon(props, ref) {
31399 return (React__default.createElement(FontIcon, __assign$e4({}, props, { ref: ref }), "speaker_notes"));
31400 });
31401
31402 var __assign$e5 = (undefined && undefined.__assign) || function () {
31403 __assign$e5 = Object.assign || function(t) {
31404 for (var s, i = 1, n = arguments.length; i < n; i++) {
31405 s = arguments[i];
31406 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31407 t[p] = s[p];
31408 }
31409 return t;
31410 };
31411 return __assign$e5.apply(this, arguments);
31412 };
31413 var SpeakerPhoneFontIcon = React.forwardRef(function SpeakerPhoneFontIcon(props, ref) {
31414 return (React__default.createElement(FontIcon, __assign$e5({}, props, { ref: ref }), "speaker_phone"));
31415 });
31416
31417 var __assign$e6 = (undefined && undefined.__assign) || function () {
31418 __assign$e6 = Object.assign || function(t) {
31419 for (var s, i = 1, n = arguments.length; i < n; i++) {
31420 s = arguments[i];
31421 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31422 t[p] = s[p];
31423 }
31424 return t;
31425 };
31426 return __assign$e6.apply(this, arguments);
31427 };
31428 var SpeakerFontIcon = React.forwardRef(function SpeakerFontIcon(props, ref) {
31429 return (React__default.createElement(FontIcon, __assign$e6({}, props, { ref: ref }), "speaker"));
31430 });
31431
31432 var __assign$e7 = (undefined && undefined.__assign) || function () {
31433 __assign$e7 = Object.assign || function(t) {
31434 for (var s, i = 1, n = arguments.length; i < n; i++) {
31435 s = arguments[i];
31436 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31437 t[p] = s[p];
31438 }
31439 return t;
31440 };
31441 return __assign$e7.apply(this, arguments);
31442 };
31443 var SpellcheckFontIcon = React.forwardRef(function SpellcheckFontIcon(props, ref) {
31444 return (React__default.createElement(FontIcon, __assign$e7({}, props, { ref: ref }), "spellcheck"));
31445 });
31446
31447 var __assign$e8 = (undefined && undefined.__assign) || function () {
31448 __assign$e8 = Object.assign || function(t) {
31449 for (var s, i = 1, n = arguments.length; i < n; i++) {
31450 s = arguments[i];
31451 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31452 t[p] = s[p];
31453 }
31454 return t;
31455 };
31456 return __assign$e8.apply(this, arguments);
31457 };
31458 var StarBorderFontIcon = React.forwardRef(function StarBorderFontIcon(props, ref) {
31459 return (React__default.createElement(FontIcon, __assign$e8({}, props, { ref: ref }), "star_border"));
31460 });
31461
31462 var __assign$e9 = (undefined && undefined.__assign) || function () {
31463 __assign$e9 = Object.assign || function(t) {
31464 for (var s, i = 1, n = arguments.length; i < n; i++) {
31465 s = arguments[i];
31466 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31467 t[p] = s[p];
31468 }
31469 return t;
31470 };
31471 return __assign$e9.apply(this, arguments);
31472 };
31473 var StarHalfFontIcon = React.forwardRef(function StarHalfFontIcon(props, ref) {
31474 return (React__default.createElement(FontIcon, __assign$e9({}, props, { ref: ref }), "star_half"));
31475 });
31476
31477 var __assign$ea = (undefined && undefined.__assign) || function () {
31478 __assign$ea = Object.assign || function(t) {
31479 for (var s, i = 1, n = arguments.length; i < n; i++) {
31480 s = arguments[i];
31481 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31482 t[p] = s[p];
31483 }
31484 return t;
31485 };
31486 return __assign$ea.apply(this, arguments);
31487 };
31488 var StarFontIcon = React.forwardRef(function StarFontIcon(props, ref) {
31489 return (React__default.createElement(FontIcon, __assign$ea({}, props, { ref: ref }), "star"));
31490 });
31491
31492 var __assign$eb = (undefined && undefined.__assign) || function () {
31493 __assign$eb = Object.assign || function(t) {
31494 for (var s, i = 1, n = arguments.length; i < n; i++) {
31495 s = arguments[i];
31496 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31497 t[p] = s[p];
31498 }
31499 return t;
31500 };
31501 return __assign$eb.apply(this, arguments);
31502 };
31503 var StarsFontIcon = React.forwardRef(function StarsFontIcon(props, ref) {
31504 return (React__default.createElement(FontIcon, __assign$eb({}, props, { ref: ref }), "stars"));
31505 });
31506
31507 var __assign$ec = (undefined && undefined.__assign) || function () {
31508 __assign$ec = Object.assign || function(t) {
31509 for (var s, i = 1, n = arguments.length; i < n; i++) {
31510 s = arguments[i];
31511 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31512 t[p] = s[p];
31513 }
31514 return t;
31515 };
31516 return __assign$ec.apply(this, arguments);
31517 };
31518 var StayCurrentLandscapeFontIcon = React.forwardRef(function StayCurrentLandscapeFontIcon(props, ref) {
31519 return (React__default.createElement(FontIcon, __assign$ec({}, props, { ref: ref }), "stay_current_landscape"));
31520 });
31521
31522 var __assign$ed = (undefined && undefined.__assign) || function () {
31523 __assign$ed = Object.assign || function(t) {
31524 for (var s, i = 1, n = arguments.length; i < n; i++) {
31525 s = arguments[i];
31526 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31527 t[p] = s[p];
31528 }
31529 return t;
31530 };
31531 return __assign$ed.apply(this, arguments);
31532 };
31533 var StayCurrentPortraitFontIcon = React.forwardRef(function StayCurrentPortraitFontIcon(props, ref) {
31534 return (React__default.createElement(FontIcon, __assign$ed({}, props, { ref: ref }), "stay_current_portrait"));
31535 });
31536
31537 var __assign$ee = (undefined && undefined.__assign) || function () {
31538 __assign$ee = Object.assign || function(t) {
31539 for (var s, i = 1, n = arguments.length; i < n; i++) {
31540 s = arguments[i];
31541 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31542 t[p] = s[p];
31543 }
31544 return t;
31545 };
31546 return __assign$ee.apply(this, arguments);
31547 };
31548 var StayPrimaryLandscapeFontIcon = React.forwardRef(function StayPrimaryLandscapeFontIcon(props, ref) {
31549 return (React__default.createElement(FontIcon, __assign$ee({}, props, { ref: ref }), "stay_primary_landscape"));
31550 });
31551
31552 var __assign$ef = (undefined && undefined.__assign) || function () {
31553 __assign$ef = Object.assign || function(t) {
31554 for (var s, i = 1, n = arguments.length; i < n; i++) {
31555 s = arguments[i];
31556 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31557 t[p] = s[p];
31558 }
31559 return t;
31560 };
31561 return __assign$ef.apply(this, arguments);
31562 };
31563 var StayPrimaryPortraitFontIcon = React.forwardRef(function StayPrimaryPortraitFontIcon(props, ref) {
31564 return (React__default.createElement(FontIcon, __assign$ef({}, props, { ref: ref }), "stay_primary_portrait"));
31565 });
31566
31567 var __assign$eg = (undefined && undefined.__assign) || function () {
31568 __assign$eg = Object.assign || function(t) {
31569 for (var s, i = 1, n = arguments.length; i < n; i++) {
31570 s = arguments[i];
31571 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31572 t[p] = s[p];
31573 }
31574 return t;
31575 };
31576 return __assign$eg.apply(this, arguments);
31577 };
31578 var StopScreenShareFontIcon = React.forwardRef(function StopScreenShareFontIcon(props, ref) {
31579 return (React__default.createElement(FontIcon, __assign$eg({}, props, { ref: ref }), "stop_screen_share"));
31580 });
31581
31582 var __assign$eh = (undefined && undefined.__assign) || function () {
31583 __assign$eh = Object.assign || function(t) {
31584 for (var s, i = 1, n = arguments.length; i < n; i++) {
31585 s = arguments[i];
31586 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31587 t[p] = s[p];
31588 }
31589 return t;
31590 };
31591 return __assign$eh.apply(this, arguments);
31592 };
31593 var StopFontIcon = React.forwardRef(function StopFontIcon(props, ref) {
31594 return (React__default.createElement(FontIcon, __assign$eh({}, props, { ref: ref }), "stop"));
31595 });
31596
31597 var __assign$ei = (undefined && undefined.__assign) || function () {
31598 __assign$ei = Object.assign || function(t) {
31599 for (var s, i = 1, n = arguments.length; i < n; i++) {
31600 s = arguments[i];
31601 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31602 t[p] = s[p];
31603 }
31604 return t;
31605 };
31606 return __assign$ei.apply(this, arguments);
31607 };
31608 var StorageFontIcon = React.forwardRef(function StorageFontIcon(props, ref) {
31609 return (React__default.createElement(FontIcon, __assign$ei({}, props, { ref: ref }), "storage"));
31610 });
31611
31612 var __assign$ej = (undefined && undefined.__assign) || function () {
31613 __assign$ej = Object.assign || function(t) {
31614 for (var s, i = 1, n = arguments.length; i < n; i++) {
31615 s = arguments[i];
31616 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31617 t[p] = s[p];
31618 }
31619 return t;
31620 };
31621 return __assign$ej.apply(this, arguments);
31622 };
31623 var StoreMallDirectoryFontIcon = React.forwardRef(function StoreMallDirectoryFontIcon(props, ref) {
31624 return (React__default.createElement(FontIcon, __assign$ej({}, props, { ref: ref }), "store_mall_directory"));
31625 });
31626
31627 var __assign$ek = (undefined && undefined.__assign) || function () {
31628 __assign$ek = Object.assign || function(t) {
31629 for (var s, i = 1, n = arguments.length; i < n; i++) {
31630 s = arguments[i];
31631 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31632 t[p] = s[p];
31633 }
31634 return t;
31635 };
31636 return __assign$ek.apply(this, arguments);
31637 };
31638 var StoreFontIcon = React.forwardRef(function StoreFontIcon(props, ref) {
31639 return (React__default.createElement(FontIcon, __assign$ek({}, props, { ref: ref }), "store"));
31640 });
31641
31642 var __assign$el = (undefined && undefined.__assign) || function () {
31643 __assign$el = Object.assign || function(t) {
31644 for (var s, i = 1, n = arguments.length; i < n; i++) {
31645 s = arguments[i];
31646 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31647 t[p] = s[p];
31648 }
31649 return t;
31650 };
31651 return __assign$el.apply(this, arguments);
31652 };
31653 var StraightenFontIcon = React.forwardRef(function StraightenFontIcon(props, ref) {
31654 return (React__default.createElement(FontIcon, __assign$el({}, props, { ref: ref }), "straighten"));
31655 });
31656
31657 var __assign$em = (undefined && undefined.__assign) || function () {
31658 __assign$em = Object.assign || function(t) {
31659 for (var s, i = 1, n = arguments.length; i < n; i++) {
31660 s = arguments[i];
31661 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31662 t[p] = s[p];
31663 }
31664 return t;
31665 };
31666 return __assign$em.apply(this, arguments);
31667 };
31668 var StreetviewFontIcon = React.forwardRef(function StreetviewFontIcon(props, ref) {
31669 return (React__default.createElement(FontIcon, __assign$em({}, props, { ref: ref }), "streetview"));
31670 });
31671
31672 var __assign$en = (undefined && undefined.__assign) || function () {
31673 __assign$en = Object.assign || function(t) {
31674 for (var s, i = 1, n = arguments.length; i < n; i++) {
31675 s = arguments[i];
31676 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31677 t[p] = s[p];
31678 }
31679 return t;
31680 };
31681 return __assign$en.apply(this, arguments);
31682 };
31683 var StrikethroughSFontIcon = React.forwardRef(function StrikethroughSFontIcon(props, ref) {
31684 return (React__default.createElement(FontIcon, __assign$en({}, props, { ref: ref }), "strikethrough_s"));
31685 });
31686
31687 var __assign$eo = (undefined && undefined.__assign) || function () {
31688 __assign$eo = Object.assign || function(t) {
31689 for (var s, i = 1, n = arguments.length; i < n; i++) {
31690 s = arguments[i];
31691 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31692 t[p] = s[p];
31693 }
31694 return t;
31695 };
31696 return __assign$eo.apply(this, arguments);
31697 };
31698 var StyleFontIcon = React.forwardRef(function StyleFontIcon(props, ref) {
31699 return (React__default.createElement(FontIcon, __assign$eo({}, props, { ref: ref }), "style"));
31700 });
31701
31702 var __assign$ep = (undefined && undefined.__assign) || function () {
31703 __assign$ep = Object.assign || function(t) {
31704 for (var s, i = 1, n = arguments.length; i < n; i++) {
31705 s = arguments[i];
31706 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31707 t[p] = s[p];
31708 }
31709 return t;
31710 };
31711 return __assign$ep.apply(this, arguments);
31712 };
31713 var SubdirectoryArrowLeftFontIcon = React.forwardRef(function SubdirectoryArrowLeftFontIcon(props, ref) {
31714 return (React__default.createElement(FontIcon, __assign$ep({}, props, { ref: ref }), "subdirectory_arrow_left"));
31715 });
31716
31717 var __assign$eq = (undefined && undefined.__assign) || function () {
31718 __assign$eq = Object.assign || function(t) {
31719 for (var s, i = 1, n = arguments.length; i < n; i++) {
31720 s = arguments[i];
31721 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31722 t[p] = s[p];
31723 }
31724 return t;
31725 };
31726 return __assign$eq.apply(this, arguments);
31727 };
31728 var SubdirectoryArrowRightFontIcon = React.forwardRef(function SubdirectoryArrowRightFontIcon(props, ref) {
31729 return (React__default.createElement(FontIcon, __assign$eq({}, props, { ref: ref }), "subdirectory_arrow_right"));
31730 });
31731
31732 var __assign$er = (undefined && undefined.__assign) || function () {
31733 __assign$er = Object.assign || function(t) {
31734 for (var s, i = 1, n = arguments.length; i < n; i++) {
31735 s = arguments[i];
31736 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31737 t[p] = s[p];
31738 }
31739 return t;
31740 };
31741 return __assign$er.apply(this, arguments);
31742 };
31743 var SubjectFontIcon = React.forwardRef(function SubjectFontIcon(props, ref) {
31744 return (React__default.createElement(FontIcon, __assign$er({}, props, { ref: ref }), "subject"));
31745 });
31746
31747 var __assign$es = (undefined && undefined.__assign) || function () {
31748 __assign$es = Object.assign || function(t) {
31749 for (var s, i = 1, n = arguments.length; i < n; i++) {
31750 s = arguments[i];
31751 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31752 t[p] = s[p];
31753 }
31754 return t;
31755 };
31756 return __assign$es.apply(this, arguments);
31757 };
31758 var SubscriptionsFontIcon = React.forwardRef(function SubscriptionsFontIcon(props, ref) {
31759 return (React__default.createElement(FontIcon, __assign$es({}, props, { ref: ref }), "subscriptions"));
31760 });
31761
31762 var __assign$et = (undefined && undefined.__assign) || function () {
31763 __assign$et = Object.assign || function(t) {
31764 for (var s, i = 1, n = arguments.length; i < n; i++) {
31765 s = arguments[i];
31766 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31767 t[p] = s[p];
31768 }
31769 return t;
31770 };
31771 return __assign$et.apply(this, arguments);
31772 };
31773 var SubtitlesFontIcon = React.forwardRef(function SubtitlesFontIcon(props, ref) {
31774 return (React__default.createElement(FontIcon, __assign$et({}, props, { ref: ref }), "subtitles"));
31775 });
31776
31777 var __assign$eu = (undefined && undefined.__assign) || function () {
31778 __assign$eu = Object.assign || function(t) {
31779 for (var s, i = 1, n = arguments.length; i < n; i++) {
31780 s = arguments[i];
31781 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31782 t[p] = s[p];
31783 }
31784 return t;
31785 };
31786 return __assign$eu.apply(this, arguments);
31787 };
31788 var SubwayFontIcon = React.forwardRef(function SubwayFontIcon(props, ref) {
31789 return (React__default.createElement(FontIcon, __assign$eu({}, props, { ref: ref }), "subway"));
31790 });
31791
31792 var __assign$ev = (undefined && undefined.__assign) || function () {
31793 __assign$ev = Object.assign || function(t) {
31794 for (var s, i = 1, n = arguments.length; i < n; i++) {
31795 s = arguments[i];
31796 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31797 t[p] = s[p];
31798 }
31799 return t;
31800 };
31801 return __assign$ev.apply(this, arguments);
31802 };
31803 var SupervisorAccountFontIcon = React.forwardRef(function SupervisorAccountFontIcon(props, ref) {
31804 return (React__default.createElement(FontIcon, __assign$ev({}, props, { ref: ref }), "supervisor_account"));
31805 });
31806
31807 var __assign$ew = (undefined && undefined.__assign) || function () {
31808 __assign$ew = Object.assign || function(t) {
31809 for (var s, i = 1, n = arguments.length; i < n; i++) {
31810 s = arguments[i];
31811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31812 t[p] = s[p];
31813 }
31814 return t;
31815 };
31816 return __assign$ew.apply(this, arguments);
31817 };
31818 var SurroundSoundFontIcon = React.forwardRef(function SurroundSoundFontIcon(props, ref) {
31819 return (React__default.createElement(FontIcon, __assign$ew({}, props, { ref: ref }), "surround_sound"));
31820 });
31821
31822 var __assign$ex = (undefined && undefined.__assign) || function () {
31823 __assign$ex = Object.assign || function(t) {
31824 for (var s, i = 1, n = arguments.length; i < n; i++) {
31825 s = arguments[i];
31826 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31827 t[p] = s[p];
31828 }
31829 return t;
31830 };
31831 return __assign$ex.apply(this, arguments);
31832 };
31833 var SwapCallsFontIcon = React.forwardRef(function SwapCallsFontIcon(props, ref) {
31834 return (React__default.createElement(FontIcon, __assign$ex({}, props, { ref: ref }), "swap_calls"));
31835 });
31836
31837 var __assign$ey = (undefined && undefined.__assign) || function () {
31838 __assign$ey = Object.assign || function(t) {
31839 for (var s, i = 1, n = arguments.length; i < n; i++) {
31840 s = arguments[i];
31841 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31842 t[p] = s[p];
31843 }
31844 return t;
31845 };
31846 return __assign$ey.apply(this, arguments);
31847 };
31848 var SwapHorizFontIcon = React.forwardRef(function SwapHorizFontIcon(props, ref) {
31849 return (React__default.createElement(FontIcon, __assign$ey({}, props, { ref: ref }), "swap_horiz"));
31850 });
31851
31852 var __assign$ez = (undefined && undefined.__assign) || function () {
31853 __assign$ez = Object.assign || function(t) {
31854 for (var s, i = 1, n = arguments.length; i < n; i++) {
31855 s = arguments[i];
31856 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31857 t[p] = s[p];
31858 }
31859 return t;
31860 };
31861 return __assign$ez.apply(this, arguments);
31862 };
31863 var SwapVertFontIcon = React.forwardRef(function SwapVertFontIcon(props, ref) {
31864 return (React__default.createElement(FontIcon, __assign$ez({}, props, { ref: ref }), "swap_vert"));
31865 });
31866
31867 var __assign$eA = (undefined && undefined.__assign) || function () {
31868 __assign$eA = Object.assign || function(t) {
31869 for (var s, i = 1, n = arguments.length; i < n; i++) {
31870 s = arguments[i];
31871 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31872 t[p] = s[p];
31873 }
31874 return t;
31875 };
31876 return __assign$eA.apply(this, arguments);
31877 };
31878 var SwapVerticalCircleFontIcon = React.forwardRef(function SwapVerticalCircleFontIcon(props, ref) {
31879 return (React__default.createElement(FontIcon, __assign$eA({}, props, { ref: ref }), "swap_vertical_circle"));
31880 });
31881
31882 var __assign$eB = (undefined && undefined.__assign) || function () {
31883 __assign$eB = Object.assign || function(t) {
31884 for (var s, i = 1, n = arguments.length; i < n; i++) {
31885 s = arguments[i];
31886 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31887 t[p] = s[p];
31888 }
31889 return t;
31890 };
31891 return __assign$eB.apply(this, arguments);
31892 };
31893 var SwitchCameraFontIcon = React.forwardRef(function SwitchCameraFontIcon(props, ref) {
31894 return (React__default.createElement(FontIcon, __assign$eB({}, props, { ref: ref }), "switch_camera"));
31895 });
31896
31897 var __assign$eC = (undefined && undefined.__assign) || function () {
31898 __assign$eC = Object.assign || function(t) {
31899 for (var s, i = 1, n = arguments.length; i < n; i++) {
31900 s = arguments[i];
31901 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31902 t[p] = s[p];
31903 }
31904 return t;
31905 };
31906 return __assign$eC.apply(this, arguments);
31907 };
31908 var SwitchVideoFontIcon = React.forwardRef(function SwitchVideoFontIcon(props, ref) {
31909 return (React__default.createElement(FontIcon, __assign$eC({}, props, { ref: ref }), "switch_video"));
31910 });
31911
31912 var __assign$eD = (undefined && undefined.__assign) || function () {
31913 __assign$eD = Object.assign || function(t) {
31914 for (var s, i = 1, n = arguments.length; i < n; i++) {
31915 s = arguments[i];
31916 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31917 t[p] = s[p];
31918 }
31919 return t;
31920 };
31921 return __assign$eD.apply(this, arguments);
31922 };
31923 var SyncDisabledFontIcon = React.forwardRef(function SyncDisabledFontIcon(props, ref) {
31924 return (React__default.createElement(FontIcon, __assign$eD({}, props, { ref: ref }), "sync_disabled"));
31925 });
31926
31927 var __assign$eE = (undefined && undefined.__assign) || function () {
31928 __assign$eE = Object.assign || function(t) {
31929 for (var s, i = 1, n = arguments.length; i < n; i++) {
31930 s = arguments[i];
31931 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31932 t[p] = s[p];
31933 }
31934 return t;
31935 };
31936 return __assign$eE.apply(this, arguments);
31937 };
31938 var SyncProblemFontIcon = React.forwardRef(function SyncProblemFontIcon(props, ref) {
31939 return (React__default.createElement(FontIcon, __assign$eE({}, props, { ref: ref }), "sync_problem"));
31940 });
31941
31942 var __assign$eF = (undefined && undefined.__assign) || function () {
31943 __assign$eF = Object.assign || function(t) {
31944 for (var s, i = 1, n = arguments.length; i < n; i++) {
31945 s = arguments[i];
31946 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31947 t[p] = s[p];
31948 }
31949 return t;
31950 };
31951 return __assign$eF.apply(this, arguments);
31952 };
31953 var SyncFontIcon = React.forwardRef(function SyncFontIcon(props, ref) {
31954 return (React__default.createElement(FontIcon, __assign$eF({}, props, { ref: ref }), "sync"));
31955 });
31956
31957 var __assign$eG = (undefined && undefined.__assign) || function () {
31958 __assign$eG = Object.assign || function(t) {
31959 for (var s, i = 1, n = arguments.length; i < n; i++) {
31960 s = arguments[i];
31961 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31962 t[p] = s[p];
31963 }
31964 return t;
31965 };
31966 return __assign$eG.apply(this, arguments);
31967 };
31968 var SystemUpdateAltFontIcon = React.forwardRef(function SystemUpdateAltFontIcon(props, ref) {
31969 return (React__default.createElement(FontIcon, __assign$eG({}, props, { ref: ref }), "system_update_alt"));
31970 });
31971
31972 var __assign$eH = (undefined && undefined.__assign) || function () {
31973 __assign$eH = Object.assign || function(t) {
31974 for (var s, i = 1, n = arguments.length; i < n; i++) {
31975 s = arguments[i];
31976 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31977 t[p] = s[p];
31978 }
31979 return t;
31980 };
31981 return __assign$eH.apply(this, arguments);
31982 };
31983 var SystemUpdateFontIcon = React.forwardRef(function SystemUpdateFontIcon(props, ref) {
31984 return (React__default.createElement(FontIcon, __assign$eH({}, props, { ref: ref }), "system_update"));
31985 });
31986
31987 var __assign$eI = (undefined && undefined.__assign) || function () {
31988 __assign$eI = Object.assign || function(t) {
31989 for (var s, i = 1, n = arguments.length; i < n; i++) {
31990 s = arguments[i];
31991 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31992 t[p] = s[p];
31993 }
31994 return t;
31995 };
31996 return __assign$eI.apply(this, arguments);
31997 };
31998 var TabUnselectedFontIcon = React.forwardRef(function TabUnselectedFontIcon(props, ref) {
31999 return (React__default.createElement(FontIcon, __assign$eI({}, props, { ref: ref }), "tab_unselected"));
32000 });
32001
32002 var __assign$eJ = (undefined && undefined.__assign) || function () {
32003 __assign$eJ = Object.assign || function(t) {
32004 for (var s, i = 1, n = arguments.length; i < n; i++) {
32005 s = arguments[i];
32006 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32007 t[p] = s[p];
32008 }
32009 return t;
32010 };
32011 return __assign$eJ.apply(this, arguments);
32012 };
32013 var TabFontIcon = React.forwardRef(function TabFontIcon(props, ref) {
32014 return (React__default.createElement(FontIcon, __assign$eJ({}, props, { ref: ref }), "tab"));
32015 });
32016
32017 var __assign$eK = (undefined && undefined.__assign) || function () {
32018 __assign$eK = Object.assign || function(t) {
32019 for (var s, i = 1, n = arguments.length; i < n; i++) {
32020 s = arguments[i];
32021 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32022 t[p] = s[p];
32023 }
32024 return t;
32025 };
32026 return __assign$eK.apply(this, arguments);
32027 };
32028 var TabletAndroidFontIcon = React.forwardRef(function TabletAndroidFontIcon(props, ref) {
32029 return (React__default.createElement(FontIcon, __assign$eK({}, props, { ref: ref }), "tablet_android"));
32030 });
32031
32032 var __assign$eL = (undefined && undefined.__assign) || function () {
32033 __assign$eL = Object.assign || function(t) {
32034 for (var s, i = 1, n = arguments.length; i < n; i++) {
32035 s = arguments[i];
32036 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32037 t[p] = s[p];
32038 }
32039 return t;
32040 };
32041 return __assign$eL.apply(this, arguments);
32042 };
32043 var TabletMacFontIcon = React.forwardRef(function TabletMacFontIcon(props, ref) {
32044 return (React__default.createElement(FontIcon, __assign$eL({}, props, { ref: ref }), "tablet_mac"));
32045 });
32046
32047 var __assign$eM = (undefined && undefined.__assign) || function () {
32048 __assign$eM = Object.assign || function(t) {
32049 for (var s, i = 1, n = arguments.length; i < n; i++) {
32050 s = arguments[i];
32051 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32052 t[p] = s[p];
32053 }
32054 return t;
32055 };
32056 return __assign$eM.apply(this, arguments);
32057 };
32058 var TabletFontIcon = React.forwardRef(function TabletFontIcon(props, ref) {
32059 return (React__default.createElement(FontIcon, __assign$eM({}, props, { ref: ref }), "tablet"));
32060 });
32061
32062 var __assign$eN = (undefined && undefined.__assign) || function () {
32063 __assign$eN = Object.assign || function(t) {
32064 for (var s, i = 1, n = arguments.length; i < n; i++) {
32065 s = arguments[i];
32066 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32067 t[p] = s[p];
32068 }
32069 return t;
32070 };
32071 return __assign$eN.apply(this, arguments);
32072 };
32073 var TagFacesFontIcon = React.forwardRef(function TagFacesFontIcon(props, ref) {
32074 return (React__default.createElement(FontIcon, __assign$eN({}, props, { ref: ref }), "tag_faces"));
32075 });
32076
32077 var __assign$eO = (undefined && undefined.__assign) || function () {
32078 __assign$eO = Object.assign || function(t) {
32079 for (var s, i = 1, n = arguments.length; i < n; i++) {
32080 s = arguments[i];
32081 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32082 t[p] = s[p];
32083 }
32084 return t;
32085 };
32086 return __assign$eO.apply(this, arguments);
32087 };
32088 var TapAndPlayFontIcon = React.forwardRef(function TapAndPlayFontIcon(props, ref) {
32089 return (React__default.createElement(FontIcon, __assign$eO({}, props, { ref: ref }), "tap_and_play"));
32090 });
32091
32092 var __assign$eP = (undefined && undefined.__assign) || function () {
32093 __assign$eP = Object.assign || function(t) {
32094 for (var s, i = 1, n = arguments.length; i < n; i++) {
32095 s = arguments[i];
32096 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32097 t[p] = s[p];
32098 }
32099 return t;
32100 };
32101 return __assign$eP.apply(this, arguments);
32102 };
32103 var TerrainFontIcon = React.forwardRef(function TerrainFontIcon(props, ref) {
32104 return (React__default.createElement(FontIcon, __assign$eP({}, props, { ref: ref }), "terrain"));
32105 });
32106
32107 var __assign$eQ = (undefined && undefined.__assign) || function () {
32108 __assign$eQ = Object.assign || function(t) {
32109 for (var s, i = 1, n = arguments.length; i < n; i++) {
32110 s = arguments[i];
32111 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32112 t[p] = s[p];
32113 }
32114 return t;
32115 };
32116 return __assign$eQ.apply(this, arguments);
32117 };
32118 var TextFieldsFontIcon = React.forwardRef(function TextFieldsFontIcon(props, ref) {
32119 return (React__default.createElement(FontIcon, __assign$eQ({}, props, { ref: ref }), "text_fields"));
32120 });
32121
32122 var __assign$eR = (undefined && undefined.__assign) || function () {
32123 __assign$eR = Object.assign || function(t) {
32124 for (var s, i = 1, n = arguments.length; i < n; i++) {
32125 s = arguments[i];
32126 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32127 t[p] = s[p];
32128 }
32129 return t;
32130 };
32131 return __assign$eR.apply(this, arguments);
32132 };
32133 var TextFormatFontIcon = React.forwardRef(function TextFormatFontIcon(props, ref) {
32134 return (React__default.createElement(FontIcon, __assign$eR({}, props, { ref: ref }), "text_format"));
32135 });
32136
32137 var __assign$eS = (undefined && undefined.__assign) || function () {
32138 __assign$eS = Object.assign || function(t) {
32139 for (var s, i = 1, n = arguments.length; i < n; i++) {
32140 s = arguments[i];
32141 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32142 t[p] = s[p];
32143 }
32144 return t;
32145 };
32146 return __assign$eS.apply(this, arguments);
32147 };
32148 var TextsmsFontIcon = React.forwardRef(function TextsmsFontIcon(props, ref) {
32149 return (React__default.createElement(FontIcon, __assign$eS({}, props, { ref: ref }), "textsms"));
32150 });
32151
32152 var __assign$eT = (undefined && undefined.__assign) || function () {
32153 __assign$eT = Object.assign || function(t) {
32154 for (var s, i = 1, n = arguments.length; i < n; i++) {
32155 s = arguments[i];
32156 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32157 t[p] = s[p];
32158 }
32159 return t;
32160 };
32161 return __assign$eT.apply(this, arguments);
32162 };
32163 var TextureFontIcon = React.forwardRef(function TextureFontIcon(props, ref) {
32164 return (React__default.createElement(FontIcon, __assign$eT({}, props, { ref: ref }), "texture"));
32165 });
32166
32167 var __assign$eU = (undefined && undefined.__assign) || function () {
32168 __assign$eU = Object.assign || function(t) {
32169 for (var s, i = 1, n = arguments.length; i < n; i++) {
32170 s = arguments[i];
32171 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32172 t[p] = s[p];
32173 }
32174 return t;
32175 };
32176 return __assign$eU.apply(this, arguments);
32177 };
32178 var TheatersFontIcon = React.forwardRef(function TheatersFontIcon(props, ref) {
32179 return (React__default.createElement(FontIcon, __assign$eU({}, props, { ref: ref }), "theaters"));
32180 });
32181
32182 var __assign$eV = (undefined && undefined.__assign) || function () {
32183 __assign$eV = Object.assign || function(t) {
32184 for (var s, i = 1, n = arguments.length; i < n; i++) {
32185 s = arguments[i];
32186 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32187 t[p] = s[p];
32188 }
32189 return t;
32190 };
32191 return __assign$eV.apply(this, arguments);
32192 };
32193 var ThumbDownFontIcon = React.forwardRef(function ThumbDownFontIcon(props, ref) {
32194 return (React__default.createElement(FontIcon, __assign$eV({}, props, { ref: ref }), "thumb_down"));
32195 });
32196
32197 var __assign$eW = (undefined && undefined.__assign) || function () {
32198 __assign$eW = Object.assign || function(t) {
32199 for (var s, i = 1, n = arguments.length; i < n; i++) {
32200 s = arguments[i];
32201 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32202 t[p] = s[p];
32203 }
32204 return t;
32205 };
32206 return __assign$eW.apply(this, arguments);
32207 };
32208 var ThumbUpFontIcon = React.forwardRef(function ThumbUpFontIcon(props, ref) {
32209 return (React__default.createElement(FontIcon, __assign$eW({}, props, { ref: ref }), "thumb_up"));
32210 });
32211
32212 var __assign$eX = (undefined && undefined.__assign) || function () {
32213 __assign$eX = Object.assign || function(t) {
32214 for (var s, i = 1, n = arguments.length; i < n; i++) {
32215 s = arguments[i];
32216 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32217 t[p] = s[p];
32218 }
32219 return t;
32220 };
32221 return __assign$eX.apply(this, arguments);
32222 };
32223 var ThumbsUpDownFontIcon = React.forwardRef(function ThumbsUpDownFontIcon(props, ref) {
32224 return (React__default.createElement(FontIcon, __assign$eX({}, props, { ref: ref }), "thumbs_up_down"));
32225 });
32226
32227 var __assign$eY = (undefined && undefined.__assign) || function () {
32228 __assign$eY = Object.assign || function(t) {
32229 for (var s, i = 1, n = arguments.length; i < n; i++) {
32230 s = arguments[i];
32231 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32232 t[p] = s[p];
32233 }
32234 return t;
32235 };
32236 return __assign$eY.apply(this, arguments);
32237 };
32238 var TimeToLeaveFontIcon = React.forwardRef(function TimeToLeaveFontIcon(props, ref) {
32239 return (React__default.createElement(FontIcon, __assign$eY({}, props, { ref: ref }), "time_to_leave"));
32240 });
32241
32242 var __assign$eZ = (undefined && undefined.__assign) || function () {
32243 __assign$eZ = Object.assign || function(t) {
32244 for (var s, i = 1, n = arguments.length; i < n; i++) {
32245 s = arguments[i];
32246 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32247 t[p] = s[p];
32248 }
32249 return t;
32250 };
32251 return __assign$eZ.apply(this, arguments);
32252 };
32253 var TimelapseFontIcon = React.forwardRef(function TimelapseFontIcon(props, ref) {
32254 return (React__default.createElement(FontIcon, __assign$eZ({}, props, { ref: ref }), "timelapse"));
32255 });
32256
32257 var __assign$e_ = (undefined && undefined.__assign) || function () {
32258 __assign$e_ = Object.assign || function(t) {
32259 for (var s, i = 1, n = arguments.length; i < n; i++) {
32260 s = arguments[i];
32261 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32262 t[p] = s[p];
32263 }
32264 return t;
32265 };
32266 return __assign$e_.apply(this, arguments);
32267 };
32268 var TimelineFontIcon = React.forwardRef(function TimelineFontIcon(props, ref) {
32269 return (React__default.createElement(FontIcon, __assign$e_({}, props, { ref: ref }), "timeline"));
32270 });
32271
32272 var __assign$e$ = (undefined && undefined.__assign) || function () {
32273 __assign$e$ = Object.assign || function(t) {
32274 for (var s, i = 1, n = arguments.length; i < n; i++) {
32275 s = arguments[i];
32276 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32277 t[p] = s[p];
32278 }
32279 return t;
32280 };
32281 return __assign$e$.apply(this, arguments);
32282 };
32283 var Timer10FontIcon = React.forwardRef(function Timer10FontIcon(props, ref) {
32284 return (React__default.createElement(FontIcon, __assign$e$({}, props, { ref: ref }), "timer_10"));
32285 });
32286
32287 var __assign$f0 = (undefined && undefined.__assign) || function () {
32288 __assign$f0 = Object.assign || function(t) {
32289 for (var s, i = 1, n = arguments.length; i < n; i++) {
32290 s = arguments[i];
32291 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32292 t[p] = s[p];
32293 }
32294 return t;
32295 };
32296 return __assign$f0.apply(this, arguments);
32297 };
32298 var Timer3FontIcon = React.forwardRef(function Timer3FontIcon(props, ref) {
32299 return (React__default.createElement(FontIcon, __assign$f0({}, props, { ref: ref }), "timer_3"));
32300 });
32301
32302 var __assign$f1 = (undefined && undefined.__assign) || function () {
32303 __assign$f1 = Object.assign || function(t) {
32304 for (var s, i = 1, n = arguments.length; i < n; i++) {
32305 s = arguments[i];
32306 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32307 t[p] = s[p];
32308 }
32309 return t;
32310 };
32311 return __assign$f1.apply(this, arguments);
32312 };
32313 var TimerOffFontIcon = React.forwardRef(function TimerOffFontIcon(props, ref) {
32314 return (React__default.createElement(FontIcon, __assign$f1({}, props, { ref: ref }), "timer_off"));
32315 });
32316
32317 var __assign$f2 = (undefined && undefined.__assign) || function () {
32318 __assign$f2 = Object.assign || function(t) {
32319 for (var s, i = 1, n = arguments.length; i < n; i++) {
32320 s = arguments[i];
32321 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32322 t[p] = s[p];
32323 }
32324 return t;
32325 };
32326 return __assign$f2.apply(this, arguments);
32327 };
32328 var TimerFontIcon = React.forwardRef(function TimerFontIcon(props, ref) {
32329 return (React__default.createElement(FontIcon, __assign$f2({}, props, { ref: ref }), "timer"));
32330 });
32331
32332 var __assign$f3 = (undefined && undefined.__assign) || function () {
32333 __assign$f3 = Object.assign || function(t) {
32334 for (var s, i = 1, n = arguments.length; i < n; i++) {
32335 s = arguments[i];
32336 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32337 t[p] = s[p];
32338 }
32339 return t;
32340 };
32341 return __assign$f3.apply(this, arguments);
32342 };
32343 var TitleFontIcon = React.forwardRef(function TitleFontIcon(props, ref) {
32344 return (React__default.createElement(FontIcon, __assign$f3({}, props, { ref: ref }), "title"));
32345 });
32346
32347 var __assign$f4 = (undefined && undefined.__assign) || function () {
32348 __assign$f4 = Object.assign || function(t) {
32349 for (var s, i = 1, n = arguments.length; i < n; i++) {
32350 s = arguments[i];
32351 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32352 t[p] = s[p];
32353 }
32354 return t;
32355 };
32356 return __assign$f4.apply(this, arguments);
32357 };
32358 var TocFontIcon = React.forwardRef(function TocFontIcon(props, ref) {
32359 return (React__default.createElement(FontIcon, __assign$f4({}, props, { ref: ref }), "toc"));
32360 });
32361
32362 var __assign$f5 = (undefined && undefined.__assign) || function () {
32363 __assign$f5 = Object.assign || function(t) {
32364 for (var s, i = 1, n = arguments.length; i < n; i++) {
32365 s = arguments[i];
32366 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32367 t[p] = s[p];
32368 }
32369 return t;
32370 };
32371 return __assign$f5.apply(this, arguments);
32372 };
32373 var TodayFontIcon = React.forwardRef(function TodayFontIcon(props, ref) {
32374 return (React__default.createElement(FontIcon, __assign$f5({}, props, { ref: ref }), "today"));
32375 });
32376
32377 var __assign$f6 = (undefined && undefined.__assign) || function () {
32378 __assign$f6 = Object.assign || function(t) {
32379 for (var s, i = 1, n = arguments.length; i < n; i++) {
32380 s = arguments[i];
32381 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32382 t[p] = s[p];
32383 }
32384 return t;
32385 };
32386 return __assign$f6.apply(this, arguments);
32387 };
32388 var TollFontIcon = React.forwardRef(function TollFontIcon(props, ref) {
32389 return (React__default.createElement(FontIcon, __assign$f6({}, props, { ref: ref }), "toll"));
32390 });
32391
32392 var __assign$f7 = (undefined && undefined.__assign) || function () {
32393 __assign$f7 = Object.assign || function(t) {
32394 for (var s, i = 1, n = arguments.length; i < n; i++) {
32395 s = arguments[i];
32396 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32397 t[p] = s[p];
32398 }
32399 return t;
32400 };
32401 return __assign$f7.apply(this, arguments);
32402 };
32403 var TonalityFontIcon = React.forwardRef(function TonalityFontIcon(props, ref) {
32404 return (React__default.createElement(FontIcon, __assign$f7({}, props, { ref: ref }), "tonality"));
32405 });
32406
32407 var __assign$f8 = (undefined && undefined.__assign) || function () {
32408 __assign$f8 = Object.assign || function(t) {
32409 for (var s, i = 1, n = arguments.length; i < n; i++) {
32410 s = arguments[i];
32411 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32412 t[p] = s[p];
32413 }
32414 return t;
32415 };
32416 return __assign$f8.apply(this, arguments);
32417 };
32418 var TouchAppFontIcon = React.forwardRef(function TouchAppFontIcon(props, ref) {
32419 return (React__default.createElement(FontIcon, __assign$f8({}, props, { ref: ref }), "touch_app"));
32420 });
32421
32422 var __assign$f9 = (undefined && undefined.__assign) || function () {
32423 __assign$f9 = Object.assign || function(t) {
32424 for (var s, i = 1, n = arguments.length; i < n; i++) {
32425 s = arguments[i];
32426 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32427 t[p] = s[p];
32428 }
32429 return t;
32430 };
32431 return __assign$f9.apply(this, arguments);
32432 };
32433 var ToysFontIcon = React.forwardRef(function ToysFontIcon(props, ref) {
32434 return (React__default.createElement(FontIcon, __assign$f9({}, props, { ref: ref }), "toys"));
32435 });
32436
32437 var __assign$fa = (undefined && undefined.__assign) || function () {
32438 __assign$fa = Object.assign || function(t) {
32439 for (var s, i = 1, n = arguments.length; i < n; i++) {
32440 s = arguments[i];
32441 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32442 t[p] = s[p];
32443 }
32444 return t;
32445 };
32446 return __assign$fa.apply(this, arguments);
32447 };
32448 var TrackChangesFontIcon = React.forwardRef(function TrackChangesFontIcon(props, ref) {
32449 return (React__default.createElement(FontIcon, __assign$fa({}, props, { ref: ref }), "track_changes"));
32450 });
32451
32452 var __assign$fb = (undefined && undefined.__assign) || function () {
32453 __assign$fb = Object.assign || function(t) {
32454 for (var s, i = 1, n = arguments.length; i < n; i++) {
32455 s = arguments[i];
32456 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32457 t[p] = s[p];
32458 }
32459 return t;
32460 };
32461 return __assign$fb.apply(this, arguments);
32462 };
32463 var TrafficFontIcon = React.forwardRef(function TrafficFontIcon(props, ref) {
32464 return (React__default.createElement(FontIcon, __assign$fb({}, props, { ref: ref }), "traffic"));
32465 });
32466
32467 var __assign$fc = (undefined && undefined.__assign) || function () {
32468 __assign$fc = Object.assign || function(t) {
32469 for (var s, i = 1, n = arguments.length; i < n; i++) {
32470 s = arguments[i];
32471 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32472 t[p] = s[p];
32473 }
32474 return t;
32475 };
32476 return __assign$fc.apply(this, arguments);
32477 };
32478 var TrainFontIcon = React.forwardRef(function TrainFontIcon(props, ref) {
32479 return (React__default.createElement(FontIcon, __assign$fc({}, props, { ref: ref }), "train"));
32480 });
32481
32482 var __assign$fd = (undefined && undefined.__assign) || function () {
32483 __assign$fd = Object.assign || function(t) {
32484 for (var s, i = 1, n = arguments.length; i < n; i++) {
32485 s = arguments[i];
32486 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32487 t[p] = s[p];
32488 }
32489 return t;
32490 };
32491 return __assign$fd.apply(this, arguments);
32492 };
32493 var TramFontIcon = React.forwardRef(function TramFontIcon(props, ref) {
32494 return (React__default.createElement(FontIcon, __assign$fd({}, props, { ref: ref }), "tram"));
32495 });
32496
32497 var __assign$fe = (undefined && undefined.__assign) || function () {
32498 __assign$fe = Object.assign || function(t) {
32499 for (var s, i = 1, n = arguments.length; i < n; i++) {
32500 s = arguments[i];
32501 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32502 t[p] = s[p];
32503 }
32504 return t;
32505 };
32506 return __assign$fe.apply(this, arguments);
32507 };
32508 var TransferWithinAStationFontIcon = React.forwardRef(function TransferWithinAStationFontIcon(props, ref) {
32509 return (React__default.createElement(FontIcon, __assign$fe({}, props, { ref: ref }), "transfer_within_a_station"));
32510 });
32511
32512 var __assign$ff = (undefined && undefined.__assign) || function () {
32513 __assign$ff = Object.assign || function(t) {
32514 for (var s, i = 1, n = arguments.length; i < n; i++) {
32515 s = arguments[i];
32516 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32517 t[p] = s[p];
32518 }
32519 return t;
32520 };
32521 return __assign$ff.apply(this, arguments);
32522 };
32523 var TransformFontIcon = React.forwardRef(function TransformFontIcon(props, ref) {
32524 return (React__default.createElement(FontIcon, __assign$ff({}, props, { ref: ref }), "transform"));
32525 });
32526
32527 var __assign$fg = (undefined && undefined.__assign) || function () {
32528 __assign$fg = Object.assign || function(t) {
32529 for (var s, i = 1, n = arguments.length; i < n; i++) {
32530 s = arguments[i];
32531 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32532 t[p] = s[p];
32533 }
32534 return t;
32535 };
32536 return __assign$fg.apply(this, arguments);
32537 };
32538 var TranslateFontIcon = React.forwardRef(function TranslateFontIcon(props, ref) {
32539 return (React__default.createElement(FontIcon, __assign$fg({}, props, { ref: ref }), "translate"));
32540 });
32541
32542 var __assign$fh = (undefined && undefined.__assign) || function () {
32543 __assign$fh = Object.assign || function(t) {
32544 for (var s, i = 1, n = arguments.length; i < n; i++) {
32545 s = arguments[i];
32546 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32547 t[p] = s[p];
32548 }
32549 return t;
32550 };
32551 return __assign$fh.apply(this, arguments);
32552 };
32553 var TrendingDownFontIcon = React.forwardRef(function TrendingDownFontIcon(props, ref) {
32554 return (React__default.createElement(FontIcon, __assign$fh({}, props, { ref: ref }), "trending_down"));
32555 });
32556
32557 var __assign$fi = (undefined && undefined.__assign) || function () {
32558 __assign$fi = Object.assign || function(t) {
32559 for (var s, i = 1, n = arguments.length; i < n; i++) {
32560 s = arguments[i];
32561 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32562 t[p] = s[p];
32563 }
32564 return t;
32565 };
32566 return __assign$fi.apply(this, arguments);
32567 };
32568 var TrendingFlatFontIcon = React.forwardRef(function TrendingFlatFontIcon(props, ref) {
32569 return (React__default.createElement(FontIcon, __assign$fi({}, props, { ref: ref }), "trending_flat"));
32570 });
32571
32572 var __assign$fj = (undefined && undefined.__assign) || function () {
32573 __assign$fj = Object.assign || function(t) {
32574 for (var s, i = 1, n = arguments.length; i < n; i++) {
32575 s = arguments[i];
32576 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32577 t[p] = s[p];
32578 }
32579 return t;
32580 };
32581 return __assign$fj.apply(this, arguments);
32582 };
32583 var TrendingUpFontIcon = React.forwardRef(function TrendingUpFontIcon(props, ref) {
32584 return (React__default.createElement(FontIcon, __assign$fj({}, props, { ref: ref }), "trending_up"));
32585 });
32586
32587 var __assign$fk = (undefined && undefined.__assign) || function () {
32588 __assign$fk = Object.assign || function(t) {
32589 for (var s, i = 1, n = arguments.length; i < n; i++) {
32590 s = arguments[i];
32591 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32592 t[p] = s[p];
32593 }
32594 return t;
32595 };
32596 return __assign$fk.apply(this, arguments);
32597 };
32598 var TuneFontIcon = React.forwardRef(function TuneFontIcon(props, ref) {
32599 return (React__default.createElement(FontIcon, __assign$fk({}, props, { ref: ref }), "tune"));
32600 });
32601
32602 var __assign$fl = (undefined && undefined.__assign) || function () {
32603 __assign$fl = Object.assign || function(t) {
32604 for (var s, i = 1, n = arguments.length; i < n; i++) {
32605 s = arguments[i];
32606 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32607 t[p] = s[p];
32608 }
32609 return t;
32610 };
32611 return __assign$fl.apply(this, arguments);
32612 };
32613 var TurnedInNotFontIcon = React.forwardRef(function TurnedInNotFontIcon(props, ref) {
32614 return (React__default.createElement(FontIcon, __assign$fl({}, props, { ref: ref }), "turned_in_not"));
32615 });
32616
32617 var __assign$fm = (undefined && undefined.__assign) || function () {
32618 __assign$fm = Object.assign || function(t) {
32619 for (var s, i = 1, n = arguments.length; i < n; i++) {
32620 s = arguments[i];
32621 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32622 t[p] = s[p];
32623 }
32624 return t;
32625 };
32626 return __assign$fm.apply(this, arguments);
32627 };
32628 var TurnedInFontIcon = React.forwardRef(function TurnedInFontIcon(props, ref) {
32629 return (React__default.createElement(FontIcon, __assign$fm({}, props, { ref: ref }), "turned_in"));
32630 });
32631
32632 var __assign$fn = (undefined && undefined.__assign) || function () {
32633 __assign$fn = Object.assign || function(t) {
32634 for (var s, i = 1, n = arguments.length; i < n; i++) {
32635 s = arguments[i];
32636 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32637 t[p] = s[p];
32638 }
32639 return t;
32640 };
32641 return __assign$fn.apply(this, arguments);
32642 };
32643 var TvFontIcon = React.forwardRef(function TvFontIcon(props, ref) {
32644 return (React__default.createElement(FontIcon, __assign$fn({}, props, { ref: ref }), "tv"));
32645 });
32646
32647 var __assign$fo = (undefined && undefined.__assign) || function () {
32648 __assign$fo = Object.assign || function(t) {
32649 for (var s, i = 1, n = arguments.length; i < n; i++) {
32650 s = arguments[i];
32651 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32652 t[p] = s[p];
32653 }
32654 return t;
32655 };
32656 return __assign$fo.apply(this, arguments);
32657 };
32658 var UnarchiveFontIcon = React.forwardRef(function UnarchiveFontIcon(props, ref) {
32659 return (React__default.createElement(FontIcon, __assign$fo({}, props, { ref: ref }), "unarchive"));
32660 });
32661
32662 var __assign$fp = (undefined && undefined.__assign) || function () {
32663 __assign$fp = Object.assign || function(t) {
32664 for (var s, i = 1, n = arguments.length; i < n; i++) {
32665 s = arguments[i];
32666 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32667 t[p] = s[p];
32668 }
32669 return t;
32670 };
32671 return __assign$fp.apply(this, arguments);
32672 };
32673 var UndoFontIcon = React.forwardRef(function UndoFontIcon(props, ref) {
32674 return (React__default.createElement(FontIcon, __assign$fp({}, props, { ref: ref }), "undo"));
32675 });
32676
32677 var __assign$fq = (undefined && undefined.__assign) || function () {
32678 __assign$fq = Object.assign || function(t) {
32679 for (var s, i = 1, n = arguments.length; i < n; i++) {
32680 s = arguments[i];
32681 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32682 t[p] = s[p];
32683 }
32684 return t;
32685 };
32686 return __assign$fq.apply(this, arguments);
32687 };
32688 var UnfoldLessFontIcon = React.forwardRef(function UnfoldLessFontIcon(props, ref) {
32689 return (React__default.createElement(FontIcon, __assign$fq({}, props, { ref: ref }), "unfold_less"));
32690 });
32691
32692 var __assign$fr = (undefined && undefined.__assign) || function () {
32693 __assign$fr = Object.assign || function(t) {
32694 for (var s, i = 1, n = arguments.length; i < n; i++) {
32695 s = arguments[i];
32696 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32697 t[p] = s[p];
32698 }
32699 return t;
32700 };
32701 return __assign$fr.apply(this, arguments);
32702 };
32703 var UnfoldMoreFontIcon = React.forwardRef(function UnfoldMoreFontIcon(props, ref) {
32704 return (React__default.createElement(FontIcon, __assign$fr({}, props, { ref: ref }), "unfold_more"));
32705 });
32706
32707 var __assign$fs = (undefined && undefined.__assign) || function () {
32708 __assign$fs = Object.assign || function(t) {
32709 for (var s, i = 1, n = arguments.length; i < n; i++) {
32710 s = arguments[i];
32711 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32712 t[p] = s[p];
32713 }
32714 return t;
32715 };
32716 return __assign$fs.apply(this, arguments);
32717 };
32718 var UpdateFontIcon = React.forwardRef(function UpdateFontIcon(props, ref) {
32719 return (React__default.createElement(FontIcon, __assign$fs({}, props, { ref: ref }), "update"));
32720 });
32721
32722 var __assign$ft = (undefined && undefined.__assign) || function () {
32723 __assign$ft = Object.assign || function(t) {
32724 for (var s, i = 1, n = arguments.length; i < n; i++) {
32725 s = arguments[i];
32726 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32727 t[p] = s[p];
32728 }
32729 return t;
32730 };
32731 return __assign$ft.apply(this, arguments);
32732 };
32733 var UsbFontIcon = React.forwardRef(function UsbFontIcon(props, ref) {
32734 return (React__default.createElement(FontIcon, __assign$ft({}, props, { ref: ref }), "usb"));
32735 });
32736
32737 var __assign$fu = (undefined && undefined.__assign) || function () {
32738 __assign$fu = Object.assign || function(t) {
32739 for (var s, i = 1, n = arguments.length; i < n; i++) {
32740 s = arguments[i];
32741 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32742 t[p] = s[p];
32743 }
32744 return t;
32745 };
32746 return __assign$fu.apply(this, arguments);
32747 };
32748 var VerifiedUserFontIcon = React.forwardRef(function VerifiedUserFontIcon(props, ref) {
32749 return (React__default.createElement(FontIcon, __assign$fu({}, props, { ref: ref }), "verified_user"));
32750 });
32751
32752 var __assign$fv = (undefined && undefined.__assign) || function () {
32753 __assign$fv = Object.assign || function(t) {
32754 for (var s, i = 1, n = arguments.length; i < n; i++) {
32755 s = arguments[i];
32756 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32757 t[p] = s[p];
32758 }
32759 return t;
32760 };
32761 return __assign$fv.apply(this, arguments);
32762 };
32763 var VerticalAlignBottomFontIcon = React.forwardRef(function VerticalAlignBottomFontIcon(props, ref) {
32764 return (React__default.createElement(FontIcon, __assign$fv({}, props, { ref: ref }), "vertical_align_bottom"));
32765 });
32766
32767 var __assign$fw = (undefined && undefined.__assign) || function () {
32768 __assign$fw = Object.assign || function(t) {
32769 for (var s, i = 1, n = arguments.length; i < n; i++) {
32770 s = arguments[i];
32771 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32772 t[p] = s[p];
32773 }
32774 return t;
32775 };
32776 return __assign$fw.apply(this, arguments);
32777 };
32778 var VerticalAlignCenterFontIcon = React.forwardRef(function VerticalAlignCenterFontIcon(props, ref) {
32779 return (React__default.createElement(FontIcon, __assign$fw({}, props, { ref: ref }), "vertical_align_center"));
32780 });
32781
32782 var __assign$fx = (undefined && undefined.__assign) || function () {
32783 __assign$fx = Object.assign || function(t) {
32784 for (var s, i = 1, n = arguments.length; i < n; i++) {
32785 s = arguments[i];
32786 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32787 t[p] = s[p];
32788 }
32789 return t;
32790 };
32791 return __assign$fx.apply(this, arguments);
32792 };
32793 var VerticalAlignTopFontIcon = React.forwardRef(function VerticalAlignTopFontIcon(props, ref) {
32794 return (React__default.createElement(FontIcon, __assign$fx({}, props, { ref: ref }), "vertical_align_top"));
32795 });
32796
32797 var __assign$fy = (undefined && undefined.__assign) || function () {
32798 __assign$fy = Object.assign || function(t) {
32799 for (var s, i = 1, n = arguments.length; i < n; i++) {
32800 s = arguments[i];
32801 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32802 t[p] = s[p];
32803 }
32804 return t;
32805 };
32806 return __assign$fy.apply(this, arguments);
32807 };
32808 var VibrationFontIcon = React.forwardRef(function VibrationFontIcon(props, ref) {
32809 return (React__default.createElement(FontIcon, __assign$fy({}, props, { ref: ref }), "vibration"));
32810 });
32811
32812 var __assign$fz = (undefined && undefined.__assign) || function () {
32813 __assign$fz = Object.assign || function(t) {
32814 for (var s, i = 1, n = arguments.length; i < n; i++) {
32815 s = arguments[i];
32816 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32817 t[p] = s[p];
32818 }
32819 return t;
32820 };
32821 return __assign$fz.apply(this, arguments);
32822 };
32823 var VideoCallFontIcon = React.forwardRef(function VideoCallFontIcon(props, ref) {
32824 return (React__default.createElement(FontIcon, __assign$fz({}, props, { ref: ref }), "video_call"));
32825 });
32826
32827 var __assign$fA = (undefined && undefined.__assign) || function () {
32828 __assign$fA = Object.assign || function(t) {
32829 for (var s, i = 1, n = arguments.length; i < n; i++) {
32830 s = arguments[i];
32831 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32832 t[p] = s[p];
32833 }
32834 return t;
32835 };
32836 return __assign$fA.apply(this, arguments);
32837 };
32838 var VideoLabelFontIcon = React.forwardRef(function VideoLabelFontIcon(props, ref) {
32839 return (React__default.createElement(FontIcon, __assign$fA({}, props, { ref: ref }), "video_label"));
32840 });
32841
32842 var __assign$fB = (undefined && undefined.__assign) || function () {
32843 __assign$fB = Object.assign || function(t) {
32844 for (var s, i = 1, n = arguments.length; i < n; i++) {
32845 s = arguments[i];
32846 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32847 t[p] = s[p];
32848 }
32849 return t;
32850 };
32851 return __assign$fB.apply(this, arguments);
32852 };
32853 var VideoLibraryFontIcon = React.forwardRef(function VideoLibraryFontIcon(props, ref) {
32854 return (React__default.createElement(FontIcon, __assign$fB({}, props, { ref: ref }), "video_library"));
32855 });
32856
32857 var __assign$fC = (undefined && undefined.__assign) || function () {
32858 __assign$fC = Object.assign || function(t) {
32859 for (var s, i = 1, n = arguments.length; i < n; i++) {
32860 s = arguments[i];
32861 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32862 t[p] = s[p];
32863 }
32864 return t;
32865 };
32866 return __assign$fC.apply(this, arguments);
32867 };
32868 var VideocamOffFontIcon = React.forwardRef(function VideocamOffFontIcon(props, ref) {
32869 return (React__default.createElement(FontIcon, __assign$fC({}, props, { ref: ref }), "videocam_off"));
32870 });
32871
32872 var __assign$fD = (undefined && undefined.__assign) || function () {
32873 __assign$fD = Object.assign || function(t) {
32874 for (var s, i = 1, n = arguments.length; i < n; i++) {
32875 s = arguments[i];
32876 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32877 t[p] = s[p];
32878 }
32879 return t;
32880 };
32881 return __assign$fD.apply(this, arguments);
32882 };
32883 var VideocamFontIcon = React.forwardRef(function VideocamFontIcon(props, ref) {
32884 return (React__default.createElement(FontIcon, __assign$fD({}, props, { ref: ref }), "videocam"));
32885 });
32886
32887 var __assign$fE = (undefined && undefined.__assign) || function () {
32888 __assign$fE = Object.assign || function(t) {
32889 for (var s, i = 1, n = arguments.length; i < n; i++) {
32890 s = arguments[i];
32891 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32892 t[p] = s[p];
32893 }
32894 return t;
32895 };
32896 return __assign$fE.apply(this, arguments);
32897 };
32898 var VideogameAssetFontIcon = React.forwardRef(function VideogameAssetFontIcon(props, ref) {
32899 return (React__default.createElement(FontIcon, __assign$fE({}, props, { ref: ref }), "videogame_asset"));
32900 });
32901
32902 var __assign$fF = (undefined && undefined.__assign) || function () {
32903 __assign$fF = Object.assign || function(t) {
32904 for (var s, i = 1, n = arguments.length; i < n; i++) {
32905 s = arguments[i];
32906 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32907 t[p] = s[p];
32908 }
32909 return t;
32910 };
32911 return __assign$fF.apply(this, arguments);
32912 };
32913 var ViewAgendaFontIcon = React.forwardRef(function ViewAgendaFontIcon(props, ref) {
32914 return (React__default.createElement(FontIcon, __assign$fF({}, props, { ref: ref }), "view_agenda"));
32915 });
32916
32917 var __assign$fG = (undefined && undefined.__assign) || function () {
32918 __assign$fG = Object.assign || function(t) {
32919 for (var s, i = 1, n = arguments.length; i < n; i++) {
32920 s = arguments[i];
32921 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32922 t[p] = s[p];
32923 }
32924 return t;
32925 };
32926 return __assign$fG.apply(this, arguments);
32927 };
32928 var ViewArrayFontIcon = React.forwardRef(function ViewArrayFontIcon(props, ref) {
32929 return (React__default.createElement(FontIcon, __assign$fG({}, props, { ref: ref }), "view_array"));
32930 });
32931
32932 var __assign$fH = (undefined && undefined.__assign) || function () {
32933 __assign$fH = Object.assign || function(t) {
32934 for (var s, i = 1, n = arguments.length; i < n; i++) {
32935 s = arguments[i];
32936 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32937 t[p] = s[p];
32938 }
32939 return t;
32940 };
32941 return __assign$fH.apply(this, arguments);
32942 };
32943 var ViewCarouselFontIcon = React.forwardRef(function ViewCarouselFontIcon(props, ref) {
32944 return (React__default.createElement(FontIcon, __assign$fH({}, props, { ref: ref }), "view_carousel"));
32945 });
32946
32947 var __assign$fI = (undefined && undefined.__assign) || function () {
32948 __assign$fI = Object.assign || function(t) {
32949 for (var s, i = 1, n = arguments.length; i < n; i++) {
32950 s = arguments[i];
32951 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32952 t[p] = s[p];
32953 }
32954 return t;
32955 };
32956 return __assign$fI.apply(this, arguments);
32957 };
32958 var ViewColumnFontIcon = React.forwardRef(function ViewColumnFontIcon(props, ref) {
32959 return (React__default.createElement(FontIcon, __assign$fI({}, props, { ref: ref }), "view_column"));
32960 });
32961
32962 var __assign$fJ = (undefined && undefined.__assign) || function () {
32963 __assign$fJ = Object.assign || function(t) {
32964 for (var s, i = 1, n = arguments.length; i < n; i++) {
32965 s = arguments[i];
32966 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32967 t[p] = s[p];
32968 }
32969 return t;
32970 };
32971 return __assign$fJ.apply(this, arguments);
32972 };
32973 var ViewComfyFontIcon = React.forwardRef(function ViewComfyFontIcon(props, ref) {
32974 return (React__default.createElement(FontIcon, __assign$fJ({}, props, { ref: ref }), "view_comfy"));
32975 });
32976
32977 var __assign$fK = (undefined && undefined.__assign) || function () {
32978 __assign$fK = Object.assign || function(t) {
32979 for (var s, i = 1, n = arguments.length; i < n; i++) {
32980 s = arguments[i];
32981 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32982 t[p] = s[p];
32983 }
32984 return t;
32985 };
32986 return __assign$fK.apply(this, arguments);
32987 };
32988 var ViewCompactFontIcon = React.forwardRef(function ViewCompactFontIcon(props, ref) {
32989 return (React__default.createElement(FontIcon, __assign$fK({}, props, { ref: ref }), "view_compact"));
32990 });
32991
32992 var __assign$fL = (undefined && undefined.__assign) || function () {
32993 __assign$fL = Object.assign || function(t) {
32994 for (var s, i = 1, n = arguments.length; i < n; i++) {
32995 s = arguments[i];
32996 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32997 t[p] = s[p];
32998 }
32999 return t;
33000 };
33001 return __assign$fL.apply(this, arguments);
33002 };
33003 var ViewDayFontIcon = React.forwardRef(function ViewDayFontIcon(props, ref) {
33004 return (React__default.createElement(FontIcon, __assign$fL({}, props, { ref: ref }), "view_day"));
33005 });
33006
33007 var __assign$fM = (undefined && undefined.__assign) || function () {
33008 __assign$fM = Object.assign || function(t) {
33009 for (var s, i = 1, n = arguments.length; i < n; i++) {
33010 s = arguments[i];
33011 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33012 t[p] = s[p];
33013 }
33014 return t;
33015 };
33016 return __assign$fM.apply(this, arguments);
33017 };
33018 var ViewHeadlineFontIcon = React.forwardRef(function ViewHeadlineFontIcon(props, ref) {
33019 return (React__default.createElement(FontIcon, __assign$fM({}, props, { ref: ref }), "view_headline"));
33020 });
33021
33022 var __assign$fN = (undefined && undefined.__assign) || function () {
33023 __assign$fN = Object.assign || function(t) {
33024 for (var s, i = 1, n = arguments.length; i < n; i++) {
33025 s = arguments[i];
33026 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33027 t[p] = s[p];
33028 }
33029 return t;
33030 };
33031 return __assign$fN.apply(this, arguments);
33032 };
33033 var ViewListFontIcon = React.forwardRef(function ViewListFontIcon(props, ref) {
33034 return (React__default.createElement(FontIcon, __assign$fN({}, props, { ref: ref }), "view_list"));
33035 });
33036
33037 var __assign$fO = (undefined && undefined.__assign) || function () {
33038 __assign$fO = Object.assign || function(t) {
33039 for (var s, i = 1, n = arguments.length; i < n; i++) {
33040 s = arguments[i];
33041 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33042 t[p] = s[p];
33043 }
33044 return t;
33045 };
33046 return __assign$fO.apply(this, arguments);
33047 };
33048 var ViewModuleFontIcon = React.forwardRef(function ViewModuleFontIcon(props, ref) {
33049 return (React__default.createElement(FontIcon, __assign$fO({}, props, { ref: ref }), "view_module"));
33050 });
33051
33052 var __assign$fP = (undefined && undefined.__assign) || function () {
33053 __assign$fP = Object.assign || function(t) {
33054 for (var s, i = 1, n = arguments.length; i < n; i++) {
33055 s = arguments[i];
33056 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33057 t[p] = s[p];
33058 }
33059 return t;
33060 };
33061 return __assign$fP.apply(this, arguments);
33062 };
33063 var ViewQuiltFontIcon = React.forwardRef(function ViewQuiltFontIcon(props, ref) {
33064 return (React__default.createElement(FontIcon, __assign$fP({}, props, { ref: ref }), "view_quilt"));
33065 });
33066
33067 var __assign$fQ = (undefined && undefined.__assign) || function () {
33068 __assign$fQ = Object.assign || function(t) {
33069 for (var s, i = 1, n = arguments.length; i < n; i++) {
33070 s = arguments[i];
33071 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33072 t[p] = s[p];
33073 }
33074 return t;
33075 };
33076 return __assign$fQ.apply(this, arguments);
33077 };
33078 var ViewStreamFontIcon = React.forwardRef(function ViewStreamFontIcon(props, ref) {
33079 return (React__default.createElement(FontIcon, __assign$fQ({}, props, { ref: ref }), "view_stream"));
33080 });
33081
33082 var __assign$fR = (undefined && undefined.__assign) || function () {
33083 __assign$fR = Object.assign || function(t) {
33084 for (var s, i = 1, n = arguments.length; i < n; i++) {
33085 s = arguments[i];
33086 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33087 t[p] = s[p];
33088 }
33089 return t;
33090 };
33091 return __assign$fR.apply(this, arguments);
33092 };
33093 var ViewWeekFontIcon = React.forwardRef(function ViewWeekFontIcon(props, ref) {
33094 return (React__default.createElement(FontIcon, __assign$fR({}, props, { ref: ref }), "view_week"));
33095 });
33096
33097 var __assign$fS = (undefined && undefined.__assign) || function () {
33098 __assign$fS = Object.assign || function(t) {
33099 for (var s, i = 1, n = arguments.length; i < n; i++) {
33100 s = arguments[i];
33101 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33102 t[p] = s[p];
33103 }
33104 return t;
33105 };
33106 return __assign$fS.apply(this, arguments);
33107 };
33108 var VignetteFontIcon = React.forwardRef(function VignetteFontIcon(props, ref) {
33109 return (React__default.createElement(FontIcon, __assign$fS({}, props, { ref: ref }), "vignette"));
33110 });
33111
33112 var __assign$fT = (undefined && undefined.__assign) || function () {
33113 __assign$fT = Object.assign || function(t) {
33114 for (var s, i = 1, n = arguments.length; i < n; i++) {
33115 s = arguments[i];
33116 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33117 t[p] = s[p];
33118 }
33119 return t;
33120 };
33121 return __assign$fT.apply(this, arguments);
33122 };
33123 var VisibilityOffFontIcon = React.forwardRef(function VisibilityOffFontIcon(props, ref) {
33124 return (React__default.createElement(FontIcon, __assign$fT({}, props, { ref: ref }), "visibility_off"));
33125 });
33126
33127 var __assign$fU = (undefined && undefined.__assign) || function () {
33128 __assign$fU = Object.assign || function(t) {
33129 for (var s, i = 1, n = arguments.length; i < n; i++) {
33130 s = arguments[i];
33131 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33132 t[p] = s[p];
33133 }
33134 return t;
33135 };
33136 return __assign$fU.apply(this, arguments);
33137 };
33138 var VisibilityFontIcon = React.forwardRef(function VisibilityFontIcon(props, ref) {
33139 return (React__default.createElement(FontIcon, __assign$fU({}, props, { ref: ref }), "visibility"));
33140 });
33141
33142 var __assign$fV = (undefined && undefined.__assign) || function () {
33143 __assign$fV = Object.assign || function(t) {
33144 for (var s, i = 1, n = arguments.length; i < n; i++) {
33145 s = arguments[i];
33146 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33147 t[p] = s[p];
33148 }
33149 return t;
33150 };
33151 return __assign$fV.apply(this, arguments);
33152 };
33153 var VoiceChatFontIcon = React.forwardRef(function VoiceChatFontIcon(props, ref) {
33154 return (React__default.createElement(FontIcon, __assign$fV({}, props, { ref: ref }), "voice_chat"));
33155 });
33156
33157 var __assign$fW = (undefined && undefined.__assign) || function () {
33158 __assign$fW = Object.assign || function(t) {
33159 for (var s, i = 1, n = arguments.length; i < n; i++) {
33160 s = arguments[i];
33161 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33162 t[p] = s[p];
33163 }
33164 return t;
33165 };
33166 return __assign$fW.apply(this, arguments);
33167 };
33168 var VoicemailFontIcon = React.forwardRef(function VoicemailFontIcon(props, ref) {
33169 return (React__default.createElement(FontIcon, __assign$fW({}, props, { ref: ref }), "voicemail"));
33170 });
33171
33172 var __assign$fX = (undefined && undefined.__assign) || function () {
33173 __assign$fX = Object.assign || function(t) {
33174 for (var s, i = 1, n = arguments.length; i < n; i++) {
33175 s = arguments[i];
33176 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33177 t[p] = s[p];
33178 }
33179 return t;
33180 };
33181 return __assign$fX.apply(this, arguments);
33182 };
33183 var VolumeDownFontIcon = React.forwardRef(function VolumeDownFontIcon(props, ref) {
33184 return (React__default.createElement(FontIcon, __assign$fX({}, props, { ref: ref }), "volume_down"));
33185 });
33186
33187 var __assign$fY = (undefined && undefined.__assign) || function () {
33188 __assign$fY = Object.assign || function(t) {
33189 for (var s, i = 1, n = arguments.length; i < n; i++) {
33190 s = arguments[i];
33191 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33192 t[p] = s[p];
33193 }
33194 return t;
33195 };
33196 return __assign$fY.apply(this, arguments);
33197 };
33198 var VolumeMuteFontIcon = React.forwardRef(function VolumeMuteFontIcon(props, ref) {
33199 return (React__default.createElement(FontIcon, __assign$fY({}, props, { ref: ref }), "volume_mute"));
33200 });
33201
33202 var __assign$fZ = (undefined && undefined.__assign) || function () {
33203 __assign$fZ = Object.assign || function(t) {
33204 for (var s, i = 1, n = arguments.length; i < n; i++) {
33205 s = arguments[i];
33206 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33207 t[p] = s[p];
33208 }
33209 return t;
33210 };
33211 return __assign$fZ.apply(this, arguments);
33212 };
33213 var VolumeOffFontIcon = React.forwardRef(function VolumeOffFontIcon(props, ref) {
33214 return (React__default.createElement(FontIcon, __assign$fZ({}, props, { ref: ref }), "volume_off"));
33215 });
33216
33217 var __assign$f_ = (undefined && undefined.__assign) || function () {
33218 __assign$f_ = Object.assign || function(t) {
33219 for (var s, i = 1, n = arguments.length; i < n; i++) {
33220 s = arguments[i];
33221 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33222 t[p] = s[p];
33223 }
33224 return t;
33225 };
33226 return __assign$f_.apply(this, arguments);
33227 };
33228 var VolumeUpFontIcon = React.forwardRef(function VolumeUpFontIcon(props, ref) {
33229 return (React__default.createElement(FontIcon, __assign$f_({}, props, { ref: ref }), "volume_up"));
33230 });
33231
33232 var __assign$f$ = (undefined && undefined.__assign) || function () {
33233 __assign$f$ = Object.assign || function(t) {
33234 for (var s, i = 1, n = arguments.length; i < n; i++) {
33235 s = arguments[i];
33236 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33237 t[p] = s[p];
33238 }
33239 return t;
33240 };
33241 return __assign$f$.apply(this, arguments);
33242 };
33243 var VpnKeyFontIcon = React.forwardRef(function VpnKeyFontIcon(props, ref) {
33244 return (React__default.createElement(FontIcon, __assign$f$({}, props, { ref: ref }), "vpn_key"));
33245 });
33246
33247 var __assign$g0 = (undefined && undefined.__assign) || function () {
33248 __assign$g0 = Object.assign || function(t) {
33249 for (var s, i = 1, n = arguments.length; i < n; i++) {
33250 s = arguments[i];
33251 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33252 t[p] = s[p];
33253 }
33254 return t;
33255 };
33256 return __assign$g0.apply(this, arguments);
33257 };
33258 var VpnLockFontIcon = React.forwardRef(function VpnLockFontIcon(props, ref) {
33259 return (React__default.createElement(FontIcon, __assign$g0({}, props, { ref: ref }), "vpn_lock"));
33260 });
33261
33262 var __assign$g1 = (undefined && undefined.__assign) || function () {
33263 __assign$g1 = Object.assign || function(t) {
33264 for (var s, i = 1, n = arguments.length; i < n; i++) {
33265 s = arguments[i];
33266 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33267 t[p] = s[p];
33268 }
33269 return t;
33270 };
33271 return __assign$g1.apply(this, arguments);
33272 };
33273 var WallpaperFontIcon = React.forwardRef(function WallpaperFontIcon(props, ref) {
33274 return (React__default.createElement(FontIcon, __assign$g1({}, props, { ref: ref }), "wallpaper"));
33275 });
33276
33277 var __assign$g2 = (undefined && undefined.__assign) || function () {
33278 __assign$g2 = Object.assign || function(t) {
33279 for (var s, i = 1, n = arguments.length; i < n; i++) {
33280 s = arguments[i];
33281 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33282 t[p] = s[p];
33283 }
33284 return t;
33285 };
33286 return __assign$g2.apply(this, arguments);
33287 };
33288 var WarningFontIcon = React.forwardRef(function WarningFontIcon(props, ref) {
33289 return (React__default.createElement(FontIcon, __assign$g2({}, props, { ref: ref }), "warning"));
33290 });
33291
33292 var __assign$g3 = (undefined && undefined.__assign) || function () {
33293 __assign$g3 = Object.assign || function(t) {
33294 for (var s, i = 1, n = arguments.length; i < n; i++) {
33295 s = arguments[i];
33296 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33297 t[p] = s[p];
33298 }
33299 return t;
33300 };
33301 return __assign$g3.apply(this, arguments);
33302 };
33303 var WatchLaterFontIcon = React.forwardRef(function WatchLaterFontIcon(props, ref) {
33304 return (React__default.createElement(FontIcon, __assign$g3({}, props, { ref: ref }), "watch_later"));
33305 });
33306
33307 var __assign$g4 = (undefined && undefined.__assign) || function () {
33308 __assign$g4 = Object.assign || function(t) {
33309 for (var s, i = 1, n = arguments.length; i < n; i++) {
33310 s = arguments[i];
33311 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33312 t[p] = s[p];
33313 }
33314 return t;
33315 };
33316 return __assign$g4.apply(this, arguments);
33317 };
33318 var WatchFontIcon = React.forwardRef(function WatchFontIcon(props, ref) {
33319 return (React__default.createElement(FontIcon, __assign$g4({}, props, { ref: ref }), "watch"));
33320 });
33321
33322 var __assign$g5 = (undefined && undefined.__assign) || function () {
33323 __assign$g5 = Object.assign || function(t) {
33324 for (var s, i = 1, n = arguments.length; i < n; i++) {
33325 s = arguments[i];
33326 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33327 t[p] = s[p];
33328 }
33329 return t;
33330 };
33331 return __assign$g5.apply(this, arguments);
33332 };
33333 var WbAutoFontIcon = React.forwardRef(function WbAutoFontIcon(props, ref) {
33334 return (React__default.createElement(FontIcon, __assign$g5({}, props, { ref: ref }), "wb_auto"));
33335 });
33336
33337 var __assign$g6 = (undefined && undefined.__assign) || function () {
33338 __assign$g6 = Object.assign || function(t) {
33339 for (var s, i = 1, n = arguments.length; i < n; i++) {
33340 s = arguments[i];
33341 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33342 t[p] = s[p];
33343 }
33344 return t;
33345 };
33346 return __assign$g6.apply(this, arguments);
33347 };
33348 var WbCloudyFontIcon = React.forwardRef(function WbCloudyFontIcon(props, ref) {
33349 return (React__default.createElement(FontIcon, __assign$g6({}, props, { ref: ref }), "wb_cloudy"));
33350 });
33351
33352 var __assign$g7 = (undefined && undefined.__assign) || function () {
33353 __assign$g7 = Object.assign || function(t) {
33354 for (var s, i = 1, n = arguments.length; i < n; i++) {
33355 s = arguments[i];
33356 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33357 t[p] = s[p];
33358 }
33359 return t;
33360 };
33361 return __assign$g7.apply(this, arguments);
33362 };
33363 var WbIncandescentFontIcon = React.forwardRef(function WbIncandescentFontIcon(props, ref) {
33364 return (React__default.createElement(FontIcon, __assign$g7({}, props, { ref: ref }), "wb_incandescent"));
33365 });
33366
33367 var __assign$g8 = (undefined && undefined.__assign) || function () {
33368 __assign$g8 = Object.assign || function(t) {
33369 for (var s, i = 1, n = arguments.length; i < n; i++) {
33370 s = arguments[i];
33371 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33372 t[p] = s[p];
33373 }
33374 return t;
33375 };
33376 return __assign$g8.apply(this, arguments);
33377 };
33378 var WbIridescentFontIcon = React.forwardRef(function WbIridescentFontIcon(props, ref) {
33379 return (React__default.createElement(FontIcon, __assign$g8({}, props, { ref: ref }), "wb_iridescent"));
33380 });
33381
33382 var __assign$g9 = (undefined && undefined.__assign) || function () {
33383 __assign$g9 = Object.assign || function(t) {
33384 for (var s, i = 1, n = arguments.length; i < n; i++) {
33385 s = arguments[i];
33386 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33387 t[p] = s[p];
33388 }
33389 return t;
33390 };
33391 return __assign$g9.apply(this, arguments);
33392 };
33393 var WbSunnyFontIcon = React.forwardRef(function WbSunnyFontIcon(props, ref) {
33394 return (React__default.createElement(FontIcon, __assign$g9({}, props, { ref: ref }), "wb_sunny"));
33395 });
33396
33397 var __assign$ga = (undefined && undefined.__assign) || function () {
33398 __assign$ga = Object.assign || function(t) {
33399 for (var s, i = 1, n = arguments.length; i < n; i++) {
33400 s = arguments[i];
33401 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33402 t[p] = s[p];
33403 }
33404 return t;
33405 };
33406 return __assign$ga.apply(this, arguments);
33407 };
33408 var WcFontIcon = React.forwardRef(function WcFontIcon(props, ref) {
33409 return (React__default.createElement(FontIcon, __assign$ga({}, props, { ref: ref }), "wc"));
33410 });
33411
33412 var __assign$gb = (undefined && undefined.__assign) || function () {
33413 __assign$gb = Object.assign || function(t) {
33414 for (var s, i = 1, n = arguments.length; i < n; i++) {
33415 s = arguments[i];
33416 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33417 t[p] = s[p];
33418 }
33419 return t;
33420 };
33421 return __assign$gb.apply(this, arguments);
33422 };
33423 var WebAssetFontIcon = React.forwardRef(function WebAssetFontIcon(props, ref) {
33424 return (React__default.createElement(FontIcon, __assign$gb({}, props, { ref: ref }), "web_asset"));
33425 });
33426
33427 var __assign$gc = (undefined && undefined.__assign) || function () {
33428 __assign$gc = Object.assign || function(t) {
33429 for (var s, i = 1, n = arguments.length; i < n; i++) {
33430 s = arguments[i];
33431 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33432 t[p] = s[p];
33433 }
33434 return t;
33435 };
33436 return __assign$gc.apply(this, arguments);
33437 };
33438 var WebFontIcon = React.forwardRef(function WebFontIcon(props, ref) {
33439 return (React__default.createElement(FontIcon, __assign$gc({}, props, { ref: ref }), "web"));
33440 });
33441
33442 var __assign$gd = (undefined && undefined.__assign) || function () {
33443 __assign$gd = Object.assign || function(t) {
33444 for (var s, i = 1, n = arguments.length; i < n; i++) {
33445 s = arguments[i];
33446 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33447 t[p] = s[p];
33448 }
33449 return t;
33450 };
33451 return __assign$gd.apply(this, arguments);
33452 };
33453 var WeekendFontIcon = React.forwardRef(function WeekendFontIcon(props, ref) {
33454 return (React__default.createElement(FontIcon, __assign$gd({}, props, { ref: ref }), "weekend"));
33455 });
33456
33457 var __assign$ge = (undefined && undefined.__assign) || function () {
33458 __assign$ge = Object.assign || function(t) {
33459 for (var s, i = 1, n = arguments.length; i < n; i++) {
33460 s = arguments[i];
33461 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33462 t[p] = s[p];
33463 }
33464 return t;
33465 };
33466 return __assign$ge.apply(this, arguments);
33467 };
33468 var WhatshotFontIcon = React.forwardRef(function WhatshotFontIcon(props, ref) {
33469 return (React__default.createElement(FontIcon, __assign$ge({}, props, { ref: ref }), "whatshot"));
33470 });
33471
33472 var __assign$gf = (undefined && undefined.__assign) || function () {
33473 __assign$gf = Object.assign || function(t) {
33474 for (var s, i = 1, n = arguments.length; i < n; i++) {
33475 s = arguments[i];
33476 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33477 t[p] = s[p];
33478 }
33479 return t;
33480 };
33481 return __assign$gf.apply(this, arguments);
33482 };
33483 var WidgetsFontIcon = React.forwardRef(function WidgetsFontIcon(props, ref) {
33484 return (React__default.createElement(FontIcon, __assign$gf({}, props, { ref: ref }), "widgets"));
33485 });
33486
33487 var __assign$gg = (undefined && undefined.__assign) || function () {
33488 __assign$gg = Object.assign || function(t) {
33489 for (var s, i = 1, n = arguments.length; i < n; i++) {
33490 s = arguments[i];
33491 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33492 t[p] = s[p];
33493 }
33494 return t;
33495 };
33496 return __assign$gg.apply(this, arguments);
33497 };
33498 var WifiLockFontIcon = React.forwardRef(function WifiLockFontIcon(props, ref) {
33499 return (React__default.createElement(FontIcon, __assign$gg({}, props, { ref: ref }), "wifi_lock"));
33500 });
33501
33502 var __assign$gh = (undefined && undefined.__assign) || function () {
33503 __assign$gh = Object.assign || function(t) {
33504 for (var s, i = 1, n = arguments.length; i < n; i++) {
33505 s = arguments[i];
33506 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33507 t[p] = s[p];
33508 }
33509 return t;
33510 };
33511 return __assign$gh.apply(this, arguments);
33512 };
33513 var WifiTetheringFontIcon = React.forwardRef(function WifiTetheringFontIcon(props, ref) {
33514 return (React__default.createElement(FontIcon, __assign$gh({}, props, { ref: ref }), "wifi_tethering"));
33515 });
33516
33517 var __assign$gi = (undefined && undefined.__assign) || function () {
33518 __assign$gi = Object.assign || function(t) {
33519 for (var s, i = 1, n = arguments.length; i < n; i++) {
33520 s = arguments[i];
33521 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33522 t[p] = s[p];
33523 }
33524 return t;
33525 };
33526 return __assign$gi.apply(this, arguments);
33527 };
33528 var WifiFontIcon = React.forwardRef(function WifiFontIcon(props, ref) {
33529 return (React__default.createElement(FontIcon, __assign$gi({}, props, { ref: ref }), "wifi"));
33530 });
33531
33532 var __assign$gj = (undefined && undefined.__assign) || function () {
33533 __assign$gj = Object.assign || function(t) {
33534 for (var s, i = 1, n = arguments.length; i < n; i++) {
33535 s = arguments[i];
33536 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33537 t[p] = s[p];
33538 }
33539 return t;
33540 };
33541 return __assign$gj.apply(this, arguments);
33542 };
33543 var WorkFontIcon = React.forwardRef(function WorkFontIcon(props, ref) {
33544 return (React__default.createElement(FontIcon, __assign$gj({}, props, { ref: ref }), "work"));
33545 });
33546
33547 var __assign$gk = (undefined && undefined.__assign) || function () {
33548 __assign$gk = Object.assign || function(t) {
33549 for (var s, i = 1, n = arguments.length; i < n; i++) {
33550 s = arguments[i];
33551 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33552 t[p] = s[p];
33553 }
33554 return t;
33555 };
33556 return __assign$gk.apply(this, arguments);
33557 };
33558 var WrapTextFontIcon = React.forwardRef(function WrapTextFontIcon(props, ref) {
33559 return (React__default.createElement(FontIcon, __assign$gk({}, props, { ref: ref }), "wrap_text"));
33560 });
33561
33562 var __assign$gl = (undefined && undefined.__assign) || function () {
33563 __assign$gl = Object.assign || function(t) {
33564 for (var s, i = 1, n = arguments.length; i < n; i++) {
33565 s = arguments[i];
33566 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33567 t[p] = s[p];
33568 }
33569 return t;
33570 };
33571 return __assign$gl.apply(this, arguments);
33572 };
33573 var YoutubeSearchedForFontIcon = React.forwardRef(function YoutubeSearchedForFontIcon(props, ref) {
33574 return (React__default.createElement(FontIcon, __assign$gl({}, props, { ref: ref }), "youtube_searched_for"));
33575 });
33576
33577 var __assign$gm = (undefined && undefined.__assign) || function () {
33578 __assign$gm = Object.assign || function(t) {
33579 for (var s, i = 1, n = arguments.length; i < n; i++) {
33580 s = arguments[i];
33581 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33582 t[p] = s[p];
33583 }
33584 return t;
33585 };
33586 return __assign$gm.apply(this, arguments);
33587 };
33588 var ZoomInFontIcon = React.forwardRef(function ZoomInFontIcon(props, ref) {
33589 return (React__default.createElement(FontIcon, __assign$gm({}, props, { ref: ref }), "zoom_in"));
33590 });
33591
33592 var __assign$gn = (undefined && undefined.__assign) || function () {
33593 __assign$gn = Object.assign || function(t) {
33594 for (var s, i = 1, n = arguments.length; i < n; i++) {
33595 s = arguments[i];
33596 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33597 t[p] = s[p];
33598 }
33599 return t;
33600 };
33601 return __assign$gn.apply(this, arguments);
33602 };
33603 var ZoomOutMapFontIcon = React.forwardRef(function ZoomOutMapFontIcon(props, ref) {
33604 return (React__default.createElement(FontIcon, __assign$gn({}, props, { ref: ref }), "zoom_out_map"));
33605 });
33606
33607 var __assign$go = (undefined && undefined.__assign) || function () {
33608 __assign$go = Object.assign || function(t) {
33609 for (var s, i = 1, n = arguments.length; i < n; i++) {
33610 s = arguments[i];
33611 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33612 t[p] = s[p];
33613 }
33614 return t;
33615 };
33616 return __assign$go.apply(this, arguments);
33617 };
33618 var ZoomOutFontIcon = React.forwardRef(function ZoomOutFontIcon(props, ref) {
33619 return (React__default.createElement(FontIcon, __assign$go({}, props, { ref: ref }), "zoom_out"));
33620 });
33621
33622 var __assign$gp = (undefined && undefined.__assign) || function () {
33623 __assign$gp = Object.assign || function(t) {
33624 for (var s, i = 1, n = arguments.length; i < n; i++) {
33625 s = arguments[i];
33626 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33627 t[p] = s[p];
33628 }
33629 return t;
33630 };
33631 return __assign$gp.apply(this, arguments);
33632 };
33633 var __rest$1z = (undefined && undefined.__rest) || function (s, e) {
33634 var t = {};
33635 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
33636 t[p] = s[p];
33637 if (s != null && typeof Object.getOwnPropertySymbols === "function")
33638 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33639 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
33640 t[p[i]] = s[p[i]];
33641 }
33642 return t;
33643 };
33644 var block$13 = bem("rmd-media-container");
33645 /**
33646 * The `MediaContainer` component is used to make responsive images and videos
33647 * within your app. This component also allows for focing a specific aspect
33648 * ratio for these elements with both the `height` and `width` props are
33649 * provided.
33650 */
33651 var MediaContainer = React.forwardRef(function MediaContainer(_a, ref) {
33652 var className = _a.className, height = _a.height, width = _a.width, children = _a.children, _b = _a.auto, auto = _b === void 0 ? true : _b, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, props = __rest$1z(_a, ["className", "height", "width", "children", "auto", "fullWidth"]);
33653 var aspectRatio = height && width ? "rmd-media-container--" + width + "-" + height : "";
33654 return (React__default.createElement("div", __assign$gp({}, props, { ref: ref, className: classnames(block$13({
33655 auto: auto,
33656 "aspect-ratio": aspectRatio,
33657 "full-width": fullWidth,
33658 }), aspectRatio, className) }), children));
33659 });
33660 {
33661 try {
33662 var PropTypes$1F = require("prop-types");
33663 MediaContainer.propTypes = {
33664 auto: PropTypes$1F.bool,
33665 height: PropTypes$1F.number,
33666 width: PropTypes$1F.number,
33667 fullWidth: PropTypes$1F.bool,
33668 className: PropTypes$1F.string,
33669 children: PropTypes$1F.node,
33670 };
33671 }
33672 catch (e) { }
33673 }
33674
33675 var __assign$gq = (undefined && undefined.__assign) || function () {
33676 __assign$gq = Object.assign || function(t) {
33677 for (var s, i = 1, n = arguments.length; i < n; i++) {
33678 s = arguments[i];
33679 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33680 t[p] = s[p];
33681 }
33682 return t;
33683 };
33684 return __assign$gq.apply(this, arguments);
33685 };
33686 var __rest$1A = (undefined && undefined.__rest) || function (s, e) {
33687 var t = {};
33688 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
33689 t[p] = s[p];
33690 if (s != null && typeof Object.getOwnPropertySymbols === "function")
33691 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33692 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
33693 t[p[i]] = s[p[i]];
33694 }
33695 return t;
33696 };
33697 /**
33698 * The `MediaOverlay` component is used to create an overlay over specific media
33699 * items within the `MediaContainer` component. You will need to apply most of
33700 * your own styles as this is really just used for positioning.
33701 */
33702 var MediaOverlay = React.forwardRef(function MediaOverlay(_a, ref) {
33703 var className = _a.className, children = _a.children, _b = _a.position, position = _b === void 0 ? "bottom" : _b, props = __rest$1A(_a, ["className", "children", "position"]);
33704 return (React__default.createElement("div", __assign$gq({}, props, { ref: ref, className: classnames("rmd-media-overlay rmd-media-overlay--" + position, className) }), children));
33705 });
33706 {
33707 try {
33708 var PropTypes$1G = require("prop-types");
33709 MediaOverlay.propTypes = {
33710 className: PropTypes$1G.string,
33711 children: PropTypes$1G.node,
33712 position: PropTypes$1G.oneOf([
33713 "top",
33714 "right",
33715 "bottom",
33716 "left",
33717 "center",
33718 "middle",
33719 "absolute-center",
33720 ]),
33721 };
33722 }
33723 catch (e) { }
33724 }
33725
33726 /* eslint-disable react/prop-types */
33727 var block$14 = bem("rmd-menu-icon");
33728 function ToggleChildren(_a) {
33729 var dropdownIcon = _a.dropdownIcon, disableDropdownIcon = _a.disableDropdownIcon, children = _a.children, visible = _a.visible;
33730 if (disableDropdownIcon || !dropdownIcon) {
33731 return React__default.createElement(React__default.Fragment, null, children);
33732 }
33733 return (React__default.createElement(TextIconSpacing, { icon: React__default.createElement(IconRotator, { rotated: visible, className: block$14() }, dropdownIcon), iconAfter: true }, children));
33734 }
33735
33736 var __assign$gr = (undefined && undefined.__assign) || function () {
33737 __assign$gr = Object.assign || function(t) {
33738 for (var s, i = 1, n = arguments.length; i < n; i++) {
33739 s = arguments[i];
33740 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33741 t[p] = s[p];
33742 }
33743 return t;
33744 };
33745 return __assign$gr.apply(this, arguments);
33746 };
33747 var __rest$1B = (undefined && undefined.__rest) || function (s, e) {
33748 var t = {};
33749 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
33750 t[p] = s[p];
33751 if (s != null && typeof Object.getOwnPropertySymbols === "function")
33752 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33753 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
33754 t[p[i]] = s[p[i]];
33755 }
33756 return t;
33757 };
33758 var block$15 = bem("rmd-menu-button");
33759 /**
33760 * This component is an extension of the `Button` component that will:
33761 * - apply the required a11y prosp for a menu button
33762 * - dynamically add a dropdown icon after the button contents
33763 */
33764 var MenuButton = React.forwardRef(function MenuButton(_a, ref) {
33765 var _b;
33766 var _c = _a["aria-haspopup"], ariaHasPopup = _c === void 0 ? "menu" : _c, className = _a.className, visible = _a.visible, children = _a.children, propDropdownIcon = _a.dropdownIcon, _d = _a.disableDropdownIcon, disableDropdownIcon = _d === void 0 ? false : _d, _e = _a.first, first = _e === void 0 ? false : _e, _f = _a.last, last = _f === void 0 ? false : _f, inheritColor = _a.inheritColor, _g = _a.asAppBarAction, asAppBarAction = _g === void 0 ? false : _g, props = __rest$1B(_a, ["aria-haspopup", "className", "visible", "children", "dropdownIcon", "disableDropdownIcon", "first", "last", "inheritColor", "asAppBarAction"]);
33767 var buttonType = props.buttonType;
33768 var dropdownIcon = useIcon("dropdown", propDropdownIcon);
33769 var actionClassName = useActionClassName({ first: first, last: last, inheritColor: inheritColor });
33770 return (React__default.createElement(Button, __assign$gr({}, props, { ref: ref, "aria-haspopup": ariaHasPopup, "aria-expanded": visible ? "true" : undefined, className: classnames(block$15(), (_b = {},
33771 _b[actionClassName] = first || last || inheritColor || asAppBarAction,
33772 _b), className) }),
33773 React__default.createElement(ToggleChildren, { visible: visible, dropdownIcon: dropdownIcon, disableDropdownIcon: disableDropdownIcon || buttonType === "icon" }, children)));
33774 });
33775 {
33776 try {
33777 var PropTypes$1H = require("prop-types");
33778 MenuButton.propTypes = {
33779 "aria-haspopup": PropTypes$1H.oneOf(["menu", "true", true]),
33780 id: PropTypes$1H.string.isRequired,
33781 visible: PropTypes$1H.bool.isRequired,
33782 dropdownIcon: PropTypes$1H.node,
33783 disableDropdownIcon: PropTypes$1H.bool,
33784 className: PropTypes$1H.string,
33785 children: PropTypes$1H.node,
33786 buttonType: PropTypes$1H.oneOf(["text", "icon"]),
33787 first: PropTypes$1H.bool,
33788 last: PropTypes$1H.bool,
33789 inheritColor: PropTypes$1H.bool,
33790 asAppBarAction: PropTypes$1H.bool,
33791 };
33792 }
33793 catch (e) { }
33794 }
33795
33796 /**
33797 * This is just a simple component that is used with the `Menu` component to
33798 * handle the initial focus on mount and re-focusing a previous element on
33799 * unmount.
33800 * @private
33801 */
33802 function MenuEvents(_a) {
33803 var menuRef = _a.menuRef, cancelled = _a.cancelled, defaultFocus = _a.defaultFocus;
33804 usePreviousFocus(cancelled);
33805 useFocusOnMount(menuRef, defaultFocus, false, true);
33806 return null;
33807 }
33808
33809 /* eslint-disable react/prop-types */
33810 var Orientation = React.createContext("vertical");
33811 function useOrientation$1() {
33812 return React.useContext(Orientation);
33813 }
33814 var OrientationProvider = function (_a) {
33815 var orientation = _a.orientation, children = _a.children;
33816 return (React__default.createElement(Orientation.Provider, { value: orientation }, children));
33817 };
33818
33819 /**
33820 * This hook is used to create a click handler on the menu that will close the
33821 * menu when any `MenuItem` is clicked.
33822 */
33823 function useMenuClick(_a) {
33824 var onClick = _a.onClick, onRequestClose = _a.onRequestClose;
33825 var cache = useRefCache({ onClick: onClick, onRequestClose: onRequestClose });
33826 return React.useCallback(function (event) {
33827 var _a = cache.current, onClick = _a.onClick, onRequestClose = _a.onRequestClose;
33828 if (onClick) {
33829 onClick(event);
33830 }
33831 var target = event.target;
33832 if (!target ||
33833 (event.currentTarget !== target && !target.closest("[aria-haspopup]"))) {
33834 onRequestClose();
33835 }
33836 // disabled since useRefCache
33837 // eslint-disable-next-line react-hooks/exhaustive-deps
33838 }, []);
33839 }
33840
33841 var __assign$gs = (undefined && undefined.__assign) || function () {
33842 __assign$gs = Object.assign || function(t) {
33843 for (var s, i = 1, n = arguments.length; i < n; i++) {
33844 s = arguments[i];
33845 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33846 t[p] = s[p];
33847 }
33848 return t;
33849 };
33850 return __assign$gs.apply(this, arguments);
33851 };
33852 /**
33853 * This hook allows for the keyboard movement within a menu. It'll make sure
33854 * that the arrow keys and typing letters can correctly focus menu items. In
33855 * addition, it'll automatically swap to the left and right arrow keys if the
33856 * menu is displayed horizontally.
33857 */
33858 function useMenuKeyDown(_a) {
33859 var menu = _a.menu, onKeyDown = _a.onKeyDown, onRequestClose = _a.onRequestClose, portalled = _a.portalled, horizontal = _a.horizontal, defaultFocus = _a.defaultFocus;
33860 var _b = React.useState(0), focusedIndex = _b[0], setFocusedIndex = _b[1];
33861 var items = React.useMemo(function () {
33862 if (!menu) {
33863 return [];
33864 }
33865 return getFocusableElements(menu, true);
33866 }, [menu]);
33867 React.useEffect(function () {
33868 if (!menu) {
33869 return;
33870 }
33871 if (defaultFocus === "last") {
33872 setFocusedIndex(items.length - 1);
33873 }
33874 else {
33875 setFocusedIndex(0);
33876 }
33877 // only want to trigger this on initial menu mount
33878 // eslint-disable-next-line react-hooks/exhaustive-deps
33879 }, [menu]);
33880 return useKeyboardMovement(__assign$gs(__assign$gs({}, (horizontal
33881 ? HORIZONTAL_MENU
33882 : VERTICAL_MENU)), { focusedIndex: focusedIndex,
33883 onChange: function (_a) {
33884 var index = _a.index;
33885 setFocusedIndex(index);
33886 if (items[index]) {
33887 items[index].focus();
33888 }
33889 }, items: items.map(function (item) { return extractTextContent(item); }), onKeyDown: function (event) {
33890 if (onKeyDown) {
33891 onKeyDown(event);
33892 }
33893 if (event.key === "Escape") {
33894 event.stopPropagation();
33895 onRequestClose();
33896 }
33897 else if (event.key === "Tab") {
33898 if (portalled) {
33899 // have to prevent default tab behavior since tab order is ruined when
33900 // something is portalled. this will make it interact the same as if
33901 // it was an escape keypress. it's too much work to try to emulate a
33902 // real tab here
33903 event.preventDefault();
33904 }
33905 onRequestClose();
33906 }
33907 } }))[1];
33908 }
33909
33910 /**
33911 * This hook is used to provide all the menu functionality within the `Menu`
33912 * component. It'll ensure that:
33913 *
33914 * - the menu will be closed if an element outside of the menu is clicked
33915 * - the menu items within the menu are keyboard focusable after typing or using
33916 * the arrow keys
33917 * - the menu will close if the Escape key or Tab key is pressed (tab since
33918 * it'll lose focus)
33919 * - conditionally close the menu if the page is scrolled while visible.
33920 */
33921 function useMenu(_a) {
33922 var ref = _a.ref, visible = _a.visible, controlId = _a.controlId, _b = _a.horizontal, horizontal = _b === void 0 ? false : _b, propOnClick = _a.onClick, propOnKeyDown = _a.onKeyDown, _c = _a.portalled, portalled = _c === void 0 ? false : _c, defaultFocus = _a.defaultFocus, onRequestClose = _a.onRequestClose, _d = _a.disableControlClickOkay, disableControlClickOkay = _d === void 0 ? false : _d;
33923 var menu = React.useRef(null);
33924 var refHandler = React.useCallback(function (instance) {
33925 applyRef(instance, ref);
33926 menu.current = instance;
33927 }, [ref]);
33928 useCloseOnOutsideClick({
33929 element: menu,
33930 enabled: visible,
33931 onOutsideClick: function (element, target, contains) {
33932 if (!element || !target) {
33933 return;
33934 }
33935 var control = document.getElementById(controlId);
33936 // Need to also check if we have an `aria-expanded` visible anywhere since
33937 // the child menus need to be portalled out to fix the overflow issue in
33938 // Safari. If we didn't need to portal, this line could be removed as the
33939 // `menu.current` would contain the child menu and not close.
33940 var expanded = menu.current &&
33941 menu.current.querySelector('[aria-expanded="true"]') &&
33942 target.closest('[role="menu"]');
33943 if ((disableControlClickOkay || !contains(control, target)) &&
33944 !expanded) {
33945 onRequestClose();
33946 }
33947 },
33948 });
33949 var onClick = useMenuClick({ onClick: propOnClick, onRequestClose: onRequestClose });
33950 var onKeyDown = useMenuKeyDown({
33951 menu: menu.current,
33952 onKeyDown: propOnKeyDown,
33953 onRequestClose: onRequestClose,
33954 portalled: portalled,
33955 horizontal: horizontal,
33956 defaultFocus: defaultFocus,
33957 });
33958 return {
33959 ref: refHandler,
33960 menuRef: menu,
33961 onClick: onClick,
33962 onKeyDown: onKeyDown,
33963 };
33964 }
33965
33966 var __assign$gt = (undefined && undefined.__assign) || function () {
33967 __assign$gt = Object.assign || function(t) {
33968 for (var s, i = 1, n = arguments.length; i < n; i++) {
33969 s = arguments[i];
33970 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33971 t[p] = s[p];
33972 }
33973 return t;
33974 };
33975 return __assign$gt.apply(this, arguments);
33976 };
33977 var __rest$1C = (undefined && undefined.__rest) || function (s, e) {
33978 var t = {};
33979 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
33980 t[p] = s[p];
33981 if (s != null && typeof Object.getOwnPropertySymbols === "function")
33982 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33983 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
33984 t[p[i]] = s[p[i]];
33985 }
33986 return t;
33987 };
33988 var block$16 = bem("rmd-menu");
33989 /**
33990 * The `Menu` component is a fully controlled component that will animate in and
33991 * out based on the `visible` prop as well as handle keyboard focus, closing
33992 * when needed, etc.
33993 */
33994 var Menu = React.forwardRef(function Menu(_a, forwardedRef) {
33995 var _b = _a.role, role = _b === void 0 ? "menu" : _b, _c = _a.tabIndex, tabIndex = _c === void 0 ? -1 : _c, controlId = _a.controlId, className = _a.className, visible = _a.visible, onRequestClose = _a.onRequestClose, children = _a.children, portal = _a.portal, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, _d = _a.mountOnEnter, mountOnEnter = _d === void 0 ? true : _d, _e = _a.unmountOnExit, unmountOnExit = _e === void 0 ? true : _e, propOnEnter = _a.onEnter, propOnEntering = _a.onEntering, propOnEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, propOnExited = _a.onExited, timeout = _a.timeout, classNames = _a.classNames, propAnchor = _a.anchor, propOnClick = _a.onClick, propOnKeyDown = _a.onKeyDown, _f = _a.defaultFocus, defaultFocus = _f === void 0 ? "first" : _f, _g = _a.horizontal, horizontal = _g === void 0 ? false : _g, positionOptions = _a.positionOptions, _h = _a.closeOnScroll, closeOnScroll = _h === void 0 ? false : _h, _j = _a.closeOnResize, closeOnResize = _j === void 0 ? false : _j, _k = _a.disableControlClickOkay, disableControlClickOkay = _k === void 0 ? false : _k, props = __rest$1C(_a, ["role", "tabIndex", "controlId", "className", "visible", "onRequestClose", "children", "portal", "portalInto", "portalIntoId", "mountOnEnter", "unmountOnExit", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "timeout", "classNames", "anchor", "onClick", "onKeyDown", "defaultFocus", "horizontal", "positionOptions", "closeOnScroll", "closeOnResize", "disableControlClickOkay"]);
33996 var anchor = propAnchor;
33997 if (!anchor) {
33998 anchor = horizontal ? CENTER_CENTER_ANCHOR : TOP_INNER_RIGHT_ANCHOR;
33999 }
34000 // TODO: Refactor all the menu functionality since I made this when I had no
34001 // idea what I was doing with hooks
34002 var _l = useMenu({
34003 ref: forwardedRef,
34004 visible: visible,
34005 controlId: controlId,
34006 horizontal: horizontal,
34007 onClick: propOnClick,
34008 onKeyDown: propOnKeyDown,
34009 portalled: portal || typeof portalInto !== "undefined" || !!portalIntoId,
34010 defaultFocus: defaultFocus,
34011 onRequestClose: onRequestClose,
34012 disableControlClickOkay: disableControlClickOkay,
34013 }), ref = _l.ref, menuRef = _l.menuRef, onClick = _l.onClick, onKeyDown = _l.onKeyDown;
34014 var _m = React.useState(false), cancelled = _m[0], setCancelled = _m[1];
34015 var prevVisible = React.useRef(visible);
34016 if (prevVisible.current !== visible) {
34017 prevVisible.current = visible;
34018 if (cancelled) {
34019 setCancelled(false);
34020 }
34021 }
34022 var _o = useFixedPositioning(__assign$gt(__assign$gt({}, positionOptions), { fixedTo: function () { return document.getElementById(controlId); }, onScroll: function (_event, _a) {
34023 var visible = _a.visible;
34024 if (!closeOnScroll && visible) {
34025 return;
34026 }
34027 if (!visible) {
34028 setCancelled(true);
34029 }
34030 onRequestClose();
34031 }, onResize: closeOnResize ? onRequestClose : undefined, anchor: anchor, onEnter: propOnEnter, onEntering: propOnEntering, onEntered: propOnEntered, onExited: propOnExited, transformOrigin: true })), style = _o.style, onEnter = _o.onEnter, onEntering = _o.onEntering, onEntered = _o.onEntered, onExited = _o.onExited;
34032 var orientation = horizontal ? "horizontal" : "vertical";
34033 return (React__default.createElement(ScaleTransition, { portal: portal, portalInto: portalInto, portalIntoId: portalIntoId, appear: mountOnEnter, visible: visible, classNames: classNames, timeout: timeout, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit },
34034 React__default.createElement(OrientationProvider, { orientation: orientation },
34035 React__default.createElement("div", __assign$gt({}, props, { "aria-orientation": orientation, ref: ref, role: role, tabIndex: tabIndex, style: style, className: classnames(block$16({ horizontal: horizontal }), className), onClick: onClick, onKeyDown: onKeyDown }),
34036 children,
34037 React__default.createElement(MenuEvents, { menuRef: menuRef, cancelled: cancelled, defaultFocus: defaultFocus })))));
34038 });
34039 {
34040 try {
34041 var PropTypes$1I = require("prop-types");
34042 Menu.propTypes = {
34043 id: PropTypes$1I.string.isRequired,
34044 role: PropTypes$1I.string,
34045 className: PropTypes$1I.string,
34046 controlId: PropTypes$1I.string.isRequired,
34047 visible: PropTypes$1I.bool.isRequired,
34048 onRequestClose: PropTypes$1I.func.isRequired,
34049 "aria-label": PropTypes$1I.string,
34050 "aria-labelledby": PropTypes$1I.string,
34051 tabIndex: PropTypes$1I.number,
34052 anchor: PropTypes$1I.shape({
34053 x: PropTypes$1I.oneOf([
34054 "inner-left",
34055 "inner-right",
34056 "center",
34057 "left",
34058 "right",
34059 ]),
34060 y: PropTypes$1I.oneOf(["above", "below", "center", "top", "bottom"]),
34061 }),
34062 positionOptions: PropTypes$1I.shape({
34063 xMargin: PropTypes$1I.number,
34064 yMargin: PropTypes$1I.number,
34065 vwMargin: PropTypes$1I.number,
34066 vhMargin: PropTypes$1I.number,
34067 disableSwapping: PropTypes$1I.bool,
34068 }),
34069 mountOnEnter: PropTypes$1I.bool,
34070 unmountOnExit: PropTypes$1I.bool,
34071 defaultFocus: PropTypes$1I.oneOf(["first", "last"]),
34072 classNames: PropTypes$1I.oneOfType([
34073 PropTypes$1I.string,
34074 PropTypes$1I.shape({
34075 appear: PropTypes$1I.string,
34076 appearActive: PropTypes$1I.string,
34077 enter: PropTypes$1I.string,
34078 enterActive: PropTypes$1I.string,
34079 exit: PropTypes$1I.string,
34080 exitActive: PropTypes$1I.string,
34081 }),
34082 ]),
34083 timeout: PropTypes$1I.oneOfType([
34084 PropTypes$1I.number,
34085 PropTypes$1I.shape({
34086 enter: PropTypes$1I.number,
34087 exit: PropTypes$1I.number,
34088 }),
34089 ]),
34090 onClick: PropTypes$1I.func,
34091 onKeyDown: PropTypes$1I.func,
34092 children: PropTypes$1I.node,
34093 horizontal: PropTypes$1I.bool,
34094 onEnter: PropTypes$1I.func,
34095 onEntering: PropTypes$1I.func,
34096 onEntered: PropTypes$1I.func,
34097 onExit: PropTypes$1I.func,
34098 onExiting: PropTypes$1I.func,
34099 onExited: PropTypes$1I.func,
34100 portal: PropTypes$1I.bool,
34101 portalInto: PropTypes$1I.oneOfType([
34102 PropTypes$1I.string,
34103 PropTypes$1I.func,
34104 PropTypes$1I.object,
34105 ]),
34106 portalIntoId: PropTypes$1I.string,
34107 closeOnScroll: PropTypes$1I.bool,
34108 closeOnResize: PropTypes$1I.bool,
34109 disableControlClickOkay: PropTypes$1I.bool,
34110 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
34111 // @ts-ignore
34112 _a11yValidator: function (props, _propName, component) {
34113 var label = props["aria-label"];
34114 var labelledBy = props["aria-labelledby"];
34115 if (label || labelledBy) {
34116 return null;
34117 }
34118 return new Error("Either the `aria-label` or `aria-labelledby` props are required for accessibility in the " + component + " component, but neither were provided.");
34119 },
34120 };
34121 }
34122 catch (e) { }
34123 }
34124
34125 var __assign$gu = (undefined && undefined.__assign) || function () {
34126 __assign$gu = Object.assign || function(t) {
34127 for (var s, i = 1, n = arguments.length; i < n; i++) {
34128 s = arguments[i];
34129 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34130 t[p] = s[p];
34131 }
34132 return t;
34133 };
34134 return __assign$gu.apply(this, arguments);
34135 };
34136 var __rest$1D = (undefined && undefined.__rest) || function (s, e) {
34137 var t = {};
34138 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34139 t[p] = s[p];
34140 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34141 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34142 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34143 t[p[i]] = s[p[i]];
34144 }
34145 return t;
34146 };
34147 var MenuItem = React.forwardRef(function MenuItem(_a, ref) {
34148 var className = _a.className, children = _a.children, _b = _a.role, role = _b === void 0 ? "menuitem" : _b, _c = _a.tabIndex, tabIndex = _c === void 0 ? -1 : _c, props = __rest$1D(_a, ["className", "children", "role", "tabIndex"]);
34149 return (React__default.createElement(ListItem, __assign$gu({}, props, { ref: ref, role: role, tabIndex: tabIndex, className: classnames("rmd-menu-item", className) }), children));
34150 });
34151 {
34152 try {
34153 var PropTypes$1J = require("prop-types");
34154 MenuItem.propTypes = {
34155 id: PropTypes$1J.string,
34156 className: PropTypes$1J.string,
34157 role: PropTypes$1J.string,
34158 tabIndex: PropTypes$1J.number,
34159 children: PropTypes$1J.node,
34160 };
34161 }
34162 catch (e) { }
34163 }
34164
34165 var __assign$gv = (undefined && undefined.__assign) || function () {
34166 __assign$gv = Object.assign || function(t) {
34167 for (var s, i = 1, n = arguments.length; i < n; i++) {
34168 s = arguments[i];
34169 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34170 t[p] = s[p];
34171 }
34172 return t;
34173 };
34174 return __assign$gv.apply(this, arguments);
34175 };
34176 var __rest$1E = (undefined && undefined.__rest) || function (s, e) {
34177 var t = {};
34178 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34179 t[p] = s[p];
34180 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34181 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34182 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34183 t[p[i]] = s[p[i]];
34184 }
34185 return t;
34186 };
34187 var MenuItemLink = React.forwardRef(function MenuItemLink(_a, ref) {
34188 var className = _a.className, children = _a.children, _b = _a.role, role = _b === void 0 ? "menuitem" : _b, _c = _a.tabIndex, tabIndex = _c === void 0 ? -1 : _c, props = __rest$1E(_a, ["className", "children", "role", "tabIndex"]);
34189 return (React__default.createElement("li", { role: "none" },
34190 React__default.createElement(ListItemLink, __assign$gv({}, props, { ref: ref, role: role, tabIndex: tabIndex, className: classnames("rmd-menu-item", className) }), children)));
34191 });
34192 {
34193 try {
34194 var PropTypes$1K = require("prop-types");
34195 MenuItemLink.propTypes = {
34196 className: PropTypes$1K.string,
34197 children: PropTypes$1K.node,
34198 role: PropTypes$1K.oneOf(["menuitem"]),
34199 tabIndex: PropTypes$1K.number,
34200 };
34201 }
34202 catch (e) { }
34203 }
34204
34205 var __assign$gw = (undefined && undefined.__assign) || function () {
34206 __assign$gw = Object.assign || function(t) {
34207 for (var s, i = 1, n = arguments.length; i < n; i++) {
34208 s = arguments[i];
34209 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34210 t[p] = s[p];
34211 }
34212 return t;
34213 };
34214 return __assign$gw.apply(this, arguments);
34215 };
34216 var __rest$1F = (undefined && undefined.__rest) || function (s, e) {
34217 var t = {};
34218 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34219 t[p] = s[p];
34220 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34221 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34222 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34223 t[p[i]] = s[p[i]];
34224 }
34225 return t;
34226 };
34227 var MenuItemSeparator = React.forwardRef(function MenuItemSeparator(_a, ref) {
34228 var ariaOrientation = _a["aria-orientation"], maxHeight = _a.maxHeight, props = __rest$1F(_a, ["aria-orientation", "maxHeight"]);
34229 var menuOrientation = useOrientation$1();
34230 if (ariaOrientation === "vertical" ||
34231 (!ariaOrientation && menuOrientation === "horizontal")) {
34232 return (React__default.createElement(VerticalDivider, __assign$gw({}, props, { ref: ref, "aria-orientation": "vertical", maxHeight: maxHeight, role: "separator" })));
34233 }
34234 return React__default.createElement(Divider, __assign$gw({}, props, { ref: ref, role: "separator" }));
34235 });
34236 {
34237 try {
34238 var PropTypes$1L = require("prop-types");
34239 MenuItemSeparator.propTypes = {
34240 "aria-orientation": PropTypes$1L.oneOf(["horizontal", "vertical"]),
34241 className: PropTypes$1L.string,
34242 maxHeight: PropTypes$1L.number,
34243 };
34244 }
34245 catch (e) { }
34246 }
34247
34248 var __assign$gx = (undefined && undefined.__assign) || function () {
34249 __assign$gx = Object.assign || function(t) {
34250 for (var s, i = 1, n = arguments.length; i < n; i++) {
34251 s = arguments[i];
34252 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34253 t[p] = s[p];
34254 }
34255 return t;
34256 };
34257 return __assign$gx.apply(this, arguments);
34258 };
34259 function defaultMenuItemRenderer(item, key) {
34260 if (item !== 0 && !item) {
34261 return null;
34262 }
34263 if (item === "separator") {
34264 return React__default.createElement(MenuItemSeparator, { key: key });
34265 }
34266 var type = typeof item;
34267 if (type === "number" || type === "string" || type === "boolean") {
34268 return React__default.createElement(MenuItem, { key: key }, item);
34269 }
34270 if (React.isValidElement(item)) {
34271 return React.cloneElement(item, { key: key });
34272 }
34273 var separatorProps = item;
34274 if (separatorProps.role === "separator") {
34275 return React__default.createElement(MenuItemSeparator, __assign$gx({}, separatorProps, { key: key }));
34276 }
34277 var linkProps = item;
34278 if (linkProps.to || linkProps.href || linkProps.component) {
34279 return React__default.createElement(MenuItemLink, __assign$gx({ key: key }, linkProps));
34280 }
34281 var itemProps = item;
34282 return React__default.createElement(MenuItem, __assign$gx({ key: key }, itemProps));
34283 }
34284
34285 var __assign$gy = (undefined && undefined.__assign) || function () {
34286 __assign$gy = Object.assign || function(t) {
34287 for (var s, i = 1, n = arguments.length; i < n; i++) {
34288 s = arguments[i];
34289 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34290 t[p] = s[p];
34291 }
34292 return t;
34293 };
34294 return __assign$gy.apply(this, arguments);
34295 };
34296 var __rest$1G = (undefined && undefined.__rest) || function (s, e) {
34297 var t = {};
34298 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34299 t[p] = s[p];
34300 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34301 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34302 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34303 t[p[i]] = s[p[i]];
34304 }
34305 return t;
34306 };
34307 /**
34308 * The default menu renderer that will just render the `Menu` component along
34309 * with a `List` by passing all props down to the main `Menu` component.
34310 */
34311 function defaultMenuRenderer(_a) {
34312 var horizontal = _a.horizontal, children = _a.children, props = __rest$1G(_a, ["horizontal", "children"]);
34313 return (React__default.createElement(Menu, __assign$gy({}, props, { horizontal: horizontal }),
34314 React__default.createElement(List, { horizontal: horizontal }, children)));
34315 }
34316
34317 /**
34318 * This is the main visibility hook to be used for the `DropdownMenu` and
34319 * `DropdownMenuItem` components. It'll provide the current visibility as well
34320 * as the default focus type once the menu becomes visible.
34321 *
34322 * @private
34323 */
34324 function useVisibility(_a) {
34325 var _b = _a === void 0 ? {} : _a, _c = _b.defaultVisible, defaultVisible = _c === void 0 ? false : _c, _d = _b.defaultFocus, defaultFocusValue = _d === void 0 ? "first" : _d, onVisibilityChange = _b.onVisibilityChange;
34326 var _e = React.useState({
34327 visible: defaultVisible,
34328 defaultFocus: defaultFocusValue,
34329 }), _f = _e[0], visible = _f.visible, defaultFocus = _f.defaultFocus, setState = _e[1];
34330 var prevVisible = React.useRef(visible);
34331 if (prevVisible.current !== visible) {
34332 prevVisible.current = visible;
34333 if (onVisibilityChange) {
34334 onVisibilityChange(visible);
34335 }
34336 }
34337 /**
34338 * A callback to use that allows you to provide a string for if the focus
34339 * target should be the "first" or "last" focusable element in the menu. This
34340 * should be "first" for all cases except when the control opens the menu with
34341 * an arrow up key event.
34342 */
34343 var showWithFocus = React.useCallback(function (defaultFocus) {
34344 setState({ visible: true, defaultFocus: defaultFocus });
34345 }, []);
34346 /**
34347 * The default implementation of showing the menu that will focus the first
34348 * menu item once visible.
34349 */
34350 var show = React.useCallback(function () {
34351 showWithFocus("first");
34352 }, [showWithFocus]);
34353 /**
34354 * Hides the menu.
34355 */
34356 var hide = React.useCallback(function () {
34357 setState({ visible: false, defaultFocus: "first" });
34358 }, []);
34359 /**
34360 * Toggles the visibility of the menu.
34361 */
34362 var toggle = React.useCallback(function () {
34363 setState(function (_a) {
34364 var visible = _a.visible, defaultFocus = _a.defaultFocus;
34365 return ({
34366 visible: !visible,
34367 defaultFocus: defaultFocus,
34368 });
34369 });
34370 }, []);
34371 return {
34372 visible: visible,
34373 defaultFocus: defaultFocus,
34374 show: show,
34375 showWithFocus: showWithFocus,
34376 hide: hide,
34377 toggle: toggle,
34378 };
34379 }
34380
34381 /**
34382 * This hook is used to provide the menu visibility based on interacting with
34383 * the `MenuButton` component. It'll merge and return the required `onClick` and
34384 * `onKeyDown` event handlers that should be passed down to the `MenuButton` as
34385 * well as the current visibility state and a `hide` function to pass to the
34386 * `Menu`.
34387 *
34388 * @private
34389 */
34390 function useButtonVisibility(_a) {
34391 var _b = _a === void 0 ? {} : _a, propOnClick = _b.onClick, propOnKeyDown = _b.onKeyDown, defaultVisible = _b.defaultVisible, propDefaultFocus = _b.defaultFocus, onVisibilityChange = _b.onVisibilityChange;
34392 var handlers = useRefCache({
34393 onClick: propOnClick,
34394 onKeyDown: propOnKeyDown,
34395 });
34396 var _c = useVisibility({
34397 defaultVisible: defaultVisible,
34398 defaultFocus: propDefaultFocus,
34399 onVisibilityChange: onVisibilityChange,
34400 }), visible = _c.visible, defaultFocus = _c.defaultFocus, hide = _c.hide, showWithFocus = _c.showWithFocus, toggle = _c.toggle;
34401 var onClick = React.useCallback(function (event) {
34402 var onClick = handlers.current.onClick;
34403 if (onClick) {
34404 onClick(event);
34405 }
34406 toggle();
34407 },
34408 // disabled since useRefCache
34409 // eslint-disable-next-line react-hooks/exhaustive-deps
34410 [toggle]);
34411 var onKeyDown = React.useCallback(function (event) {
34412 var onKeyDown = handlers.current.onKeyDown;
34413 if (onKeyDown) {
34414 onKeyDown(event);
34415 }
34416 switch (event.key) {
34417 case "ArrowDown":
34418 event.preventDefault();
34419 showWithFocus("first");
34420 break;
34421 case "ArrowUp":
34422 event.preventDefault();
34423 showWithFocus("last");
34424 break;
34425 // no default
34426 }
34427 },
34428 // disabled since useRefCache
34429 // eslint-disable-next-line react-hooks/exhaustive-deps
34430 [showWithFocus]);
34431 return {
34432 visible: visible,
34433 defaultFocus: defaultFocus,
34434 hide: hide,
34435 onClick: onClick,
34436 onKeyDown: onKeyDown,
34437 };
34438 }
34439
34440 var __assign$gz = (undefined && undefined.__assign) || function () {
34441 __assign$gz = Object.assign || function(t) {
34442 for (var s, i = 1, n = arguments.length; i < n; i++) {
34443 s = arguments[i];
34444 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34445 t[p] = s[p];
34446 }
34447 return t;
34448 };
34449 return __assign$gz.apply(this, arguments);
34450 };
34451 var __rest$1H = (undefined && undefined.__rest) || function (s, e) {
34452 var t = {};
34453 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34454 t[p] = s[p];
34455 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34456 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34457 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34458 t[p[i]] = s[p[i]];
34459 }
34460 return t;
34461 };
34462 var DropdownMenu = React.forwardRef(function DropdownMenu(_a, ref) {
34463 var propOnClick = _a.onClick, propOnKeyDown = _a.onKeyDown, children = _a.children, anchor = _a.anchor, menuLabel = _a.menuLabel, menuLabelledBy = _a.menuLabelledBy, _b = _a.menuRenderer, menuRenderer = _b === void 0 ? defaultMenuRenderer : _b, items = _a.items, _c = _a.itemRenderer, itemRenderer = _c === void 0 ? defaultMenuItemRenderer : _c, horizontal = _a.horizontal, onVisibilityChange = _a.onVisibilityChange, portal = _a.portal, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, positionOptions = _a.positionOptions, _d = _a.defaultVisible, defaultVisible = _d === void 0 ? false : _d, closeOnScroll = _a.closeOnScroll, closeOnResize = _a.closeOnResize, propDropdownIcon = _a.dropdownIcon, _e = _a.disableDropdownIcon, disableDropdownIcon = _e === void 0 ? false : _e, props = __rest$1H(_a, ["onClick", "onKeyDown", "children", "anchor", "menuLabel", "menuLabelledBy", "menuRenderer", "items", "itemRenderer", "horizontal", "onVisibilityChange", "portal", "portalInto", "portalIntoId", "positionOptions", "defaultVisible", "closeOnScroll", "closeOnResize", "dropdownIcon", "disableDropdownIcon"]);
34464 var id = props.id;
34465 var dropdownIcon = useIcon("dropdown", propDropdownIcon);
34466 var _f = useButtonVisibility({
34467 onClick: propOnClick,
34468 onKeyDown: propOnKeyDown,
34469 defaultVisible: defaultVisible,
34470 onVisibilityChange: onVisibilityChange,
34471 }), visible = _f.visible, defaultFocus = _f.defaultFocus, onClick = _f.onClick, onKeyDown = _f.onKeyDown, hide = _f.hide;
34472 var labelledBy = menuLabelledBy;
34473 if (!menuLabel && !menuLabelledBy) {
34474 labelledBy = id;
34475 }
34476 return (React__default.createElement(React__default.Fragment, null,
34477 React__default.createElement(MenuButton, __assign$gz({}, props, { ref: ref, "aria-haspopup": "menu", visible: visible, onClick: onClick, onKeyDown: onKeyDown, dropdownIcon: dropdownIcon, disableDropdownIcon: disableDropdownIcon }), children),
34478 menuRenderer({
34479 "aria-label": menuLabel,
34480 // ok to typecast since one of these two should be a string by this
34481 // line
34482 "aria-labelledby": labelledBy,
34483 id: id + "-menu",
34484 controlId: id,
34485 anchor: anchor,
34486 positionOptions: positionOptions,
34487 closeOnScroll: closeOnScroll,
34488 closeOnResize: closeOnResize,
34489 horizontal: horizontal,
34490 visible: visible,
34491 defaultFocus: defaultFocus,
34492 onRequestClose: hide,
34493 children: items.map(function (item, i) { return itemRenderer(item, "item-" + i); }),
34494 portal: portal,
34495 portalInto: portalInto,
34496 portalIntoId: portalIntoId,
34497 }, items)));
34498 });
34499 {
34500 try {
34501 var PropTypes$1M = require("prop-types");
34502 DropdownMenu.propTypes = {
34503 id: PropTypes$1M.string.isRequired,
34504 defaultVisible: PropTypes$1M.bool,
34505 menuLabel: PropTypes$1M.string,
34506 menuLabelledBy: PropTypes$1M.string,
34507 menuRenderer: PropTypes$1M.func,
34508 items: PropTypes$1M.arrayOf(PropTypes$1M.oneOfType([
34509 PropTypes$1M.string,
34510 PropTypes$1M.number,
34511 PropTypes$1M.node,
34512 PropTypes$1M.object,
34513 ])).isRequired,
34514 onClick: PropTypes$1M.func,
34515 onKeyDown: PropTypes$1M.func,
34516 children: PropTypes$1M.node,
34517 horizontal: PropTypes$1M.bool,
34518 portal: PropTypes$1M.bool,
34519 portalInto: PropTypes$1M.oneOfType([
34520 PropTypes$1M.string,
34521 PropTypes$1M.func,
34522 PropTypes$1M.object,
34523 ]),
34524 portalIntoId: PropTypes$1M.string,
34525 anchor: PropTypes$1M.shape({
34526 x: PropTypes$1M.oneOf([
34527 "left",
34528 "right",
34529 "center",
34530 "inner-left",
34531 "inner-right",
34532 ]).isRequired,
34533 y: PropTypes$1M.oneOf(["above", "below", "center", "top", "bottom"])
34534 .isRequired,
34535 }),
34536 positionOptions: PropTypes$1M.shape({
34537 vwMargin: PropTypes$1M.number,
34538 vhMargin: PropTypes$1M.number,
34539 xMargin: PropTypes$1M.number,
34540 yMargin: PropTypes$1M.number,
34541 initialX: PropTypes$1M.number,
34542 initialY: PropTypes$1M.number,
34543 disableSwapping: PropTypes$1M.bool,
34544 }),
34545 itemRenderer: PropTypes$1M.func,
34546 dropdownIcon: PropTypes$1M.node,
34547 disableDropdownIcon: PropTypes$1M.bool,
34548 onVisibilityChange: PropTypes$1M.func,
34549 closeOnScroll: PropTypes$1M.bool,
34550 closeOnResize: PropTypes$1M.bool,
34551 };
34552 }
34553 catch (e) { }
34554 }
34555
34556 function useItemVisibility(_a) {
34557 var _b = _a === void 0 ? {} : _a, _c = _b.horizontal, horizontal = _c === void 0 ? false : _c, propOnClick = _b.onClick, propOnKeyDown = _b.onKeyDown, defaultVisible = _b.defaultVisible, propDefaultFocus = _b.defaultFocus, onVisibilityChange = _b.onVisibilityChange;
34558 var cache = useRefCache({
34559 horizontal: horizontal,
34560 onClick: propOnClick,
34561 onKeyDown: propOnKeyDown,
34562 });
34563 var _d = useVisibility({
34564 defaultVisible: defaultVisible,
34565 defaultFocus: propDefaultFocus,
34566 onVisibilityChange: onVisibilityChange,
34567 }), visible = _d.visible, defaultFocus = _d.defaultFocus, hide = _d.hide, showWithFocus = _d.showWithFocus, toggle = _d.toggle;
34568 var onClick = React.useCallback(function (event) {
34569 var onClick = cache.current.onClick;
34570 if (onClick) {
34571 onClick(event);
34572 }
34573 toggle();
34574 },
34575 // disabled since useRefCache
34576 // eslint-disable-next-line react-hooks/exhaustive-deps
34577 [toggle]);
34578 var onKeyDown = React.useCallback(function (event) {
34579 var _a = cache.current, onKeyDown = _a.onKeyDown, horizontal = _a.horizontal;
34580 if (onKeyDown) {
34581 onKeyDown(event);
34582 }
34583 var firstKey = horizontal ? "ArrowDown" : "ArrowRight";
34584 var lastKey = horizontal ? "ArrowUp" : "ArrowLeft";
34585 if (event.key !== firstKey && event.key !== lastKey) {
34586 return;
34587 }
34588 // don't want to trigger default behavior of screen scrolling
34589 event.preventDefault();
34590 // don't want parent menus to be effected by this as well.
34591 event.stopPropagation();
34592 showWithFocus(event.key === firstKey ? "first" : "last");
34593 },
34594 // disabled since useRefCache
34595 // eslint-disable-next-line react-hooks/exhaustive-deps
34596 [showWithFocus]);
34597 return {
34598 visible: visible,
34599 defaultFocus: defaultFocus,
34600 hide: hide,
34601 onClick: onClick,
34602 onKeyDown: onKeyDown,
34603 };
34604 }
34605
34606 var __assign$gA = (undefined && undefined.__assign) || function () {
34607 __assign$gA = Object.assign || function(t) {
34608 for (var s, i = 1, n = arguments.length; i < n; i++) {
34609 s = arguments[i];
34610 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34611 t[p] = s[p];
34612 }
34613 return t;
34614 };
34615 return __assign$gA.apply(this, arguments);
34616 };
34617 var __rest$1I = (undefined && undefined.__rest) || function (s, e) {
34618 var t = {};
34619 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34620 t[p] = s[p];
34621 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34622 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34623 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34624 t[p[i]] = s[p[i]];
34625 }
34626 return t;
34627 };
34628 /**
34629 * The `DropdownMenuItem` component is used to be able to render nested dropdown menus.
34630 */
34631 var DropdownMenuItem = React.forwardRef(function DropdownMenuItem(_a, ref) {
34632 var propOnClick = _a.onClick, propOnKeyDown = _a.onKeyDown, children = _a.children, propAnchor = _a.anchor, menuLabel = _a.menuLabel, menuLabelledBy = _a.menuLabelledBy, _b = _a.menuRenderer, menuRenderer = _b === void 0 ? defaultMenuRenderer : _b, items = _a.items, _c = _a.itemRenderer, itemRenderer = _c === void 0 ? defaultMenuItemRenderer : _c, horizontal = _a.horizontal, onVisibilityChange = _a.onVisibilityChange, _d = _a.portal, portal = _d === void 0 ? true : _d, portalInto = _a.portalInto, portalIntoId = _a.portalIntoId, positionOptions = _a.positionOptions, propRightAddon = _a.rightAddon, propDropdownIcon = _a.dropdownIcon, _e = _a.closeOnScroll, closeOnScroll = _e === void 0 ? false : _e, _f = _a.closeOnResize, closeOnResize = _f === void 0 ? false : _f, _g = _a.disableEscapeCascade, disableEscapeCascade = _g === void 0 ? false : _g, _h = _a.disableDropdownIcon, disableDropdownIcon = _h === void 0 ? false : _h, props = __rest$1I(_a, ["onClick", "onKeyDown", "children", "anchor", "menuLabel", "menuLabelledBy", "menuRenderer", "items", "itemRenderer", "horizontal", "onVisibilityChange", "portal", "portalInto", "portalIntoId", "positionOptions", "rightAddon", "dropdownIcon", "closeOnScroll", "closeOnResize", "disableEscapeCascade", "disableDropdownIcon"]);
34633 var id = props.id;
34634 var dropdownIcon = useIcon("forward", propDropdownIcon);
34635 var _j = useItemVisibility({
34636 onClick: propOnClick,
34637 onKeyDown: propOnKeyDown,
34638 onVisibilityChange: onVisibilityChange,
34639 }), visible = _j.visible, hide = _j.hide, onClick = _j.onClick, onKeyDown = _j.onKeyDown, defaultFocus = _j.defaultFocus;
34640 var labelledBy = menuLabelledBy;
34641 if (!menuLabel && !menuLabelledBy) {
34642 labelledBy = id;
34643 }
34644 var rightAddon = propRightAddon;
34645 if (!disableDropdownIcon && dropdownIcon && !rightAddon) {
34646 rightAddon = React__default.createElement(IconRotator, { rotated: visible }, dropdownIcon);
34647 }
34648 var anchor = propAnchor;
34649 if (!anchor) {
34650 anchor = horizontal ? BELOW_INNER_RIGHT_ANCHOR : TOP_RIGHT_ANCHOR;
34651 }
34652 return (React__default.createElement(React__default.Fragment, null,
34653 React__default.createElement(MenuItem, __assign$gA({}, props, { ref: ref, "aria-haspopup": "menu", "aria-expanded": visible ? "true" : undefined, role: "button", onClick: onClick, onKeyDown: onKeyDown, rightAddon: rightAddon }), children),
34654 menuRenderer({
34655 "aria-label": menuLabel,
34656 // ok to typecast since one of these two should be a string by this
34657 // line
34658 "aria-labelledby": labelledBy,
34659 id: id + "-menu",
34660 controlId: id,
34661 anchor: anchor,
34662 positionOptions: positionOptions,
34663 closeOnScroll: closeOnScroll,
34664 closeOnResize: closeOnResize,
34665 horizontal: horizontal,
34666 visible: visible,
34667 defaultFocus: defaultFocus,
34668 onRequestClose: hide,
34669 children: items.map(function (item, i) { return itemRenderer(item, "item-" + i); }),
34670 portal: portal,
34671 portalInto: portalInto,
34672 portalIntoId: portalIntoId,
34673 onKeyDown: function (event) {
34674 if (event.key !== "Escape" || disableEscapeCascade) {
34675 // don't want parent keydown listeners to be triggered as well
34676 event.stopPropagation();
34677 }
34678 if (!horizontal && event.key === "ArrowLeft") {
34679 hide();
34680 }
34681 },
34682 }, items)));
34683 });
34684 {
34685 try {
34686 var PropTypes$1N = require("prop-types");
34687 DropdownMenuItem.propTypes = {
34688 id: PropTypes$1N.string.isRequired,
34689 className: PropTypes$1N.string,
34690 portal: PropTypes$1N.bool,
34691 portalInto: PropTypes$1N.oneOfType([
34692 PropTypes$1N.string,
34693 PropTypes$1N.func,
34694 PropTypes$1N.object,
34695 ]),
34696 portalIntoId: PropTypes$1N.string,
34697 onClick: PropTypes$1N.func,
34698 onKeyDown: PropTypes$1N.func,
34699 children: PropTypes$1N.node,
34700 anchor: PropTypes$1N.shape({
34701 x: PropTypes$1N.oneOf([
34702 "left",
34703 "right",
34704 "center",
34705 "inner-left",
34706 "inner-right",
34707 ]).isRequired,
34708 y: PropTypes$1N.oneOf(["above", "below", "center", "top", "bottom"])
34709 .isRequired,
34710 }),
34711 items: PropTypes$1N.arrayOf(PropTypes$1N.oneOfType([
34712 PropTypes$1N.string,
34713 PropTypes$1N.number,
34714 PropTypes$1N.node,
34715 PropTypes$1N.object,
34716 ])).isRequired,
34717 menuLabel: PropTypes$1N.string,
34718 menuLabelledBy: PropTypes$1N.string,
34719 menuRenderer: PropTypes$1N.func,
34720 itemRenderer: PropTypes$1N.func,
34721 dropdownIcon: PropTypes$1N.node,
34722 horizontal: PropTypes$1N.bool,
34723 positionOptions: PropTypes$1N.shape({
34724 vwMargin: PropTypes$1N.number,
34725 vhMargin: PropTypes$1N.number,
34726 xMargin: PropTypes$1N.number,
34727 yMargin: PropTypes$1N.number,
34728 initialX: PropTypes$1N.number,
34729 initialY: PropTypes$1N.number,
34730 disableSwapping: PropTypes$1N.bool,
34731 }),
34732 rightAddon: PropTypes$1N.node,
34733 onVisibilityChange: PropTypes$1N.func,
34734 disableDropdownIcon: PropTypes$1N.bool,
34735 disableEscapeCascade: PropTypes$1N.bool,
34736 closeOnScroll: PropTypes$1N.bool,
34737 closeOnResize: PropTypes$1N.bool,
34738 };
34739 }
34740 catch (e) { }
34741 }
34742
34743 var DEFAULT_CONTEXT_MENU_ID = "context-menu";
34744 function useContextMenu(_a) {
34745 var _b = _a === void 0 ? {} : _a, _c = _b.id, id = _c === void 0 ? DEFAULT_CONTEXT_MENU_ID : _c, propRef = _b.ref, _d = _b.anchor, anchor = _d === void 0 ? TOP_INNER_LEFT_ANCHOR : _d, _e = _b.classNames, classNames = _e === void 0 ? SCALE_Y_CLASSNAMES : _e, _f = _b.disableDeselect, disableDeselect = _f === void 0 ? false : _f;
34746 var _g = React.useState(false), visible = _g[0], setVisible = _g[1];
34747 var onRequestClose = React.useCallback(function () {
34748 setVisible(false);
34749 }, []);
34750 var _h = React.useState({}), coords = _h[0], setCoords = _h[1];
34751 var onContextMenu = React.useCallback(function (event) {
34752 event.preventDefault();
34753 event.stopPropagation();
34754 var selection = window.getSelection();
34755 if (selection && !disableDeselect) {
34756 selection.empty();
34757 }
34758 setVisible(true);
34759 if (event.button === 0 && event.buttons === 0) {
34760 setCoords({});
34761 return;
34762 }
34763 setCoords({ initialX: event.clientX, initialY: event.clientY });
34764 }, [disableDeselect]);
34765 var menuRef = React.useRef(null);
34766 React.useEffect(function () {
34767 if (!visible) {
34768 return;
34769 }
34770 var hide = function (event) {
34771 var target = event.target;
34772 if (!containsElement(menuRef, target)) {
34773 onRequestClose();
34774 }
34775 };
34776 window.addEventListener("contextmenu", hide, true);
34777 return function () {
34778 window.removeEventListener("contextmenu", hide, true);
34779 };
34780 }, [onRequestClose, visible]);
34781 var ref = React.useCallback(function (instance) {
34782 applyRef(instance, propRef);
34783 menuRef.current = instance;
34784 }, [propRef]);
34785 var menuProps = {
34786 id: id,
34787 ref: ref,
34788 anchor: anchor,
34789 visible: visible,
34790 classNames: classNames,
34791 onRequestClose: onRequestClose,
34792 positionOptions: coords,
34793 disableControlClickOkay: true,
34794 };
34795 return [menuProps, onContextMenu, setVisible];
34796 }
34797
34798 var __assign$gB = (undefined && undefined.__assign) || function () {
34799 __assign$gB = Object.assign || function(t) {
34800 for (var s, i = 1, n = arguments.length; i < n; i++) {
34801 s = arguments[i];
34802 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34803 t[p] = s[p];
34804 }
34805 return t;
34806 };
34807 return __assign$gB.apply(this, arguments);
34808 };
34809 var __rest$1J = (undefined && undefined.__rest) || function (s, e) {
34810 var t = {};
34811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34812 t[p] = s[p];
34813 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34814 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34815 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34816 t[p[i]] = s[p[i]];
34817 }
34818 return t;
34819 };
34820 /**
34821 * An extremely "useful" component that should be used with the `Table`
34822 * component if you want to make a responsive table within the page. If you
34823 * don't want to use this component, you can just apply `overflow: auto` to a
34824 * parent element of the table.
34825 */
34826 var TableContainer = React.forwardRef(function TableContainer(_a, ref) {
34827 var className = _a.className, children = _a.children, props = __rest$1J(_a, ["className", "children"]);
34828 return (React__default.createElement("div", __assign$gB({}, props, { ref: ref, className: classnames("rmd-table-container", className) }), children));
34829 });
34830 {
34831 try {
34832 var PropTypes$1O = require("prop-types");
34833 TableContainer.propTypes = {
34834 className: PropTypes$1O.string,
34835 children: PropTypes$1O.node,
34836 };
34837 }
34838 catch (e) { }
34839 }
34840
34841 var context$4 = React.createContext({
34842 header: false,
34843 hAlign: "left",
34844 vAlign: "middle",
34845 lineWrap: false,
34846 disableHover: false,
34847 disableBorders: false,
34848 });
34849 /**
34850 * An internal hook for getting the current table configuration in child
34851 * components for the table. This will use the inherited table configuration
34852 * context if the prop value is `undefined`.
34853 *
34854 * @private
34855 */
34856 function useTableConfig(options) {
34857 var _a, _b, _c, _d, _e, _f;
34858 var inherited = React.useContext(context$4);
34859 var header = (_a = options.header) !== null && _a !== void 0 ? _a : inherited.header;
34860 var hAlign = (_b = options.hAlign) !== null && _b !== void 0 ? _b : inherited.hAlign;
34861 var vAlign = (_c = options.vAlign) !== null && _c !== void 0 ? _c : inherited.vAlign;
34862 var lineWrap = (_d = options.lineWrap) !== null && _d !== void 0 ? _d : inherited.lineWrap;
34863 var disableHover = (_e = options.disableHover) !== null && _e !== void 0 ? _e : inherited.disableHover;
34864 var disableBorders = (_f = options.disableBorders) !== null && _f !== void 0 ? _f : inherited.disableBorders;
34865 return {
34866 header: header,
34867 hAlign: hAlign,
34868 vAlign: vAlign,
34869 lineWrap: lineWrap,
34870 disableHover: disableHover,
34871 disableBorders: disableBorders,
34872 };
34873 }
34874 /**
34875 * @private
34876 */
34877 var TableConfigProvider = context$4.Provider;
34878
34879 var __assign$gC = (undefined && undefined.__assign) || function () {
34880 __assign$gC = Object.assign || function(t) {
34881 for (var s, i = 1, n = arguments.length; i < n; i++) {
34882 s = arguments[i];
34883 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34884 t[p] = s[p];
34885 }
34886 return t;
34887 };
34888 return __assign$gC.apply(this, arguments);
34889 };
34890 var __rest$1K = (undefined && undefined.__rest) || function (s, e) {
34891 var t = {};
34892 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34893 t[p] = s[p];
34894 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34895 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34896 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34897 t[p[i]] = s[p[i]];
34898 }
34899 return t;
34900 };
34901 var block$17 = bem("rmd-table");
34902 /**
34903 * Creates a `<table>` element with some default styles and a quick way to
34904 * configure the other styles within a table. That being said, styling tables is
34905 * awful if you are used to flexbox and this component will not be helping with
34906 * layout styles of tables.
34907 *
34908 * The table will not be responsive by default, but you can easily create a
34909 * responsive table with overflow by wrapping with the `TableContainer`
34910 * component or just adding `overflow: auto` to a parent element. Note that
34911 * horizontal scrolling is still not one of the best user interactions and it
34912 * might be better to render a table in a different manner for mobile devices to
34913 * help display all the required data.
34914 */
34915 var Table = React.forwardRef(function Table(_a, ref) {
34916 var className = _a.className, children = _a.children, _b = _a.dense, dense = _b === void 0 ? false : _b, _c = _a.hAlign, hAlign = _c === void 0 ? "left" : _c, _d = _a.vAlign, vAlign = _d === void 0 ? "middle" : _d, _e = _a.lineWrap, lineWrap = _e === void 0 ? false : _e, _f = _a.fullWidth, fullWidth = _f === void 0 ? false : _f, _g = _a.disableHover, disableHover = _g === void 0 ? false : _g, _h = _a.disableBorders, disableBorders = _h === void 0 ? false : _h, props = __rest$1K(_a, ["className", "children", "dense", "hAlign", "vAlign", "lineWrap", "fullWidth", "disableHover", "disableBorders"]);
34917 var configuration = React.useMemo(function () { return ({
34918 header: false,
34919 hAlign: hAlign,
34920 vAlign: vAlign,
34921 lineWrap: lineWrap,
34922 disableHover: disableHover,
34923 disableBorders: disableBorders,
34924 }); }, [hAlign, vAlign, lineWrap, disableHover, disableBorders]);
34925 return (React__default.createElement(TableConfigProvider, { value: configuration },
34926 React__default.createElement("table", __assign$gC({}, props, { ref: ref, className: classnames(block$17({
34927 dense: dense,
34928 "full-width": fullWidth,
34929 }), className) }), children)));
34930 });
34931 {
34932 try {
34933 var PropTypes$1P = require("prop-types");
34934 Table.propTypes = {
34935 children: PropTypes$1P.node,
34936 className: PropTypes$1P.string,
34937 dense: PropTypes$1P.bool,
34938 fullWidth: PropTypes$1P.bool,
34939 disableHover: PropTypes$1P.bool,
34940 disableBorders: PropTypes$1P.bool,
34941 hAlign: PropTypes$1P.oneOf(["left", "center", "right"]),
34942 vAlign: PropTypes$1P.oneOf(["top", "middle", "bottom"]),
34943 lineWrap: PropTypes$1P.oneOfType([
34944 PropTypes$1P.bool,
34945 PropTypes$1P.oneOf(["padded"]),
34946 ]),
34947 };
34948 }
34949 catch (e) { }
34950 }
34951
34952 var context$5 = React.createContext(false);
34953 /**
34954 * A quick way to conditionally inherit the sticky context within a table. If
34955 * the sticky prop was defined and a boolean, it will be used. Otherwise the
34956 * inherited context value will be used.
34957 * @private
34958 */
34959 function useSticky(sticky) {
34960 var isSticky = React.useContext(context$5);
34961 return typeof sticky !== "undefined" ? !!sticky : isSticky;
34962 }
34963 /**
34964 * @private
34965 */
34966 var StickyTableProvider = context$5.Provider;
34967
34968 var __assign$gD = (undefined && undefined.__assign) || function () {
34969 __assign$gD = Object.assign || function(t) {
34970 for (var s, i = 1, n = arguments.length; i < n; i++) {
34971 s = arguments[i];
34972 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
34973 t[p] = s[p];
34974 }
34975 return t;
34976 };
34977 return __assign$gD.apply(this, arguments);
34978 };
34979 var __rest$1L = (undefined && undefined.__rest) || function (s, e) {
34980 var t = {};
34981 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
34982 t[p] = s[p];
34983 if (s != null && typeof Object.getOwnPropertySymbols === "function")
34984 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34985 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34986 t[p[i]] = s[p[i]];
34987 }
34988 return t;
34989 };
34990 var block$18 = bem("rmd-thead");
34991 /**
34992 * Creates a `<thead>` element with some basic styles. This component will also
34993 * update the table configuration so that all the `TableCell` children will
34994 * automatically become `<th>` elements instead of the normal `<td>` as well as
34995 * disabling the hover effect and line wrapping. The hover effect and
34996 * line-wrapping can be re-enabled if desired through the `hoverable` and
34997 * `disableNoWrap` props.
34998 */
34999 var TableHeader = React.forwardRef(function TableHeader(_a, ref) {
35000 var className = _a.className, _b = _a.hoverable, hoverable = _b === void 0 ? false : _b, propLineWrap = _a.lineWrap, children = _a.children, _c = _a.sticky, sticky = _c === void 0 ? false : _c, props = __rest$1L(_a, ["className", "hoverable", "lineWrap", "children", "sticky"]);
35001 // update the table configuration with the custom overrides for the `<thead>`
35002 var _d = useTableConfig({
35003 lineWrap: propLineWrap,
35004 disableHover: !hoverable,
35005 }), hAlign = _d.hAlign, vAlign = _d.vAlign, lineWrap = _d.lineWrap, disableHover = _d.disableHover, disableBorders = _d.disableBorders;
35006 var configuration = React.useMemo(function () { return ({
35007 header: true,
35008 hAlign: hAlign,
35009 vAlign: vAlign,
35010 lineWrap: lineWrap,
35011 disableBorders: disableBorders,
35012 disableHover: disableHover,
35013 }); }, [hAlign, vAlign, lineWrap, disableBorders, disableHover]);
35014 return (React__default.createElement(TableConfigProvider, { value: configuration },
35015 React__default.createElement("thead", __assign$gD({}, props, { ref: ref, className: classnames(block$18(), className) }),
35016 React__default.createElement(StickyTableProvider, { value: sticky }, children))));
35017 });
35018 {
35019 try {
35020 var PropTypes$1Q = require("prop-types");
35021 TableHeader.propTypes = {
35022 className: PropTypes$1Q.string,
35023 lineWrap: PropTypes$1Q.oneOfType([
35024 PropTypes$1Q.bool,
35025 PropTypes$1Q.oneOf(["padded"]),
35026 ]),
35027 hoverable: PropTypes$1Q.bool,
35028 sticky: PropTypes$1Q.bool,
35029 children: PropTypes$1Q.node,
35030 };
35031 }
35032 catch (e) { }
35033 }
35034
35035 var __assign$gE = (undefined && undefined.__assign) || function () {
35036 __assign$gE = Object.assign || function(t) {
35037 for (var s, i = 1, n = arguments.length; i < n; i++) {
35038 s = arguments[i];
35039 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35040 t[p] = s[p];
35041 }
35042 return t;
35043 };
35044 return __assign$gE.apply(this, arguments);
35045 };
35046 var __rest$1M = (undefined && undefined.__rest) || function (s, e) {
35047 var t = {};
35048 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35049 t[p] = s[p];
35050 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35051 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35052 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35053 t[p[i]] = s[p[i]];
35054 }
35055 return t;
35056 };
35057 /**
35058 * Creates a `<tbody>` element that also allows for overriding all the child
35059 * `TableCell` components with additional styling behavior.
35060 */
35061 var TableBody = React.forwardRef(function TableBody(_a, ref) {
35062 var className = _a.className, children = _a.children, propHAlign = _a.hAlign, propVAlign = _a.vAlign, propLineWrap = _a.lineWrap, propDisableHover = _a.disableHover, propDisableBorders = _a.disableBorders, props = __rest$1M(_a, ["className", "children", "hAlign", "vAlign", "lineWrap", "disableHover", "disableBorders"]);
35063 // update the table configuration with the custom overrides for the `<thead>`
35064 var _b = useTableConfig({
35065 hAlign: propHAlign,
35066 vAlign: propVAlign,
35067 lineWrap: propLineWrap,
35068 disableHover: propDisableHover,
35069 disableBorders: propDisableBorders,
35070 }), hAlign = _b.hAlign, vAlign = _b.vAlign, lineWrap = _b.lineWrap, disableHover = _b.disableHover, disableBorders = _b.disableBorders;
35071 var configuration = React.useMemo(function () { return ({
35072 header: false,
35073 hAlign: hAlign,
35074 vAlign: vAlign,
35075 lineWrap: lineWrap,
35076 disableBorders: disableBorders,
35077 disableHover: disableHover,
35078 }); }, [hAlign, vAlign, lineWrap, disableBorders, disableHover]);
35079 return (React__default.createElement(TableConfigProvider, { value: configuration },
35080 React__default.createElement("tbody", __assign$gE({}, props, { ref: ref, className: classnames("rmd-tbody", className) }), children)));
35081 });
35082 {
35083 try {
35084 var PropTypes$1R = require("prop-types");
35085 TableBody.propTypes = {
35086 className: PropTypes$1R.string,
35087 children: PropTypes$1R.node,
35088 lineWrap: PropTypes$1R.oneOfType([
35089 PropTypes$1R.bool,
35090 PropTypes$1R.oneOf(["padded"]),
35091 ]),
35092 hAlign: PropTypes$1R.oneOf(["left", "center", "right"]),
35093 vAlign: PropTypes$1R.oneOf(["top", "middle", "bottom"]),
35094 disableHover: PropTypes$1R.bool,
35095 disableBorders: PropTypes$1R.bool,
35096 };
35097 }
35098 catch (e) { }
35099 }
35100
35101 var context$6 = React.createContext(false);
35102 {
35103 context$6.displayName = "TableFooterContext";
35104 }
35105 /**
35106 * @private
35107 */
35108 var TableFooterProvider = context$6.Provider;
35109 /**
35110 * @private
35111 */
35112 function useTableFooter() {
35113 return React.useContext(context$6);
35114 }
35115
35116 var __assign$gF = (undefined && undefined.__assign) || function () {
35117 __assign$gF = Object.assign || function(t) {
35118 for (var s, i = 1, n = arguments.length; i < n; i++) {
35119 s = arguments[i];
35120 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35121 t[p] = s[p];
35122 }
35123 return t;
35124 };
35125 return __assign$gF.apply(this, arguments);
35126 };
35127 var __rest$1N = (undefined && undefined.__rest) || function (s, e) {
35128 var t = {};
35129 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35130 t[p] = s[p];
35131 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35132 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35133 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35134 t[p[i]] = s[p[i]];
35135 }
35136 return t;
35137 };
35138 var block$19 = bem("rmd-foot");
35139 /**
35140 * Creates a `<tfoot>` element with some basic styles. This component will
35141 * disable the hover effect and line wrapping by default, but the hover effect
35142 * and line-wrapping can be re-enabled if desired through the `hoverable` and
35143 * `disableNoWrap` props.
35144 */
35145 var TableFooter = React.forwardRef(function TableFooter(_a, ref) {
35146 var className = _a.className, _b = _a.hoverable, hoverable = _b === void 0 ? false : _b, propLineWrap = _a.lineWrap, children = _a.children, _c = _a.sticky, sticky = _c === void 0 ? false : _c, props = __rest$1N(_a, ["className", "hoverable", "lineWrap", "children", "sticky"]);
35147 // update the table configuration with the custom overrides for the `<tfoot>`
35148 var _d = useTableConfig({
35149 lineWrap: propLineWrap,
35150 disableHover: !hoverable,
35151 }), hAlign = _d.hAlign, vAlign = _d.vAlign, lineWrap = _d.lineWrap, disableHover = _d.disableHover, disableBorders = _d.disableBorders;
35152 var configuration = React.useMemo(function () { return ({
35153 header: false,
35154 hAlign: hAlign,
35155 vAlign: vAlign,
35156 lineWrap: lineWrap,
35157 disableBorders: disableBorders,
35158 disableHover: disableHover,
35159 }); }, [hAlign, vAlign, lineWrap, disableBorders, disableHover]);
35160 return (React__default.createElement(TableConfigProvider, { value: configuration },
35161 React__default.createElement(TableFooterProvider, { value: true },
35162 React__default.createElement("tfoot", __assign$gF({}, props, { ref: ref, className: classnames(block$19(), className) }),
35163 React__default.createElement(StickyTableProvider, { value: sticky }, children)))));
35164 });
35165 {
35166 try {
35167 var PropTypes$1S = require("prop-types");
35168 TableFooter.propTypes = {
35169 className: PropTypes$1S.string,
35170 lineWrap: PropTypes$1S.oneOfType([
35171 PropTypes$1S.bool,
35172 PropTypes$1S.oneOf(["padded"]),
35173 ]),
35174 hoverable: PropTypes$1S.bool,
35175 sticky: PropTypes$1S.bool,
35176 children: PropTypes$1S.node,
35177 };
35178 }
35179 catch (e) { }
35180 }
35181
35182 var __assign$gG = (undefined && undefined.__assign) || function () {
35183 __assign$gG = Object.assign || function(t) {
35184 for (var s, i = 1, n = arguments.length; i < n; i++) {
35185 s = arguments[i];
35186 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35187 t[p] = s[p];
35188 }
35189 return t;
35190 };
35191 return __assign$gG.apply(this, arguments);
35192 };
35193 var __rest$1O = (undefined && undefined.__rest) || function (s, e) {
35194 var t = {};
35195 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35196 t[p] = s[p];
35197 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35198 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35199 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35200 t[p[i]] = s[p[i]];
35201 }
35202 return t;
35203 };
35204 var block$1a = bem("rmd-tr");
35205 /**
35206 * Creates a `<tr>` element with some general styles that are inherited from the
35207 * base table configuration.
35208 */
35209 var TableRow = React.forwardRef(function TableRow(_a, ref) {
35210 var className = _a.className, propDisableHover = _a.disableHover, propDisableBorders = _a.disableBorders, children = _a.children, _b = _a.selected, selected = _b === void 0 ? false : _b, _c = _a.clickable, clickable = _c === void 0 ? false : _c, props = __rest$1O(_a, ["className", "disableHover", "disableBorders", "children", "selected", "clickable"]);
35211 var _d = useTableConfig({
35212 disableHover: propDisableHover,
35213 disableBorders: propDisableBorders,
35214 }), disableHover = _d.disableHover, disableBorders = _d.disableBorders;
35215 return (React__default.createElement("tr", __assign$gG({}, props, { ref: ref, className: classnames(block$1a({
35216 bordered: !disableBorders,
35217 hoverable: !disableHover,
35218 clickable: clickable,
35219 selected: selected,
35220 "selected-hoverable": selected && !disableHover,
35221 }), className) }), children));
35222 });
35223 {
35224 try {
35225 var PropTypes$1T = require("prop-types");
35226 TableRow.propTypes = {
35227 className: PropTypes$1T.string,
35228 children: PropTypes$1T.node,
35229 disableHover: PropTypes$1T.bool,
35230 disableBorders: PropTypes$1T.bool,
35231 selected: PropTypes$1T.bool,
35232 clickable: PropTypes$1T.bool,
35233 };
35234 }
35235 catch (e) { }
35236 }
35237
35238 var __assign$gH = (undefined && undefined.__assign) || function () {
35239 __assign$gH = Object.assign || function(t) {
35240 for (var s, i = 1, n = arguments.length; i < n; i++) {
35241 s = arguments[i];
35242 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35243 t[p] = s[p];
35244 }
35245 return t;
35246 };
35247 return __assign$gH.apply(this, arguments);
35248 };
35249 var __rest$1P = (undefined && undefined.__rest) || function (s, e) {
35250 var t = {};
35251 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35252 t[p] = s[p];
35253 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35254 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35255 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35256 t[p[i]] = s[p[i]];
35257 }
35258 return t;
35259 };
35260 var block$1b = bem("rmd-table-cell");
35261 /**
35262 * This is mostly an internal component since it is automatically used within
35263 * the `TableCell` component but this will conditionally wrap the `children`
35264 * within an `UnstyledButton` to make a clickable cell. This is really to help
35265 * with sort behavior within headers.
35266 */
35267 var TableCellContent = React.forwardRef(function TableCellContent(_a, ref) {
35268 var id = _a.id, propIcon = _a.icon, style = _a.style, className = _a.className, sortOrder = _a.sortOrder, children = _a.children, propRotated = _a.rotated, props = __rest$1P(_a, ["id", "icon", "style", "className", "sortOrder", "children", "rotated"]);
35269 if (!sortOrder || propIcon === null) {
35270 return React__default.createElement(React__default.Fragment, null, children);
35271 }
35272 var icon = null;
35273 if (sortOrder !== "none") {
35274 var rotated = propRotated !== null && propRotated !== void 0 ? propRotated : sortOrder === "descending";
35275 icon = React__default.createElement(IconRotator, { rotated: rotated }, propIcon);
35276 }
35277 return (React__default.createElement(UnstyledButton, { id: id, ref: ref, style: style, className: classnames(block$1b("child"), className) },
35278 React__default.createElement(TextIconSpacing, __assign$gH({}, props, { icon: icon }), children)));
35279 });
35280 {
35281 try {
35282 var PropTypes$1U = require("prop-types");
35283 TableCellContent.propTypes = {
35284 id: PropTypes$1U.string,
35285 style: PropTypes$1U.object,
35286 className: PropTypes$1U.string,
35287 icon: PropTypes$1U.node,
35288 sortOrder: PropTypes$1U.oneOf(["ascending", "descending", "none", "other"]),
35289 rotated: PropTypes$1U.bool,
35290 children: PropTypes$1U.node,
35291 };
35292 }
35293 catch (e) { }
35294 }
35295
35296 var __assign$gI = (undefined && undefined.__assign) || function () {
35297 __assign$gI = Object.assign || function(t) {
35298 for (var s, i = 1, n = arguments.length; i < n; i++) {
35299 s = arguments[i];
35300 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35301 t[p] = s[p];
35302 }
35303 return t;
35304 };
35305 return __assign$gI.apply(this, arguments);
35306 };
35307 var __rest$1Q = (undefined && undefined.__rest) || function (s, e) {
35308 var t = {};
35309 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35310 t[p] = s[p];
35311 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35312 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35313 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35314 t[p[i]] = s[p[i]];
35315 }
35316 return t;
35317 };
35318 var block$1c = bem("rmd-table-cell");
35319 /**
35320 * Creates a `<th>` or `<td>` cell with sensible styled defaults. You can create
35321 * a `<th>` element by enabling the `header` prop OR having a `TableCell` as a
35322 * child of the `TableHeader` component.
35323 *
35324 * Note: If you have a checkbox column in the `TableHeader` without any labels,
35325 * you will need to manually set the `header={false}` prop for that cell since
35326 * it is invalid to have a `<th>` without any readable content for screen
35327 * readers.
35328 */
35329 var TableCell = React.forwardRef(function TableCell(_a, ref) {
35330 var _b;
35331 var sortOrder = _a["aria-sort"], id = _a.id, className = _a.className, _c = _a.grow, grow = _c === void 0 ? false : _c, propScope = _a.scope, propHAlign = _a.hAlign, propVAlign = _a.vAlign, propHeader = _a.header, propDisableLineWrap = _a.lineWrap, children = _a.children, propSticky = _a.sticky, propSortIcon = _a.sortIcon, _d = _a.sortIconAfter, sortIconAfter = _d === void 0 ? false : _d, sortIconRotated = _a.sortIconRotated, disablePadding = _a.disablePadding, propColSpan = _a.colSpan, props = __rest$1Q(_a, ["aria-sort", "id", "className", "grow", "scope", "hAlign", "vAlign", "header", "lineWrap", "children", "sticky", "sortIcon", "sortIconAfter", "sortIconRotated", "disablePadding", "colSpan"]);
35332 // have to double cast to get the `100%` value to work.
35333 var colSpan = propColSpan;
35334 var sortIcon = useIcon("sort", propSortIcon);
35335 var isNoPadding = disablePadding !== null && disablePadding !== void 0 ? disablePadding : (sortIcon && sortOrder);
35336 // Note: unlike the other usages of `useTableConfig`, the `propHeader`
35337 // is not provided. This is so that `TableCheckbox` components can still
35338 // be a sticky header without being rendered as a `<th>`. This also makes
35339 // it so the scope can be defaulted to `col` or `row` automatically.
35340 var _e = useTableConfig({
35341 hAlign: propHAlign,
35342 vAlign: propVAlign,
35343 lineWrap: propDisableLineWrap,
35344 }), inheritedHeader = _e.header, hAlign = _e.hAlign, vAlign = _e.vAlign, lineWrap = _e.lineWrap;
35345 var header = propHeader !== null && propHeader !== void 0 ? propHeader : inheritedHeader;
35346 var footer = useTableFooter();
35347 var sticky = useSticky(propSticky);
35348 var isStickyCell = propSticky === "cell" || (!header && sticky);
35349 var isStickyHeader = propSticky === "header";
35350 var isStickyFooter = sticky && footer;
35351 var isStickyFooterCell = isStickyFooter && (propColSpan === "100%" || propColSpan === 0);
35352 var isStickyAbove = propSticky === "header-cell" || isStickyFooterCell;
35353 var scope = propScope;
35354 if (!scope && header) {
35355 scope = !inheritedHeader && propHeader ? "row" : "col";
35356 }
35357 var Component = header ? "th" : "td";
35358 return (React__default.createElement(Component, __assign$gI({}, props, { ref: ref, id: id, "aria-sort": sortOrder === "none" ? undefined : sortOrder, colSpan: colSpan, className: classnames(block$1c((_b = {
35359 grow: grow,
35360 header: header,
35361 sticky: sticky,
35362 "sticky-header": (header && sticky && propSticky !== "cell") ||
35363 isStickyHeader ||
35364 isStickyAbove,
35365 "sticky-cell": isStickyCell || isStickyAbove || isStickyFooterCell,
35366 "sticky-footer": isStickyFooter,
35367 "sticky-above": isStickyAbove
35368 },
35369 _b[hAlign] = hAlign !== "left",
35370 _b[vAlign] = vAlign !== "middle",
35371 _b.vertical = vAlign !== "middle",
35372 _b["no-wrap"] = !lineWrap,
35373 _b.padded = !isNoPadding && lineWrap === "padded",
35374 _b["no-padding"] = isNoPadding,
35375 _b)), className), scope: scope }),
35376 React__default.createElement(TableCellContent, { id: id ? id + "-sort" : undefined, icon: sortIcon, iconAfter: sortIconAfter, sortOrder: sortOrder, rotated: sortIconRotated }, children)));
35377 });
35378 {
35379 try {
35380 var PropTypes$1V = require("prop-types");
35381 TableCell.propTypes = {
35382 "aria-sort": PropTypes$1V.oneOf([
35383 "ascending",
35384 "descending",
35385 "none",
35386 "other",
35387 ]),
35388 id: PropTypes$1V.string,
35389 colSpan: PropTypes$1V.oneOfType([
35390 PropTypes$1V.number,
35391 PropTypes$1V.oneOf(["100%"]),
35392 ]),
35393 className: PropTypes$1V.string,
35394 scope: PropTypes$1V.oneOf(["row", "col", "rowgroup", "colgroup"]),
35395 grow: PropTypes$1V.bool,
35396 hAlign: PropTypes$1V.oneOf(["left", "center", "right"]),
35397 vAlign: PropTypes$1V.oneOf(["top", "middle", "bottom"]),
35398 header: PropTypes$1V.bool,
35399 lineWrap: PropTypes$1V.oneOfType([
35400 PropTypes$1V.bool,
35401 PropTypes$1V.oneOf(["padded"]),
35402 ]),
35403 sortIcon: PropTypes$1V.node,
35404 sortIconAfter: PropTypes$1V.bool,
35405 sortIconRotated: PropTypes$1V.bool,
35406 disablePadding: PropTypes$1V.bool,
35407 children: PropTypes$1V.node,
35408 sticky: PropTypes$1V.oneOfType([
35409 PropTypes$1V.bool,
35410 PropTypes$1V.oneOf(["header", "cell", "header-cell"]),
35411 ]),
35412 };
35413 }
35414 catch (e) { }
35415 }
35416
35417 var __assign$gJ = (undefined && undefined.__assign) || function () {
35418 __assign$gJ = Object.assign || function(t) {
35419 for (var s, i = 1, n = arguments.length; i < n; i++) {
35420 s = arguments[i];
35421 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35422 t[p] = s[p];
35423 }
35424 return t;
35425 };
35426 return __assign$gJ.apply(this, arguments);
35427 };
35428 var __rest$1R = (undefined && undefined.__rest) || function (s, e) {
35429 var t = {};
35430 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35431 t[p] = s[p];
35432 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35433 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35434 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35435 t[p[i]] = s[p[i]];
35436 }
35437 return t;
35438 };
35439 /**
35440 * This component is really just a simple wrapper for applying the `<caption>`
35441 * typography styles and probably doesn't have much real use if you don't use
35442 * captions.
35443 */
35444 var Caption = React.forwardRef(function Caption(_a, ref) {
35445 var className = _a.className, children = _a.children, props = __rest$1R(_a, ["className", "children"]);
35446 return (React__default.createElement("caption", __assign$gJ({}, props, { ref: ref, className: classnames("rmd-caption", className) }), children));
35447 });
35448 {
35449 try {
35450 var PropTypes$1W = require("prop-types");
35451 Caption.propTypes = {
35452 className: PropTypes$1W.string,
35453 children: PropTypes$1W.node,
35454 };
35455 }
35456 catch (e) { }
35457 }
35458
35459 var __assign$gK = (undefined && undefined.__assign) || function () {
35460 __assign$gK = Object.assign || function(t) {
35461 for (var s, i = 1, n = arguments.length; i < n; i++) {
35462 s = arguments[i];
35463 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35464 t[p] = s[p];
35465 }
35466 return t;
35467 };
35468 return __assign$gK.apply(this, arguments);
35469 };
35470 var __rest$1S = (undefined && undefined.__rest) || function (s, e) {
35471 var t = {};
35472 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35473 t[p] = s[p];
35474 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35475 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35476 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35477 t[p[i]] = s[p[i]];
35478 }
35479 return t;
35480 };
35481 var DEFAULT_ARIA_LABEL = "Toggle Row Selection";
35482 /**
35483 * This is a simple wrapper for the `Checkbox` component that allows you to
35484 * render a nicely styled `Checkbox` within a `TableCell` element. This will
35485 * mostly just remove the additional padding applied and default an `aria-label`
35486 * since you normally don't want a checkbox with a label within a table since
35487 * it's more for selection.
35488 */
35489 var TableCheckbox = React.forwardRef(function TableCheckbox(_a, ref) {
35490 var cellId = _a.cellId, className = _a.className, id = _a.id, ariaLabel = _a["aria-label"], ariaLabelledBy = _a["aria-labelledby"], ariaChecked = _a["aria-checked"], ariaControls = _a["aria-controls"], checkboxRef = _a.checkboxRef, checkboxStyle = _a.checkboxStyle, checkboxClassName = _a.checkboxClassName, icon = _a.icon, iconStyle = _a.iconStyle, iconClassName = _a.iconClassName, toggleStyle = _a.toggleStyle, toggleClassName = _a.toggleClassName, disableIconOverlay = _a.disableIconOverlay, name = _a.name, value = _a.value, checked = _a.checked, onChange = _a.onChange, defaultChecked = _a.defaultChecked, indeterminate = _a.indeterminate, props = __rest$1S(_a, ["cellId", "className", "id", "aria-label", "aria-labelledby", "aria-checked", "aria-controls", "checkboxRef", "checkboxStyle", "checkboxClassName", "icon", "iconStyle", "iconClassName", "toggleStyle", "toggleClassName", "disableIconOverlay", "name", "value", "checked", "onChange", "defaultChecked", "indeterminate"]);
35491 return (React__default.createElement(TableCell, __assign$gK({}, props, { ref: ref, id: cellId, header: false, className: classnames("rmd-table-cell--checkbox", className) }),
35492 React__default.createElement(Checkbox, { id: id, "aria-label": (ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : ariaLabelledBy) ? undefined : DEFAULT_ARIA_LABEL, "aria-labelledby": ariaLabelledBy, "aria-checked": ariaChecked, "aria-controls": ariaControls, ref: checkboxRef, style: checkboxStyle, indeterminate: indeterminate, className: checkboxClassName, icon: icon, iconStyle: iconStyle, iconClassName: iconClassName, toggleStyle: toggleStyle, toggleClassName: toggleClassName, disableIconOverlay: disableIconOverlay, name: name, value: value, checked: checked, onChange: onChange, defaultChecked: defaultChecked })));
35493 });
35494 {
35495 try {
35496 var PropTypes$1X = require("prop-types");
35497 TableCheckbox.propTypes = {
35498 id: PropTypes$1X.string.isRequired,
35499 className: PropTypes$1X.string,
35500 "aria-label": PropTypes$1X.string,
35501 "aria-labelledby": PropTypes$1X.string,
35502 "aria-checked": PropTypes$1X.string,
35503 "aria-controls": PropTypes$1X.string,
35504 checkboxRef: PropTypes$1X.oneOfType([PropTypes$1X.func, PropTypes$1X.object]),
35505 checkboxStyle: PropTypes$1X.object,
35506 checkboxClassName: PropTypes$1X.string,
35507 icon: PropTypes$1X.node,
35508 iconStyle: PropTypes$1X.object,
35509 iconClassName: PropTypes$1X.string,
35510 toggleStyle: PropTypes$1X.object,
35511 toggleClassName: PropTypes$1X.string,
35512 disableIconOverlay: PropTypes$1X.bool,
35513 name: PropTypes$1X.string,
35514 value: PropTypes$1X.string,
35515 checked: PropTypes$1X.bool,
35516 defaultChecked: PropTypes$1X.bool,
35517 onChange: PropTypes$1X.func,
35518 cellId: PropTypes$1X.string,
35519 indeterminate: PropTypes$1X.bool,
35520 };
35521 }
35522 catch (e) { }
35523 }
35524
35525 var __assign$gL = (undefined && undefined.__assign) || function () {
35526 __assign$gL = Object.assign || function(t) {
35527 for (var s, i = 1, n = arguments.length; i < n; i++) {
35528 s = arguments[i];
35529 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35530 t[p] = s[p];
35531 }
35532 return t;
35533 };
35534 return __assign$gL.apply(this, arguments);
35535 };
35536 var TAB_WIDTH_VAR = "--rmd-tab-width";
35537 var TAB_OFFSET_VAR = "--rmd-tab-offset";
35538 var getActiveTab = function (itemRefs, activeIndex) {
35539 return (itemRefs[activeIndex] && itemRefs[activeIndex].current) || null;
35540 };
35541 /**
35542 * This hook will merge the provided style object along with the required css
35543 * variables for the active tab underline moving to the correct location. The
35544 * indicator will be updated to be the same width as the tab along with offset
35545 * by all the tabs' sizes.
35546 *
35547 * @private
35548 */
35549 function useTabIndicatorStyle(_a) {
35550 var style = _a.style, ref = _a.ref, align = _a.align, itemRefs = _a.itemRefs, totalTabs = _a.totalTabs, activeIndex = _a.activeIndex;
35551 var _b = React.useState(function () {
35552 var _a;
35553 var tabWidth = 100 / totalTabs + "%";
35554 return _a = {},
35555 _a[TAB_WIDTH_VAR] = tabWidth,
35556 _a[TAB_OFFSET_VAR] = "calc(" + activeIndex + " * " + tabWidth + ")",
35557 _a;
35558 }), cssVars = _b[0], setCSSVars = _b[1];
35559 var prevCSSVars = React.useRef(cssVars);
35560 var updateCSSVars = React.useCallback(function (itemRefs, activeIndex) {
35561 var _a;
35562 var activeTab = getActiveTab(itemRefs, activeIndex);
35563 if (!activeTab) {
35564 return;
35565 }
35566 var nextCSSVars = (_a = {},
35567 _a[TAB_WIDTH_VAR] = activeTab.offsetWidth + "px",
35568 _a[TAB_OFFSET_VAR] = activeTab.offsetLeft + "px",
35569 _a);
35570 var cssVars = prevCSSVars.current;
35571 if (cssVars[TAB_WIDTH_VAR] !== nextCSSVars[TAB_WIDTH_VAR] ||
35572 cssVars[TAB_OFFSET_VAR] !== nextCSSVars[TAB_OFFSET_VAR]) {
35573 prevCSSVars.current = nextCSSVars;
35574 setCSSVars(nextCSSVars);
35575 }
35576 }, []);
35577 React.useEffect(function () {
35578 updateCSSVars(itemRefs, activeIndex);
35579 // has to also be triggered for align changes since the indicator offset
35580 // will be incorrect for that.
35581 }, [activeIndex, itemRefs, updateCSSVars, align]);
35582 var tabsRef = React.useRef(null);
35583 var mergedRef = React.useCallback(function (instance) {
35584 applyRef(instance, ref);
35585 tabsRef.current = instance;
35586 }, [ref]);
35587 useResizeObserver({
35588 target: tabsRef,
35589 onResize: function () {
35590 // whenever the tabs container element is resized, it _probably_ means
35591 // that the tabs will be resized or moved. this means the indicator will
35592 // be in the wrong place so we need to fix it here.
35593 updateCSSVars(itemRefs, activeIndex);
35594 },
35595 });
35596 // TODO: Look into removing this resize observer. This is only required if
35597 // someone manually updates the width of the tab (dev utils) or if the width
35598 // was not changed due to the tabs container element resizing (iffy)
35599 useResizeObserver({
35600 target: function () { return getActiveTab(itemRefs, activeIndex); },
35601 onResize: function () {
35602 updateCSSVars(itemRefs, activeIndex);
35603 },
35604 });
35605 var mergedStyle = React.useMemo(function () { return (__assign$gL(__assign$gL({}, style), cssVars)); }, [
35606 style,
35607 cssVars,
35608 ]);
35609 return [mergedStyle, mergedRef, tabsRef];
35610 }
35611
35612 var __assign$gM = (undefined && undefined.__assign) || function () {
35613 __assign$gM = Object.assign || function(t) {
35614 for (var s, i = 1, n = arguments.length; i < n; i++) {
35615 s = arguments[i];
35616 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35617 t[p] = s[p];
35618 }
35619 return t;
35620 };
35621 return __assign$gM.apply(this, arguments);
35622 };
35623 /**
35624 * @private
35625 */
35626 function useTabsMovement(_a) {
35627 var onClick = _a.onClick, onKeyDown = _a.onKeyDown, children = _a.children, automatic = _a.automatic, horizontal = _a.horizontal, activeIndex = _a.activeIndex, onActiveIndexChange = _a.onActiveIndexChange;
35628 // first filter out all "nulled" or falsish elements since it's possible to do:
35629 // {!thing && <Tab />}
35630 var tabs = React.useMemo(function () { return React.Children.toArray(children).filter(Boolean); }, [
35631 children,
35632 ]);
35633 // now filter out any other invalid elements (text nodes for some reason) and
35634 // disabled tabs since they shouldn't be keyboard focusable
35635 var visibleTabs = React.useMemo(function () {
35636 return tabs.filter(function (child) { return React.isValidElement(child) && !child.props.disabled; });
35637 }, [tabs]);
35638 var _b = React.useState(activeIndex), focusedIndex = _b[0], setFocusedIndex = _b[1];
35639 React.useEffect(function () {
35640 setFocusedIndex(activeIndex);
35641 }, [activeIndex]);
35642 var _c = useKeyboardMovement(__assign$gM(__assign$gM({}, (horizontal
35643 ? HORIZONTAL_TABS
35644 : VERTICAL_TABS)), { onKeyDown: onKeyDown,
35645 focusedIndex: focusedIndex, items: visibleTabs, onChange: function (_a) {
35646 var index = _a.index;
35647 if (index === -1) {
35648 return;
35649 }
35650 if (automatic) {
35651 onActiveIndexChange(index);
35652 }
35653 var item = itemRefs[index] && itemRefs[index].current;
35654 if (item) {
35655 item.focus();
35656 }
35657 setFocusedIndex(index);
35658 } })), itemRefs = _c[0], handleKeyDown = _c[1];
35659 var handleClick = React.useCallback(function (event) {
35660 if (onClick) {
35661 onClick(event);
35662 }
35663 var target = event.target && event.target.closest("button");
35664 if (!target) {
35665 return;
35666 }
35667 var index = itemRefs.findIndex(function (ref) { return ref.current === target; });
35668 if (activeIndex !== index) {
35669 onActiveIndexChange(index);
35670 }
35671 }, [activeIndex, itemRefs, onActiveIndexChange, onClick]);
35672 return {
35673 tabs: tabs,
35674 itemRefs: itemRefs,
35675 handleClick: handleClick,
35676 handleKeyDown: handleKeyDown,
35677 };
35678 }
35679
35680 var __assign$gN = (undefined && undefined.__assign) || function () {
35681 __assign$gN = Object.assign || function(t) {
35682 for (var s, i = 1, n = arguments.length; i < n; i++) {
35683 s = arguments[i];
35684 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35685 t[p] = s[p];
35686 }
35687 return t;
35688 };
35689 return __assign$gN.apply(this, arguments);
35690 };
35691 var __rest$1T = (undefined && undefined.__rest) || function (s, e) {
35692 var t = {};
35693 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35694 t[p] = s[p];
35695 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35696 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35697 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35698 t[p[i]] = s[p[i]];
35699 }
35700 return t;
35701 };
35702 var block$1d = bem("rmd-tabs");
35703 /**
35704 * The `TabsList` component is the container for all the individual `Tab`s that
35705 * should be rendered. This handles adding an active indicator underneath the
35706 * active tab and animating it to the new location when a new tab becomes
35707 * active. It also handles the ability update which tab is selected when it has
35708 * been clicked or updated with keyboard movement.
35709 *
35710 * This should probably not be used outside of this package unless a custom
35711 * implementation is desired.
35712 */
35713 var TabsList = React.forwardRef(function TabsList(_a, forwardedRef) {
35714 var _b;
35715 var style = _a.style, className = _a.className, onClick = _a.onClick, onKeyDown = _a.onKeyDown, children = _a.children, activeIndex = _a.activeIndex, _c = _a.align, align = _c === void 0 ? "left" : _c, _d = _a.automatic, automatic = _d === void 0 ? false : _d, _e = _a.padded, padded = _e === void 0 ? false : _e, _f = _a.orientation, orientation = _f === void 0 ? "horizontal" : _f, onActiveIndexChange = _a.onActiveIndexChange, _g = _a.disableTransition, disableTransition = _g === void 0 ? false : _g, props = __rest$1T(_a, ["style", "className", "onClick", "onKeyDown", "children", "activeIndex", "align", "automatic", "padded", "orientation", "onActiveIndexChange", "disableTransition"]);
35716 var horizontal = orientation === "horizontal";
35717 var _h = useTabsMovement({
35718 onClick: onClick,
35719 onKeyDown: onKeyDown,
35720 children: children,
35721 horizontal: horizontal,
35722 activeIndex: activeIndex,
35723 onActiveIndexChange: onActiveIndexChange,
35724 automatic: automatic,
35725 }), tabs = _h.tabs, itemRefs = _h.itemRefs, handleClick = _h.handleClick, handleKeyDown = _h.handleKeyDown;
35726 var _j = useTabIndicatorStyle({
35727 style: style,
35728 ref: forwardedRef,
35729 align: align,
35730 itemRefs: itemRefs,
35731 totalTabs: tabs.length,
35732 activeIndex: activeIndex,
35733 }), mergedStyle = _j[0], ref = _j[1], tabsRef = _j[2];
35734 var isKeyboard = useIsUserInteractionMode("keyboard");
35735 var prevActiveIndex = React.useRef(activeIndex);
35736 React.useEffect(function () {
35737 var tabs = tabsRef.current;
35738 var tabRef = itemRefs[activeIndex] && itemRefs[activeIndex].current;
35739 var incrementing = prevActiveIndex.current < activeIndex;
35740 prevActiveIndex.current = activeIndex;
35741 if (!tabs || !tabRef) {
35742 return;
35743 }
35744 var currentX = tabs.scrollLeft + tabs.offsetWidth;
35745 var tabLeft = tabRef.offsetLeft;
35746 var tabWidth = tabRef.offsetWidth;
35747 if (incrementing && currentX < tabLeft + tabWidth) {
35748 tabs.scrollLeft = tabLeft - tabWidth;
35749 }
35750 else if (!incrementing && tabs.scrollLeft > tabLeft) {
35751 tabs.scrollLeft = tabLeft;
35752 }
35753 // don't want this to trigger on itemRefs or tabsRef changes since those
35754 // have a chance of updating each render.
35755 // eslint-disable-next-line react-hooks/exhaustive-deps
35756 }, [activeIndex]);
35757 return (React__default.createElement("div", __assign$gN({}, props, { "aria-orientation": orientation, style: mergedStyle, role: "tablist", className: classnames(block$1d((_b = {},
35758 _b[align] = true,
35759 _b.padded = padded,
35760 _b.vertical = !horizontal,
35761 _b.animate = !disableTransition && (!automatic || !isKeyboard),
35762 _b)), className), ref: ref, onClick: handleClick, onKeyDown: handleKeyDown }), React.Children.map(tabs, function (child, i) {
35763 if (!React.isValidElement(child)) {
35764 return child;
35765 }
35766 var tab = React.Children.only(child);
35767 var ref = itemRefs[i];
35768 if (tab.props.ref) {
35769 ref = function (instance) {
35770 itemRefs[i].current = instance;
35771 applyRef(instance, tab.props.ref);
35772 };
35773 }
35774 return React.cloneElement(tab, { ref: ref });
35775 })));
35776 });
35777 {
35778 try {
35779 var PropTypes$1Y = require("prop-types");
35780 TabsList.propTypes = {
35781 style: PropTypes$1Y.object,
35782 className: PropTypes$1Y.string,
35783 children: PropTypes$1Y.node,
35784 onClick: PropTypes$1Y.func,
35785 onKeyDown: PropTypes$1Y.func,
35786 align: PropTypes$1Y.oneOf(["left", "center", "right"]),
35787 automatic: PropTypes$1Y.bool,
35788 padded: PropTypes$1Y.bool,
35789 orientation: PropTypes$1Y.oneOf(["horizontal", "vertical"]),
35790 activeIndex: PropTypes$1Y.number.isRequired,
35791 onActiveIndexChange: PropTypes$1Y.func.isRequired,
35792 disableTransition: PropTypes$1Y.bool,
35793 };
35794 }
35795 catch (e) { }
35796 }
35797
35798 var __assign$gO = (undefined && undefined.__assign) || function () {
35799 __assign$gO = Object.assign || function(t) {
35800 for (var s, i = 1, n = arguments.length; i < n; i++) {
35801 s = arguments[i];
35802 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35803 t[p] = s[p];
35804 }
35805 return t;
35806 };
35807 return __assign$gO.apply(this, arguments);
35808 };
35809 var __rest$1U = (undefined && undefined.__rest) || function (s, e) {
35810 var t = {};
35811 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35812 t[p] = s[p];
35813 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35814 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35815 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35816 t[p[i]] = s[p[i]];
35817 }
35818 return t;
35819 };
35820 var block$1e = bem("rmd-tab");
35821 /**
35822 * The `Tab` is a low-level component that just renders an accessible tab widget
35823 * along with some general styles and an optional icon.
35824 */
35825 var Tab = React.forwardRef(function Tab(_a, ref) {
35826 var propClassName = _a.className, contentStyle = _a.contentStyle, contentClassName = _a.contentClassName, _b = _a.disabled, disabled = _b === void 0 ? false : _b, icon = _a.icon, _c = _a.stacked, stacked = _c === void 0 ? false : _c, _d = _a.iconAfter, iconAfter = _d === void 0 ? false : _d, children = _a.children, active = _a.active, panelId = _a.panelId, disableRipple = _a.disableRipple, disableProgrammaticRipple = _a.disableProgrammaticRipple, rippleTimeout = _a.rippleTimeout, rippleClassNames = _a.rippleClassNames, rippleClassName = _a.rippleClassName, rippleContainerClassName = _a.rippleContainerClassName, enablePressedAndRipple = _a.enablePressedAndRipple, props = __rest$1U(_a, ["className", "contentStyle", "contentClassName", "disabled", "icon", "stacked", "iconAfter", "children", "active", "panelId", "disableRipple", "disableProgrammaticRipple", "rippleTimeout", "rippleClassNames", "rippleClassName", "rippleContainerClassName", "enablePressedAndRipple"]);
35827 var _e = useInteractionStates({
35828 handlers: props,
35829 className: propClassName,
35830 disabled: disabled,
35831 disableRipple: disableRipple,
35832 disableProgrammaticRipple: disableProgrammaticRipple,
35833 rippleTimeout: rippleTimeout,
35834 rippleClassNames: rippleClassNames,
35835 rippleClassName: rippleClassName,
35836 rippleContainerClassName: rippleContainerClassName,
35837 enablePressedAndRipple: enablePressedAndRipple,
35838 }), ripples = _e.ripples, className = _e.className, handlers = _e.handlers;
35839 return (React__default.createElement("button", __assign$gO({}, props, handlers, { ref: ref, "aria-selected": active, "aria-controls": panelId, type: "button", role: "tab", disabled: disabled, className: classnames(block$1e({ active: active, stacked: icon && stacked }), className), tabIndex: active ? undefined : -1 }),
35840 React__default.createElement(TextIconSpacing, { icon: icon, stacked: stacked, iconAfter: iconAfter },
35841 React__default.createElement("span", { style: contentStyle, className: classnames(block$1e("content"), contentClassName) }, children)),
35842 ripples));
35843 });
35844 {
35845 try {
35846 var PropTypes$1Z = require("prop-types");
35847 Tab.propTypes = {
35848 id: PropTypes$1Z.string.isRequired,
35849 panelId: PropTypes$1Z.string,
35850 active: PropTypes$1Z.bool.isRequired,
35851 className: PropTypes$1Z.string,
35852 contentStyle: PropTypes$1Z.object,
35853 contentClassName: PropTypes$1Z.string,
35854 children: PropTypes$1Z.node,
35855 icon: PropTypes$1Z.node,
35856 stacked: PropTypes$1Z.bool,
35857 iconAfter: PropTypes$1Z.bool,
35858 disabled: PropTypes$1Z.bool,
35859 onKeyDown: PropTypes$1Z.func,
35860 disableRipple: PropTypes$1Z.bool,
35861 disableProgrammaticRipple: PropTypes$1Z.bool,
35862 rippleTimeout: PropTypes$1Z.oneOfType([
35863 PropTypes$1Z.number,
35864 PropTypes$1Z.shape({
35865 appear: PropTypes$1Z.number,
35866 enter: PropTypes$1Z.number,
35867 exit: PropTypes$1Z.number,
35868 }),
35869 ]),
35870 rippleClassNames: PropTypes$1Z.oneOfType([
35871 PropTypes$1Z.string,
35872 PropTypes$1Z.shape({
35873 appear: PropTypes$1Z.string,
35874 appearActive: PropTypes$1Z.string,
35875 enter: PropTypes$1Z.string,
35876 enterActive: PropTypes$1Z.string,
35877 enterDone: PropTypes$1Z.string,
35878 exit: PropTypes$1Z.string,
35879 exitActive: PropTypes$1Z.string,
35880 exitDone: PropTypes$1Z.string,
35881 }),
35882 ]),
35883 rippleClassName: PropTypes$1Z.string,
35884 rippleContainerClassName: PropTypes$1Z.string,
35885 enablePressedAndRipple: PropTypes$1Z.bool,
35886 };
35887 }
35888 catch (e) { }
35889 }
35890
35891 var __assign$gP = (undefined && undefined.__assign) || function () {
35892 __assign$gP = Object.assign || function(t) {
35893 for (var s, i = 1, n = arguments.length; i < n; i++) {
35894 s = arguments[i];
35895 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35896 t[p] = s[p];
35897 }
35898 return t;
35899 };
35900 return __assign$gP.apply(this, arguments);
35901 };
35902 var context$7 = React.createContext({
35903 tabsId: "tabs",
35904 activeIndex: 0,
35905 onActiveIndexChange: function () { },
35906 tabs: [],
35907 });
35908 /**
35909 * This hook returns the current "state" for the tabs which can be useful if you
35910 * need additional control or access to the tabs behavior.
35911 */
35912 function useTabs() {
35913 return React.useContext(context$7);
35914 }
35915 var Provider$4 = context$7.Provider;
35916 /**
35917 * The `TabsManager` is used to configure your `Tabs` component and handle some
35918 * of the default behavior such as:
35919 *
35920 * - controlling the `activeIndex`
35921 * - general tab configuration
35922 * - callbacks when the tab has changed
35923 * - providing an `id` prefix for all tabs for simplicity
35924 */
35925 function TabsManager(_a) {
35926 var tabsId = _a.tabsId, _b = _a.defaultActiveIndex, defaultActiveIndex = _b === void 0 ? 0 : _b, propActiveIndex = _a.activeIndex, onActiveIndexChange = _a.onActiveIndexChange, tabs = _a.tabs, _c = _a.stacked, stacked = _c === void 0 ? false : _c, _d = _a.iconAfter, iconAfter = _d === void 0 ? false : _d, children = _a.children;
35927 var _e = React.useState(defaultActiveIndex), localActiveIndex = _e[0], setActiveIndex = _e[1];
35928 var handleActiveIndexChange = React.useCallback(function (activeIndex) {
35929 if (onActiveIndexChange) {
35930 onActiveIndexChange(activeIndex);
35931 }
35932 setActiveIndex(activeIndex);
35933 }, [onActiveIndexChange]);
35934 var activeIndex = typeof propActiveIndex === "number" ? propActiveIndex : localActiveIndex;
35935 var updateActiveIndex = typeof propActiveIndex === "number"
35936 ? onActiveIndexChange
35937 : handleActiveIndexChange;
35938 var value = React.useMemo(function () { return ({
35939 activeIndex: activeIndex,
35940 onActiveIndexChange: updateActiveIndex,
35941 tabs: tabs.map(function (config, i) {
35942 var tab;
35943 if (typeof config === "string" || React.isValidElement(config)) {
35944 tab = { children: config };
35945 }
35946 else {
35947 tab = config;
35948 }
35949 return __assign$gP(__assign$gP({}, tab), { id: tab.id || tabsId + "-tab-" + (i + 1), panelId: activeIndex === i
35950 ? tabsId + "-panel-" + (activeIndex + 1)
35951 : undefined, stacked: typeof tab.stacked === "boolean" ? tab.stacked : stacked, iconAfter: typeof tab.iconAfter === "boolean" ? tab.iconAfter : iconAfter });
35952 }),
35953 tabsId: tabsId,
35954 }); }, [activeIndex, iconAfter, stacked, tabs, tabsId, updateActiveIndex]);
35955 return React__default.createElement(Provider$4, { value: value }, children);
35956 }
35957
35958 var __assign$gQ = (undefined && undefined.__assign) || function () {
35959 __assign$gQ = Object.assign || function(t) {
35960 for (var s, i = 1, n = arguments.length; i < n; i++) {
35961 s = arguments[i];
35962 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35963 t[p] = s[p];
35964 }
35965 return t;
35966 };
35967 return __assign$gQ.apply(this, arguments);
35968 };
35969 var __rest$1V = (undefined && undefined.__rest) || function (s, e) {
35970 var t = {};
35971 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35972 t[p] = s[p];
35973 if (s != null && typeof Object.getOwnPropertySymbols === "function")
35974 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35975 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35976 t[p[i]] = s[p[i]];
35977 }
35978 return t;
35979 };
35980 /**
35981 * The `Tabs` component is used to render all the configured `tabs` from the
35982 * parent `TabsManager` component inside of the `TabsList`.
35983 */
35984 var Tabs = React.forwardRef(function Tabs(props, ref) {
35985 var _a = useTabs(), tabsId = _a.tabsId, tabs = _a.tabs, activeIndex = _a.activeIndex, onActiveIndexChange = _a.onActiveIndexChange;
35986 return (React__default.createElement(TabsList, __assign$gQ({}, props, { id: tabsId, ref: ref, activeIndex: activeIndex, onActiveIndexChange: onActiveIndexChange }), tabs.map(function (_a, index) {
35987 var id = _a.id, config = __rest$1V(_a, ["id"]);
35988 return (React__default.createElement(Tab, __assign$gQ({}, config, { id: id, key: id, active: activeIndex === index })));
35989 })));
35990 });
35991
35992 function _assertThisInitialized(self) {
35993 if (self === void 0) {
35994 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
35995 }
35996
35997 return self;
35998 }
35999
36000 /**
36001 * Given `this.props.children`, return an object mapping key to child.
36002 *
36003 * @param {*} children `this.props.children`
36004 * @return {object} Mapping of key to child
36005 */
36006
36007 function getChildMapping(children, mapFn) {
36008 var mapper = function mapper(child) {
36009 return mapFn && React.isValidElement(child) ? mapFn(child) : child;
36010 };
36011
36012 var result = Object.create(null);
36013 if (children) React.Children.map(children, function (c) {
36014 return c;
36015 }).forEach(function (child) {
36016 // run the map function here instead so that the key is the computed one
36017 result[child.key] = mapper(child);
36018 });
36019 return result;
36020 }
36021 /**
36022 * When you're adding or removing children some may be added or removed in the
36023 * same render pass. We want to show *both* since we want to simultaneously
36024 * animate elements in and out. This function takes a previous set of keys
36025 * and a new set of keys and merges them with its best guess of the correct
36026 * ordering. In the future we may expose some of the utilities in
36027 * ReactMultiChild to make this easy, but for now React itself does not
36028 * directly have this concept of the union of prevChildren and nextChildren
36029 * so we implement it here.
36030 *
36031 * @param {object} prev prev children as returned from
36032 * `ReactTransitionChildMapping.getChildMapping()`.
36033 * @param {object} next next children as returned from
36034 * `ReactTransitionChildMapping.getChildMapping()`.
36035 * @return {object} a key set that contains all keys in `prev` and all keys
36036 * in `next` in a reasonable order.
36037 */
36038
36039 function mergeChildMappings(prev, next) {
36040 prev = prev || {};
36041 next = next || {};
36042
36043 function getValueForKey(key) {
36044 return key in next ? next[key] : prev[key];
36045 } // For each key of `next`, the list of keys to insert before that key in
36046 // the combined list
36047
36048
36049 var nextKeysPending = Object.create(null);
36050 var pendingKeys = [];
36051
36052 for (var prevKey in prev) {
36053 if (prevKey in next) {
36054 if (pendingKeys.length) {
36055 nextKeysPending[prevKey] = pendingKeys;
36056 pendingKeys = [];
36057 }
36058 } else {
36059 pendingKeys.push(prevKey);
36060 }
36061 }
36062
36063 var i;
36064 var childMapping = {};
36065
36066 for (var nextKey in next) {
36067 if (nextKeysPending[nextKey]) {
36068 for (i = 0; i < nextKeysPending[nextKey].length; i++) {
36069 var pendingNextKey = nextKeysPending[nextKey][i];
36070 childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
36071 }
36072 }
36073
36074 childMapping[nextKey] = getValueForKey(nextKey);
36075 } // Finally, add the keys which didn't appear before any key in `next`
36076
36077
36078 for (i = 0; i < pendingKeys.length; i++) {
36079 childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
36080 }
36081
36082 return childMapping;
36083 }
36084
36085 function getProp(child, prop, props) {
36086 return props[prop] != null ? props[prop] : child.props[prop];
36087 }
36088
36089 function getInitialChildMapping(props, onExited) {
36090 return getChildMapping(props.children, function (child) {
36091 return React.cloneElement(child, {
36092 onExited: onExited.bind(null, child),
36093 in: true,
36094 appear: getProp(child, 'appear', props),
36095 enter: getProp(child, 'enter', props),
36096 exit: getProp(child, 'exit', props)
36097 });
36098 });
36099 }
36100 function getNextChildMapping(nextProps, prevChildMapping, onExited) {
36101 var nextChildMapping = getChildMapping(nextProps.children);
36102 var children = mergeChildMappings(prevChildMapping, nextChildMapping);
36103 Object.keys(children).forEach(function (key) {
36104 var child = children[key];
36105 if (!React.isValidElement(child)) return;
36106 var hasPrev = key in prevChildMapping;
36107 var hasNext = key in nextChildMapping;
36108 var prevChild = prevChildMapping[key];
36109 var isLeaving = React.isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)
36110
36111 if (hasNext && (!hasPrev || isLeaving)) {
36112 // console.log('entering', key)
36113 children[key] = React.cloneElement(child, {
36114 onExited: onExited.bind(null, child),
36115 in: true,
36116 exit: getProp(child, 'exit', nextProps),
36117 enter: getProp(child, 'enter', nextProps)
36118 });
36119 } else if (!hasNext && hasPrev && !isLeaving) {
36120 // item is old (exiting)
36121 // console.log('leaving', key)
36122 children[key] = React.cloneElement(child, {
36123 in: false
36124 });
36125 } else if (hasNext && hasPrev && React.isValidElement(prevChild)) {
36126 // item hasn't changed transition states
36127 // copy over the last transition props;
36128 // console.log('unchanged', key)
36129 children[key] = React.cloneElement(child, {
36130 onExited: onExited.bind(null, child),
36131 in: prevChild.props.in,
36132 exit: getProp(child, 'exit', nextProps),
36133 enter: getProp(child, 'enter', nextProps)
36134 });
36135 }
36136 });
36137 return children;
36138 }
36139
36140 var values = Object.values || function (obj) {
36141 return Object.keys(obj).map(function (k) {
36142 return obj[k];
36143 });
36144 };
36145
36146 var defaultProps$1 = {
36147 component: 'div',
36148 childFactory: function childFactory(child) {
36149 return child;
36150 }
36151 /**
36152 * The `<TransitionGroup>` component manages a set of transition components
36153 * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
36154 * components, `<TransitionGroup>` is a state machine for managing the mounting
36155 * and unmounting of components over time.
36156 *
36157 * Consider the example below. As items are removed or added to the TodoList the
36158 * `in` prop is toggled automatically by the `<TransitionGroup>`.
36159 *
36160 * Note that `<TransitionGroup>` does not define any animation behavior!
36161 * Exactly _how_ a list item animates is up to the individual transition
36162 * component. This means you can mix and match animations across different list
36163 * items.
36164 */
36165
36166 };
36167
36168 var TransitionGroup =
36169 /*#__PURE__*/
36170 function (_React$Component) {
36171 _inheritsLoose(TransitionGroup, _React$Component);
36172
36173 function TransitionGroup(props, context) {
36174 var _this;
36175
36176 _this = _React$Component.call(this, props, context) || this;
36177
36178 var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear
36179
36180
36181 _this.state = {
36182 contextValue: {
36183 isMounting: true
36184 },
36185 handleExited: handleExited,
36186 firstRender: true
36187 };
36188 return _this;
36189 }
36190
36191 var _proto = TransitionGroup.prototype;
36192
36193 _proto.componentDidMount = function componentDidMount() {
36194 this.mounted = true;
36195 this.setState({
36196 contextValue: {
36197 isMounting: false
36198 }
36199 });
36200 };
36201
36202 _proto.componentWillUnmount = function componentWillUnmount() {
36203 this.mounted = false;
36204 };
36205
36206 TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
36207 var prevChildMapping = _ref.children,
36208 handleExited = _ref.handleExited,
36209 firstRender = _ref.firstRender;
36210 return {
36211 children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),
36212 firstRender: false
36213 };
36214 };
36215
36216 _proto.handleExited = function handleExited(child, node) {
36217 var currentChildMapping = getChildMapping(this.props.children);
36218 if (child.key in currentChildMapping) return;
36219
36220 if (child.props.onExited) {
36221 child.props.onExited(node);
36222 }
36223
36224 if (this.mounted) {
36225 this.setState(function (state) {
36226 var children = _extends({}, state.children);
36227
36228 delete children[child.key];
36229 return {
36230 children: children
36231 };
36232 });
36233 }
36234 };
36235
36236 _proto.render = function render() {
36237 var _this$props = this.props,
36238 Component = _this$props.component,
36239 childFactory = _this$props.childFactory,
36240 props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);
36241
36242 var contextValue = this.state.contextValue;
36243 var children = values(this.state.children).map(childFactory);
36244 delete props.appear;
36245 delete props.enter;
36246 delete props.exit;
36247
36248 if (Component === null) {
36249 return React__default.createElement(TransitionGroupContext.Provider, {
36250 value: contextValue
36251 }, children);
36252 }
36253
36254 return React__default.createElement(TransitionGroupContext.Provider, {
36255 value: contextValue
36256 }, React__default.createElement(Component, props, children));
36257 };
36258
36259 return TransitionGroup;
36260 }(React__default.Component);
36261
36262 TransitionGroup.propTypes = {
36263 /**
36264 * `<TransitionGroup>` renders a `<div>` by default. You can change this
36265 * behavior by providing a `component` prop.
36266 * If you use React v16+ and would like to avoid a wrapping `<div>` element
36267 * you can pass in `component={null}`. This is useful if the wrapping div
36268 * borks your css styles.
36269 */
36270 component: propTypes.any,
36271
36272 /**
36273 * A set of `<Transition>` components, that are toggled `in` and out as they
36274 * leave. the `<TransitionGroup>` will inject specific transition props, so
36275 * remember to spread them through if you are wrapping the `<Transition>` as
36276 * with our `<Fade>` example.
36277 *
36278 * While this component is meant for multiple `Transition` or `CSSTransition`
36279 * children, sometimes you may want to have a single transition child with
36280 * content that you want to be transitioned out and in when you change it
36281 * (e.g. routes, images etc.) In that case you can change the `key` prop of
36282 * the transition child as you change its content, this will cause
36283 * `TransitionGroup` to transition the child out and back in.
36284 */
36285 children: propTypes.node,
36286
36287 /**
36288 * A convenience prop that enables or disables appear animations
36289 * for all children. Note that specifying this will override any defaults set
36290 * on individual children Transitions.
36291 */
36292 appear: propTypes.bool,
36293
36294 /**
36295 * A convenience prop that enables or disables enter animations
36296 * for all children. Note that specifying this will override any defaults set
36297 * on individual children Transitions.
36298 */
36299 enter: propTypes.bool,
36300
36301 /**
36302 * A convenience prop that enables or disables exit animations
36303 * for all children. Note that specifying this will override any defaults set
36304 * on individual children Transitions.
36305 */
36306 exit: propTypes.bool,
36307
36308 /**
36309 * You may need to apply reactive updates to a child as it is exiting.
36310 * This is generally done by using `cloneElement` however in the case of an exiting
36311 * child the element has already been removed and not accessible to the consumer.
36312 *
36313 * If you do need to update a child as it leaves you can provide a `childFactory`
36314 * to wrap every child, even the ones that are leaving.
36315 *
36316 * @type Function(child: ReactElement) -> ReactElement
36317 */
36318 childFactory: propTypes.func
36319 } ;
36320 TransitionGroup.defaultProps = defaultProps$1;
36321
36322 /* eslint-disable react/prop-types */
36323 /**
36324 * @private
36325 */
36326 function PanelGroup(_a) {
36327 var persistent = _a.persistent, disableTransition = _a.disableTransition, children = _a.children;
36328 if (persistent) {
36329 return React__default.createElement(React__default.Fragment, null, children);
36330 }
36331 return (React__default.createElement(TransitionGroup, { component: null, appear: !disableTransition, enter: !disableTransition, exit: !disableTransition }, children));
36332 }
36333
36334 var __assign$gR = (undefined && undefined.__assign) || function () {
36335 __assign$gR = Object.assign || function(t) {
36336 for (var s, i = 1, n = arguments.length; i < n; i++) {
36337 s = arguments[i];
36338 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
36339 t[p] = s[p];
36340 }
36341 return t;
36342 };
36343 return __assign$gR.apply(this, arguments);
36344 };
36345 var __rest$1W = (undefined && undefined.__rest) || function (s, e) {
36346 var t = {};
36347 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
36348 t[p] = s[p];
36349 if (s != null && typeof Object.getOwnPropertySymbols === "function")
36350 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
36351 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
36352 t[p[i]] = s[p[i]];
36353 }
36354 return t;
36355 };
36356 var block$1f = bem("rmd-tab-panels");
36357 /**
36358 * This component allows you to control the visibility of the `TabPanel`
36359 * components and animating the next and current panels as needed. This works by
36360 * looping over all the children and getting the current `TabPanel` by the
36361 * `activeIndex`. This is why the children for this component can only be
36362 * `TabPanel` and should not be conditional.
36363 */
36364 var TabPanels = React.forwardRef(function TabPanels(_a, forwardedRef) {
36365 var className = _a.className, children = _a.children, _b = _a.disableScrollFix, disableScrollFix = _b === void 0 ? false : _b, _c = _a.disableTransition, disableTransition = _c === void 0 ? false : _c, _d = _a.persistent, persistent = _d === void 0 ? false : _d, props = __rest$1W(_a, ["className", "children", "disableScrollFix", "disableTransition", "persistent"]);
36366 var _e = useTabs(), tabsId = _e.tabsId, tabs = _e.tabs, activeIndex = _e.activeIndex;
36367 var prevIndex = React.useRef(activeIndex);
36368 var _f = React.useState({
36369 previous: activeIndex,
36370 incrementing: true,
36371 }), _g = _f[0], previous = _g.previous, incrementing = _g.incrementing, setState = _f[1];
36372 // have to set these in refs since changing these might cause mounting
36373 // and unmounting in the Transition group component :/ they should only
36374 // be re-evaluated when the activeIndex changes.
36375 var transitionable = React.useRef(!persistent && !disableTransition);
36376 var animimatable = React.useRef(persistent && !disableTransition);
36377 if (prevIndex.current !== activeIndex) {
36378 prevIndex.current = activeIndex;
36379 transitionable.current = !persistent && !disableTransition;
36380 animimatable.current = persistent && !disableTransition;
36381 }
36382 React.useEffect(function () {
36383 setState(function (_a) {
36384 var previous = _a.previous;
36385 return ({
36386 incrementing: previous < activeIndex,
36387 previous: disableTransition ? activeIndex : previous,
36388 });
36389 });
36390 // this is for only updating the incrementing state and should not be fired
36391 // again if the disableTransition prop is changed
36392 // eslint-disable-next-line react-hooks/exhaustive-deps
36393 }, [activeIndex]);
36394 var onEntered = React.useCallback(function () {
36395 setState(function (_a) {
36396 var incrementing = _a.incrementing;
36397 return ({ incrementing: incrementing, previous: activeIndex });
36398 });
36399 }, [activeIndex]);
36400 var ref = React.useRef(null);
36401 var mergedRef = React.useCallback(function (instance) {
36402 applyRef(instance, forwardedRef);
36403 ref.current = instance;
36404 }, [forwardedRef]);
36405 React.useEffect(function () {
36406 if (!ref.current || disableScrollFix) {
36407 return;
36408 }
36409 ref.current.scrollTop = 0;
36410 // don't want it to be triggered if only the disableScrollFix prop has changed
36411 // since it might be independent from active indexes
36412 // eslint-disable-next-line react-hooks/exhaustive-deps
36413 }, [activeIndex]);
36414 return (React__default.createElement("div", __assign$gR({}, props, { ref: mergedRef, className: classnames(block$1f({
36415 "slide-left": incrementing && !persistent,
36416 "slide-left-persistent": incrementing && persistent,
36417 "slide-right": !incrementing,
36418 }), className) }),
36419 React__default.createElement(PanelGroup, { persistent: persistent, disableTransition: disableTransition }, React.Children.map(children, function (child, index) {
36420 if (!persistent && index !== activeIndex) {
36421 return null;
36422 }
36423 if (!React.isValidElement(child)) {
36424 return child;
36425 }
36426 var panel = React.Children.only(child);
36427 var labelledBy = panel.props["aria-labelledby"];
36428 if (!labelledBy && !panel.props["aria-label"] && tabs[index]) {
36429 // generally guaranteed to be defined by this point since the TabsManager
36430 // will add ids if missing.
36431 labelledBy = tabs[index].id;
36432 }
36433 var key = panel.key || undefined;
36434 if (index === activeIndex && transitionable.current) {
36435 key = "" + activeIndex;
36436 }
36437 var animateIn = panel.props.in;
36438 if (animimatable.current) {
36439 // when the persistent flag is in, I have too handle the TransitionGroup
36440 // `in` behavior manually based on activeIndex
36441 animateIn = index === activeIndex;
36442 }
36443 var hidden = index !== activeIndex;
36444 if (persistent) {
36445 hidden = hidden && index !== previous;
36446 }
36447 return React.cloneElement(child, {
36448 key: key,
36449 in: animateIn,
36450 id: tabsId + "-panel-" + (index + 1),
36451 "aria-labelledby": labelledBy,
36452 hidden: hidden,
36453 onEntered: disableTransition ? undefined : onEntered,
36454 });
36455 }))));
36456 });
36457 {
36458 try {
36459 var PropTypes$1_ = require("prop-types");
36460 TabPanels.propTypes = {
36461 className: PropTypes$1_.string,
36462 children: PropTypes$1_.node,
36463 disableScrollFix: PropTypes$1_.bool,
36464 disableTransition: PropTypes$1_.bool,
36465 persistent: PropTypes$1_.bool,
36466 };
36467 }
36468 catch (e) { }
36469 }
36470
36471 var __assign$gS = (undefined && undefined.__assign) || function () {
36472 __assign$gS = Object.assign || function(t) {
36473 for (var s, i = 1, n = arguments.length; i < n; i++) {
36474 s = arguments[i];
36475 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
36476 t[p] = s[p];
36477 }
36478 return t;
36479 };
36480 return __assign$gS.apply(this, arguments);
36481 };
36482 var __rest$1X = (undefined && undefined.__rest) || function (s, e) {
36483 var t = {};
36484 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
36485 t[p] = s[p];
36486 if (s != null && typeof Object.getOwnPropertySymbols === "function")
36487 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
36488 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
36489 t[p[i]] = s[p[i]];
36490 }
36491 return t;
36492 };
36493 var block$1g = bem("rmd-tab-panel");
36494 var prefix = "rmd-tab-panel";
36495 var DEFAULT_TABPANEL_CLASSNAMES = {
36496 enter: prefix + "--enter",
36497 enterActive: prefix + "--enter-active " + prefix + "--animate",
36498 exit: prefix + "--exit",
36499 exitActive: prefix + "--exit-active " + prefix + "--animate",
36500 };
36501 /**
36502 * This component renders an accessible tab panel with enter and exit
36503 * animations. This probably should only be used internally as it relies on the
36504 * `TabPanels` component along with the `TransitionGroup` from
36505 * `react-transition-group` to work as expected.
36506 */
36507 var TabPanel = React.forwardRef(function TabPanel(_a, ref) {
36508 var className = _a.className, transitionIn = _a.in, appear = _a.appear, enter = _a.enter, exit = _a.exit, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, _b = _a.timeout, timeout = _b === void 0 ? 150 : _b, _c = _a.classNames, classNames = _c === void 0 ? DEFAULT_TABPANEL_CLASSNAMES : _c, children = _a.children, hidden = _a.hidden, props = __rest$1X(_a, ["className", "in", "appear", "enter", "exit", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "timeout", "classNames", "children", "hidden"]);
36509 return (React__default.createElement(CSSTransition, { in: transitionIn && !hidden, appear: appear, enter: enter, exit: exit, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: timeout, classNames: classNames },
36510 React__default.createElement("div", __assign$gS({}, props, { ref: ref, role: "tabpanel", hidden: hidden, className: classnames(block$1g(), className) }), children)));
36511 });
36512 {
36513 try {
36514 var PropTypes$1$ = require("prop-types");
36515 TabPanel.propTypes = {
36516 className: PropTypes$1$.string,
36517 timeout: PropTypes$1$.oneOfType([
36518 PropTypes$1$.number,
36519 PropTypes$1$.shape({
36520 enter: PropTypes$1$.number,
36521 exit: PropTypes$1$.number,
36522 }),
36523 ]),
36524 in: PropTypes$1$.bool,
36525 appear: PropTypes$1$.bool,
36526 enter: PropTypes$1$.bool,
36527 exit: PropTypes$1$.bool,
36528 onEnter: PropTypes$1$.func,
36529 onEntering: PropTypes$1$.func,
36530 onEntered: PropTypes$1$.func,
36531 onExit: PropTypes$1$.func,
36532 onExiting: PropTypes$1$.func,
36533 onExited: PropTypes$1$.func,
36534 classNames: PropTypes$1$.oneOfType([
36535 PropTypes$1$.string,
36536 PropTypes$1$.shape({
36537 appear: PropTypes$1$.string,
36538 appearActive: PropTypes$1$.string,
36539 enter: PropTypes$1$.string,
36540 enterActive: PropTypes$1$.string,
36541 enterDone: PropTypes$1$.string,
36542 exit: PropTypes$1$.string,
36543 exitActive: PropTypes$1$.string,
36544 exitDone: PropTypes$1$.string,
36545 }),
36546 ]),
36547 hidden: PropTypes$1$.bool,
36548 children: PropTypes$1$.node,
36549 };
36550 }
36551 catch (e) { }
36552 }
36553
36554 exports.ABOVE_CENTER_ANCHOR = ABOVE_CENTER_ANCHOR;
36555 exports.ABOVE_INNER_LEFT_ANCHOR = ABOVE_INNER_LEFT_ANCHOR;
36556 exports.ABOVE_INNER_RIGHT_ANCHOR = ABOVE_INNER_RIGHT_ANCHOR;
36557 exports.ABOVE_LEFT_ANCHOR = ABOVE_LEFT_ANCHOR;
36558 exports.ABOVE_RIGHT_ANCHOR = ABOVE_RIGHT_ANCHOR;
36559 exports.APP_BAR_OFFSET_CLASSNAME = APP_BAR_OFFSET_CLASSNAME;
36560 exports.APP_BAR_OFFSET_DENSE_CLASSNAME = APP_BAR_OFFSET_DENSE_CLASSNAME;
36561 exports.APP_BAR_OFFSET_PROMINENT_CLASSNAME = APP_BAR_OFFSET_PROMINENT_CLASSNAME;
36562 exports.APP_BAR_OFFSET_PROMINENT_DENSE_CLASSNAME = APP_BAR_OFFSET_PROMINENT_DENSE_CLASSNAME;
36563 exports.AcUnitFontIcon = AcUnitFontIcon;
36564 exports.AccessAlarmFontIcon = AccessAlarmFontIcon;
36565 exports.AccessAlarmsFontIcon = AccessAlarmsFontIcon;
36566 exports.AccessTimeFontIcon = AccessTimeFontIcon;
36567 exports.AccessibilityFontIcon = AccessibilityFontIcon;
36568 exports.AccessibleFontIcon = AccessibleFontIcon;
36569 exports.AccountBalanceFontIcon = AccountBalanceFontIcon;
36570 exports.AccountBalanceWalletFontIcon = AccountBalanceWalletFontIcon;
36571 exports.AccountBoxFontIcon = AccountBoxFontIcon;
36572 exports.AccountCircleFontIcon = AccountCircleFontIcon;
36573 exports.AdbFontIcon = AdbFontIcon;
36574 exports.AddAPhotoFontIcon = AddAPhotoFontIcon;
36575 exports.AddAlarmFontIcon = AddAlarmFontIcon;
36576 exports.AddAlertFontIcon = AddAlertFontIcon;
36577 exports.AddBoxFontIcon = AddBoxFontIcon;
36578 exports.AddCircleFontIcon = AddCircleFontIcon;
36579 exports.AddCircleOutlineFontIcon = AddCircleOutlineFontIcon;
36580 exports.AddFontIcon = AddFontIcon;
36581 exports.AddLocationFontIcon = AddLocationFontIcon;
36582 exports.AddMessageContext = AddMessageContext;
36583 exports.AddShoppingCartFontIcon = AddShoppingCartFontIcon;
36584 exports.AddToPhotosFontIcon = AddToPhotosFontIcon;
36585 exports.AddToQueueFontIcon = AddToQueueFontIcon;
36586 exports.AdjustFontIcon = AdjustFontIcon;
36587 exports.AirlineSeatFlatAngledFontIcon = AirlineSeatFlatAngledFontIcon;
36588 exports.AirlineSeatFlatFontIcon = AirlineSeatFlatFontIcon;
36589 exports.AirlineSeatIndividualSuiteFontIcon = AirlineSeatIndividualSuiteFontIcon;
36590 exports.AirlineSeatLegroomExtraFontIcon = AirlineSeatLegroomExtraFontIcon;
36591 exports.AirlineSeatLegroomNormalFontIcon = AirlineSeatLegroomNormalFontIcon;
36592 exports.AirlineSeatLegroomReducedFontIcon = AirlineSeatLegroomReducedFontIcon;
36593 exports.AirlineSeatReclineExtraFontIcon = AirlineSeatReclineExtraFontIcon;
36594 exports.AirlineSeatReclineNormalFontIcon = AirlineSeatReclineNormalFontIcon;
36595 exports.AirplanemodeActiveFontIcon = AirplanemodeActiveFontIcon;
36596 exports.AirplanemodeInactiveFontIcon = AirplanemodeInactiveFontIcon;
36597 exports.AirplayFontIcon = AirplayFontIcon;
36598 exports.AirportShuttleFontIcon = AirportShuttleFontIcon;
36599 exports.AlarmAddFontIcon = AlarmAddFontIcon;
36600 exports.AlarmFontIcon = AlarmFontIcon;
36601 exports.AlarmOffFontIcon = AlarmOffFontIcon;
36602 exports.AlarmOnFontIcon = AlarmOnFontIcon;
36603 exports.AlbumFontIcon = AlbumFontIcon;
36604 exports.AllInclusiveFontIcon = AllInclusiveFontIcon;
36605 exports.AllOutFontIcon = AllOutFontIcon;
36606 exports.AndroidFontIcon = AndroidFontIcon;
36607 exports.AnnouncementFontIcon = AnnouncementFontIcon;
36608 exports.AppBar = AppBar;
36609 exports.AppBarAction = AppBarAction;
36610 exports.AppBarNav = AppBarNav;
36611 exports.AppBarTitle = AppBarTitle;
36612 exports.AppSizeListener = AppSizeListener;
36613 exports.AppsFontIcon = AppsFontIcon;
36614 exports.ArchiveFontIcon = ArchiveFontIcon;
36615 exports.ArrowBackFontIcon = ArrowBackFontIcon;
36616 exports.ArrowDownwardFontIcon = ArrowDownwardFontIcon;
36617 exports.ArrowDropDownCircleFontIcon = ArrowDropDownCircleFontIcon;
36618 exports.ArrowDropDownFontIcon = ArrowDropDownFontIcon;
36619 exports.ArrowDropUpFontIcon = ArrowDropUpFontIcon;
36620 exports.ArrowForwardFontIcon = ArrowForwardFontIcon;
36621 exports.ArrowUpwardFontIcon = ArrowUpwardFontIcon;
36622 exports.ArtTrackFontIcon = ArtTrackFontIcon;
36623 exports.AspectRatioFontIcon = AspectRatioFontIcon;
36624 exports.AssessmentFontIcon = AssessmentFontIcon;
36625 exports.AssignmentFontIcon = AssignmentFontIcon;
36626 exports.AssignmentIndFontIcon = AssignmentIndFontIcon;
36627 exports.AssignmentLateFontIcon = AssignmentLateFontIcon;
36628 exports.AssignmentReturnFontIcon = AssignmentReturnFontIcon;
36629 exports.AssignmentReturnedFontIcon = AssignmentReturnedFontIcon;
36630 exports.AssignmentTurnedInFontIcon = AssignmentTurnedInFontIcon;
36631 exports.AssistantFontIcon = AssistantFontIcon;
36632 exports.AssistantPhotoFontIcon = AssistantPhotoFontIcon;
36633 exports.AsyncSwitch = AsyncSwitch;
36634 exports.AttachFileFontIcon = AttachFileFontIcon;
36635 exports.AttachMoneyFontIcon = AttachMoneyFontIcon;
36636 exports.AttachmentFontIcon = AttachmentFontIcon;
36637 exports.AudiotrackFontIcon = AudiotrackFontIcon;
36638 exports.AutoComplete = AutoComplete;
36639 exports.AutorenewFontIcon = AutorenewFontIcon;
36640 exports.AvTimerFontIcon = AvTimerFontIcon;
36641 exports.Avatar = Avatar;
36642 exports.BELOW_CENTER_ANCHOR = BELOW_CENTER_ANCHOR;
36643 exports.BELOW_INNER_LEFT_ANCHOR = BELOW_INNER_LEFT_ANCHOR;
36644 exports.BELOW_INNER_RIGHT_ANCHOR = BELOW_INNER_RIGHT_ANCHOR;
36645 exports.BELOW_LEFT_ANCHOR = BELOW_LEFT_ANCHOR;
36646 exports.BELOW_RIGHT_ANCHOR = BELOW_RIGHT_ANCHOR;
36647 exports.BOTTOM_CENTER_ANCHOR = BOTTOM_CENTER_ANCHOR;
36648 exports.BOTTOM_INNER_LEFT_ANCHOR = BOTTOM_INNER_LEFT_ANCHOR;
36649 exports.BOTTOM_INNER_RIGHT_ANCHOR = BOTTOM_INNER_RIGHT_ANCHOR;
36650 exports.BOTTOM_LEFT_ANCHOR = BOTTOM_LEFT_ANCHOR;
36651 exports.BOTTOM_RIGHT_ANCHOR = BOTTOM_RIGHT_ANCHOR;
36652 exports.BackspaceFontIcon = BackspaceFontIcon;
36653 exports.BackupFontIcon = BackupFontIcon;
36654 exports.Badge = Badge;
36655 exports.BadgeContainer = BadgeContainer;
36656 exports.BadgedButton = BadgedButton;
36657 exports.BatteryAlertFontIcon = BatteryAlertFontIcon;
36658 exports.BatteryChargingFullFontIcon = BatteryChargingFullFontIcon;
36659 exports.BatteryFullFontIcon = BatteryFullFontIcon;
36660 exports.BatteryStdFontIcon = BatteryStdFontIcon;
36661 exports.BatteryUnknownFontIcon = BatteryUnknownFontIcon;
36662 exports.BeachAccessFontIcon = BeachAccessFontIcon;
36663 exports.BeenhereFontIcon = BeenhereFontIcon;
36664 exports.BlockFontIcon = BlockFontIcon;
36665 exports.BluetoothAudioFontIcon = BluetoothAudioFontIcon;
36666 exports.BluetoothConnectedFontIcon = BluetoothConnectedFontIcon;
36667 exports.BluetoothDisabledFontIcon = BluetoothDisabledFontIcon;
36668 exports.BluetoothFontIcon = BluetoothFontIcon;
36669 exports.BluetoothSearchingFontIcon = BluetoothSearchingFontIcon;
36670 exports.BlurCircularFontIcon = BlurCircularFontIcon;
36671 exports.BlurLinearFontIcon = BlurLinearFontIcon;
36672 exports.BlurOffFontIcon = BlurOffFontIcon;
36673 exports.BlurOnFontIcon = BlurOnFontIcon;
36674 exports.BookFontIcon = BookFontIcon;
36675 exports.BookmarkBorderFontIcon = BookmarkBorderFontIcon;
36676 exports.BookmarkFontIcon = BookmarkFontIcon;
36677 exports.BorderAllFontIcon = BorderAllFontIcon;
36678 exports.BorderBottomFontIcon = BorderBottomFontIcon;
36679 exports.BorderClearFontIcon = BorderClearFontIcon;
36680 exports.BorderColorFontIcon = BorderColorFontIcon;
36681 exports.BorderHorizontalFontIcon = BorderHorizontalFontIcon;
36682 exports.BorderInnerFontIcon = BorderInnerFontIcon;
36683 exports.BorderLeftFontIcon = BorderLeftFontIcon;
36684 exports.BorderOuterFontIcon = BorderOuterFontIcon;
36685 exports.BorderRightFontIcon = BorderRightFontIcon;
36686 exports.BorderStyleFontIcon = BorderStyleFontIcon;
36687 exports.BorderTopFontIcon = BorderTopFontIcon;
36688 exports.BorderVerticalFontIcon = BorderVerticalFontIcon;
36689 exports.BrandingWatermarkFontIcon = BrandingWatermarkFontIcon;
36690 exports.Brightness1FontIcon = Brightness1FontIcon;
36691 exports.Brightness2FontIcon = Brightness2FontIcon;
36692 exports.Brightness3FontIcon = Brightness3FontIcon;
36693 exports.Brightness4FontIcon = Brightness4FontIcon;
36694 exports.Brightness5FontIcon = Brightness5FontIcon;
36695 exports.Brightness6FontIcon = Brightness6FontIcon;
36696 exports.Brightness7FontIcon = Brightness7FontIcon;
36697 exports.BrightnessAutoFontIcon = BrightnessAutoFontIcon;
36698 exports.BrightnessHighFontIcon = BrightnessHighFontIcon;
36699 exports.BrightnessLowFontIcon = BrightnessLowFontIcon;
36700 exports.BrightnessMediumFontIcon = BrightnessMediumFontIcon;
36701 exports.BrokenImageFontIcon = BrokenImageFontIcon;
36702 exports.BrushFontIcon = BrushFontIcon;
36703 exports.BubbleChartFontIcon = BubbleChartFontIcon;
36704 exports.BugReportFontIcon = BugReportFontIcon;
36705 exports.BuildFontIcon = BuildFontIcon;
36706 exports.BurstModeFontIcon = BurstModeFontIcon;
36707 exports.BusinessCenterFontIcon = BusinessCenterFontIcon;
36708 exports.BusinessFontIcon = BusinessFontIcon;
36709 exports.Button = Button;
36710 exports.CELL_MARGIN_VAR = CELL_MARGIN_VAR;
36711 exports.CELL_SIZE_VAR = CELL_SIZE_VAR;
36712 exports.CENTER_CENTER_ANCHOR = CENTER_CENTER_ANCHOR;
36713 exports.CENTER_INNER_LEFT_ANCHOR = CENTER_INNER_LEFT_ANCHOR;
36714 exports.CENTER_INNER_RIGHT_ANCHOR = CENTER_INNER_RIGHT_ANCHOR;
36715 exports.CENTER_LEFT_ANCHOR = CENTER_LEFT_ANCHOR;
36716 exports.CENTER_RIGHT_ANCHOR = CENTER_RIGHT_ANCHOR;
36717 exports.COLLAPSE_TIMEOUT = COLLAPSE_TIMEOUT;
36718 exports.CROSS_FADE_CLASSNAMES = CROSS_FADE_CLASSNAMES;
36719 exports.CROSS_FADE_TIMEOUT = CROSS_FADE_TIMEOUT;
36720 exports.CachedFontIcon = CachedFontIcon;
36721 exports.CakeFontIcon = CakeFontIcon;
36722 exports.CallEndFontIcon = CallEndFontIcon;
36723 exports.CallFontIcon = CallFontIcon;
36724 exports.CallMadeFontIcon = CallMadeFontIcon;
36725 exports.CallMergeFontIcon = CallMergeFontIcon;
36726 exports.CallMissedFontIcon = CallMissedFontIcon;
36727 exports.CallMissedOutgoingFontIcon = CallMissedOutgoingFontIcon;
36728 exports.CallReceivedFontIcon = CallReceivedFontIcon;
36729 exports.CallSplitFontIcon = CallSplitFontIcon;
36730 exports.CallToActionFontIcon = CallToActionFontIcon;
36731 exports.CameraAltFontIcon = CameraAltFontIcon;
36732 exports.CameraEnhanceFontIcon = CameraEnhanceFontIcon;
36733 exports.CameraFontIcon = CameraFontIcon;
36734 exports.CameraFrontFontIcon = CameraFrontFontIcon;
36735 exports.CameraRearFontIcon = CameraRearFontIcon;
36736 exports.CameraRollFontIcon = CameraRollFontIcon;
36737 exports.CancelFontIcon = CancelFontIcon;
36738 exports.Caption = Caption;
36739 exports.Card = Card;
36740 exports.CardActions = CardActions;
36741 exports.CardContent = CardContent;
36742 exports.CardGiftcardFontIcon = CardGiftcardFontIcon;
36743 exports.CardHeader = CardHeader;
36744 exports.CardMembershipFontIcon = CardMembershipFontIcon;
36745 exports.CardSubtitle = CardSubtitle;
36746 exports.CardTitle = CardTitle;
36747 exports.CardTravelFontIcon = CardTravelFontIcon;
36748 exports.CasinoFontIcon = CasinoFontIcon;
36749 exports.CastConnectedFontIcon = CastConnectedFontIcon;
36750 exports.CastFontIcon = CastFontIcon;
36751 exports.CenterFocusStrongFontIcon = CenterFocusStrongFontIcon;
36752 exports.CenterFocusWeakFontIcon = CenterFocusWeakFontIcon;
36753 exports.ChangeHistoryFontIcon = ChangeHistoryFontIcon;
36754 exports.ChatBubbleFontIcon = ChatBubbleFontIcon;
36755 exports.ChatBubbleOutlineFontIcon = ChatBubbleOutlineFontIcon;
36756 exports.ChatFontIcon = ChatFontIcon;
36757 exports.CheckBoxFontIcon = CheckBoxFontIcon;
36758 exports.CheckBoxOutlineBlankFontIcon = CheckBoxOutlineBlankFontIcon;
36759 exports.CheckCircleFontIcon = CheckCircleFontIcon;
36760 exports.CheckFontIcon = CheckFontIcon;
36761 exports.Checkbox = Checkbox;
36762 exports.ChevronLeftFontIcon = ChevronLeftFontIcon;
36763 exports.ChevronRightFontIcon = ChevronRightFontIcon;
36764 exports.ChildCareFontIcon = ChildCareFontIcon;
36765 exports.ChildFriendlyFontIcon = ChildFriendlyFontIcon;
36766 exports.Chip = Chip;
36767 exports.ChromeReaderModeFontIcon = ChromeReaderModeFontIcon;
36768 exports.CircularProgress = CircularProgress;
36769 exports.ClassFontIcon = ClassFontIcon;
36770 exports.ClearAllFontIcon = ClearAllFontIcon;
36771 exports.ClearFontIcon = ClearFontIcon;
36772 exports.CloseFontIcon = CloseFontIcon;
36773 exports.ClosedCaptionFontIcon = ClosedCaptionFontIcon;
36774 exports.CloudCircleFontIcon = CloudCircleFontIcon;
36775 exports.CloudDoneFontIcon = CloudDoneFontIcon;
36776 exports.CloudDownloadFontIcon = CloudDownloadFontIcon;
36777 exports.CloudFontIcon = CloudFontIcon;
36778 exports.CloudOffFontIcon = CloudOffFontIcon;
36779 exports.CloudQueueFontIcon = CloudQueueFontIcon;
36780 exports.CloudUploadFontIcon = CloudUploadFontIcon;
36781 exports.CodeFontIcon = CodeFontIcon;
36782 exports.Collapse = Collapse;
36783 exports.CollectionsBookmarkFontIcon = CollectionsBookmarkFontIcon;
36784 exports.CollectionsFontIcon = CollectionsFontIcon;
36785 exports.ColorLensFontIcon = ColorLensFontIcon;
36786 exports.ColorizeFontIcon = ColorizeFontIcon;
36787 exports.CommentFontIcon = CommentFontIcon;
36788 exports.CompareArrowsFontIcon = CompareArrowsFontIcon;
36789 exports.CompareFontIcon = CompareFontIcon;
36790 exports.ComputerFontIcon = ComputerFontIcon;
36791 exports.ConditionalPortal = ConditionalPortal;
36792 exports.Configuration = Configuration;
36793 exports.ConfirmationNumberFontIcon = ConfirmationNumberFontIcon;
36794 exports.ContactMailFontIcon = ContactMailFontIcon;
36795 exports.ContactPhoneFontIcon = ContactPhoneFontIcon;
36796 exports.ContactsFontIcon = ContactsFontIcon;
36797 exports.ContentCopyFontIcon = ContentCopyFontIcon;
36798 exports.ContentCutFontIcon = ContentCutFontIcon;
36799 exports.ContentPasteFontIcon = ContentPasteFontIcon;
36800 exports.ControlPointDuplicateFontIcon = ControlPointDuplicateFontIcon;
36801 exports.ControlPointFontIcon = ControlPointFontIcon;
36802 exports.CopyrightFontIcon = CopyrightFontIcon;
36803 exports.CreateFontIcon = CreateFontIcon;
36804 exports.CreateNewFolderFontIcon = CreateNewFolderFontIcon;
36805 exports.CreditCardFontIcon = CreditCardFontIcon;
36806 exports.Crop169FontIcon = Crop169FontIcon;
36807 exports.Crop32FontIcon = Crop32FontIcon;
36808 exports.Crop54FontIcon = Crop54FontIcon;
36809 exports.Crop75FontIcon = Crop75FontIcon;
36810 exports.CropDinFontIcon = CropDinFontIcon;
36811 exports.CropFontIcon = CropFontIcon;
36812 exports.CropFreeFontIcon = CropFreeFontIcon;
36813 exports.CropLandscapeFontIcon = CropLandscapeFontIcon;
36814 exports.CropOriginalFontIcon = CropOriginalFontIcon;
36815 exports.CropPortraitFontIcon = CropPortraitFontIcon;
36816 exports.CropRotateFontIcon = CropRotateFontIcon;
36817 exports.CropSquareFontIcon = CropSquareFontIcon;
36818 exports.CrossFade = CrossFade;
36819 exports.DATA_RMD_NOSCROLL = DATA_RMD_NOSCROLL;
36820 exports.DEFAULT_APP_SIZE = DEFAULT_APP_SIZE;
36821 exports.DEFAULT_COLLAPSE_MIN_HEIGHT = DEFAULT_COLLAPSE_MIN_HEIGHT;
36822 exports.DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM = DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM;
36823 exports.DEFAULT_COLLAPSE_MIN_PADDING_TOP = DEFAULT_COLLAPSE_MIN_PADDING_TOP;
36824 exports.DEFAULT_DESKTOP_LARGE_MIN_WIDTH = DEFAULT_DESKTOP_LARGE_MIN_WIDTH;
36825 exports.DEFAULT_DESKTOP_LAYOUT = DEFAULT_DESKTOP_LAYOUT;
36826 exports.DEFAULT_DESKTOP_MIN_WIDTH = DEFAULT_DESKTOP_MIN_WIDTH;
36827 exports.DEFAULT_GET_DISPLAY_LABEL = getDisplayLabel;
36828 exports.DEFAULT_GET_ITEM_VALUE = DEFAULT_GET_ITEM_VALUE;
36829 exports.DEFAULT_GET_OPTION_ID = getOptionId;
36830 exports.DEFAULT_GET_OPTION_LABEL = getOptionLabel;
36831 exports.DEFAULT_GET_RESULT_ID = getResultId;
36832 exports.DEFAULT_GET_RESULT_LABEL = getResultLabel;
36833 exports.DEFAULT_GET_RESULT_VALUE = getResultValue;
36834 exports.DEFAULT_IGNORE_WHITESPACE = DEFAULT_IGNORE_WHITESPACE;
36835 exports.DEFAULT_LANDSCAPE_TABLET_LAYOUT = DEFAULT_LANDSCAPE_TABLET_LAYOUT;
36836 exports.DEFAULT_LAYOUT_MAIN_CLASSNAMES = DEFAULT_LAYOUT_MAIN_CLASSNAMES;
36837 exports.DEFAULT_MESSAGE_QUEUE_TIMEOUT = DEFAULT_MESSAGE_QUEUE_TIMEOUT;
36838 exports.DEFAULT_PHONE_LAYOUT = DEFAULT_PHONE_LAYOUT;
36839 exports.DEFAULT_PHONE_MAX_WIDTH = DEFAULT_PHONE_MAX_WIDTH;
36840 exports.DEFAULT_RIPPLE_CLASSNAMES = DEFAULT_RIPPLE_CLASSNAMES;
36841 exports.DEFAULT_RIPPLE_TIMEOUT = DEFAULT_RIPPLE_TIMEOUT;
36842 exports.DEFAULT_SEARCH_OPTIONS = DEFAULT_SEARCH_OPTIONS;
36843 exports.DEFAULT_SEARCH_RESET_TIME = DEFAULT_SEARCH_RESET_TIME;
36844 exports.DEFAULT_SHEET_CLASSNAMES = DEFAULT_SHEET_CLASSNAMES;
36845 exports.DEFAULT_SHEET_TIMEOUT = DEFAULT_SHEET_TIMEOUT;
36846 exports.DEFAULT_TABLET_LAYOUT = DEFAULT_TABLET_LAYOUT;
36847 exports.DEFAULT_TABLET_MAX_WIDTH = DEFAULT_TABLET_MAX_WIDTH;
36848 exports.DEFAULT_TABLET_MIN_WIDTH = DEFAULT_TABLET_MIN_WIDTH;
36849 exports.DEFAULT_TOOLTIP_CLASSNAMES = DEFAULT_TOOLTIP_CLASSNAMES;
36850 exports.DEFAULT_TOOLTIP_DELAY = DEFAULT_TOOLTIP_DELAY;
36851 exports.DEFAULT_TOOLTIP_THRESHOLD = DEFAULT_TOOLTIP_THRESHOLD;
36852 exports.DEFAULT_TOOLTIP_TIMEOUT = DEFAULT_TOOLTIP_TIMEOUT;
36853 exports.DEFAULT_TRIM = DEFAULT_TRIM;
36854 exports.DEFAULT_VALUE_KEY = DEFAULT_VALUE_KEY;
36855 exports.DEFFAULT_LAYOUT_NAV_TOGGLE_CLASSNAMES = DEFFAULT_LAYOUT_NAV_TOGGLE_CLASSNAMES;
36856 exports.DashboardFontIcon = DashboardFontIcon;
36857 exports.DataUsageFontIcon = DataUsageFontIcon;
36858 exports.DateRangeFontIcon = DateRangeFontIcon;
36859 exports.DehazeFontIcon = DehazeFontIcon;
36860 exports.DeleteFontIcon = DeleteFontIcon;
36861 exports.DeleteForeverFontIcon = DeleteForeverFontIcon;
36862 exports.DeleteSweepFontIcon = DeleteSweepFontIcon;
36863 exports.DescriptionFontIcon = DescriptionFontIcon;
36864 exports.DesktopMacFontIcon = DesktopMacFontIcon;
36865 exports.DesktopOnly = DesktopOnly;
36866 exports.DesktopWindowsFontIcon = DesktopWindowsFontIcon;
36867 exports.DetailsFontIcon = DetailsFontIcon;
36868 exports.DeveloperBoardFontIcon = DeveloperBoardFontIcon;
36869 exports.DeveloperModeFontIcon = DeveloperModeFontIcon;
36870 exports.DeviceHubFontIcon = DeviceHubFontIcon;
36871 exports.DevicesFontIcon = DevicesFontIcon;
36872 exports.DevicesOtherFontIcon = DevicesOtherFontIcon;
36873 exports.DialerSipFontIcon = DialerSipFontIcon;
36874 exports.Dialog = Dialog;
36875 exports.DialogContent = DialogContent;
36876 exports.DialogFooter = DialogFooter;
36877 exports.DialogHeader = DialogHeader;
36878 exports.DialogTitle = DialogTitle;
36879 exports.DialpadFontIcon = DialpadFontIcon;
36880 exports.DirectionsBikeFontIcon = DirectionsBikeFontIcon;
36881 exports.DirectionsBoatFontIcon = DirectionsBoatFontIcon;
36882 exports.DirectionsBusFontIcon = DirectionsBusFontIcon;
36883 exports.DirectionsCarFontIcon = DirectionsCarFontIcon;
36884 exports.DirectionsFontIcon = DirectionsFontIcon;
36885 exports.DirectionsRailwayFontIcon = DirectionsRailwayFontIcon;
36886 exports.DirectionsRunFontIcon = DirectionsRunFontIcon;
36887 exports.DirectionsSubwayFontIcon = DirectionsSubwayFontIcon;
36888 exports.DirectionsTransitFontIcon = DirectionsTransitFontIcon;
36889 exports.DirectionsWalkFontIcon = DirectionsWalkFontIcon;
36890 exports.DiscFullFontIcon = DiscFullFontIcon;
36891 exports.Divider = Divider;
36892 exports.DnsFontIcon = DnsFontIcon;
36893 exports.DoNotDisturbAltFontIcon = DoNotDisturbAltFontIcon;
36894 exports.DoNotDisturbFontIcon = DoNotDisturbFontIcon;
36895 exports.DoNotDisturbOffFontIcon = DoNotDisturbOffFontIcon;
36896 exports.DoNotDisturbOnFontIcon = DoNotDisturbOnFontIcon;
36897 exports.DockFontIcon = DockFontIcon;
36898 exports.DomainFontIcon = DomainFontIcon;
36899 exports.DoneAllFontIcon = DoneAllFontIcon;
36900 exports.DoneFontIcon = DoneFontIcon;
36901 exports.DonutLargeFontIcon = DonutLargeFontIcon;
36902 exports.DonutSmallFontIcon = DonutSmallFontIcon;
36903 exports.DraftsFontIcon = DraftsFontIcon;
36904 exports.DragHandleFontIcon = DragHandleFontIcon;
36905 exports.DriveEtaFontIcon = DriveEtaFontIcon;
36906 exports.DropdownMenu = DropdownMenu;
36907 exports.DropdownMenuItem = DropdownMenuItem;
36908 exports.DvrFontIcon = DvrFontIcon;
36909 exports.ENTER = ENTER;
36910 exports.ENTERED = ENTERED$2;
36911 exports.ENTERING = ENTERING$1;
36912 exports.EXIT = EXIT;
36913 exports.EXITED = EXITED$1;
36914 exports.EXITING = EXITING$1;
36915 exports.EditFontIcon = EditFontIcon;
36916 exports.EditLocationFontIcon = EditLocationFontIcon;
36917 exports.EjectFontIcon = EjectFontIcon;
36918 exports.EmailFontIcon = EmailFontIcon;
36919 exports.EnhancedEncryptionFontIcon = EnhancedEncryptionFontIcon;
36920 exports.EqualizerFontIcon = EqualizerFontIcon;
36921 exports.ErrorFontIcon = ErrorFontIcon;
36922 exports.ErrorOutlineFontIcon = ErrorOutlineFontIcon;
36923 exports.EuroSymbolFontIcon = EuroSymbolFontIcon;
36924 exports.EvStationFontIcon = EvStationFontIcon;
36925 exports.EventAvailableFontIcon = EventAvailableFontIcon;
36926 exports.EventBusyFontIcon = EventBusyFontIcon;
36927 exports.EventFontIcon = EventFontIcon;
36928 exports.EventNoteFontIcon = EventNoteFontIcon;
36929 exports.EventSeatFontIcon = EventSeatFontIcon;
36930 exports.ExitToAppFontIcon = ExitToAppFontIcon;
36931 exports.ExpandLessFontIcon = ExpandLessFontIcon;
36932 exports.ExpandMoreFontIcon = ExpandMoreFontIcon;
36933 exports.ExpansionList = ExpansionList;
36934 exports.ExpansionPanel = ExpansionPanel;
36935 exports.ExpansionPanelHeader = ExpansionPanelHeader;
36936 exports.ExplicitFontIcon = ExplicitFontIcon;
36937 exports.ExploreFontIcon = ExploreFontIcon;
36938 exports.ExposureFontIcon = ExposureFontIcon;
36939 exports.ExposureNeg1FontIcon = ExposureNeg1FontIcon;
36940 exports.ExposureNeg2FontIcon = ExposureNeg2FontIcon;
36941 exports.ExposurePlus1FontIcon = ExposurePlus1FontIcon;
36942 exports.ExposurePlus2FontIcon = ExposurePlus2FontIcon;
36943 exports.ExposureZeroFontIcon = ExposureZeroFontIcon;
36944 exports.ExtensionFontIcon = ExtensionFontIcon;
36945 exports.FAB = FAB;
36946 exports.FaceFontIcon = FaceFontIcon;
36947 exports.FastForwardFontIcon = FastForwardFontIcon;
36948 exports.FastRewindFontIcon = FastRewindFontIcon;
36949 exports.FavoriteBorderFontIcon = FavoriteBorderFontIcon;
36950 exports.FavoriteFontIcon = FavoriteFontIcon;
36951 exports.FeaturedPlayListFontIcon = FeaturedPlayListFontIcon;
36952 exports.FeaturedVideoFontIcon = FeaturedVideoFontIcon;
36953 exports.FeedbackFontIcon = FeedbackFontIcon;
36954 exports.FiberDvrFontIcon = FiberDvrFontIcon;
36955 exports.FiberManualRecordFontIcon = FiberManualRecordFontIcon;
36956 exports.FiberNewFontIcon = FiberNewFontIcon;
36957 exports.FiberPinFontIcon = FiberPinFontIcon;
36958 exports.FiberSmartRecordFontIcon = FiberSmartRecordFontIcon;
36959 exports.Fieldset = Fieldset;
36960 exports.FileDownloadFontIcon = FileDownloadFontIcon;
36961 exports.FileInput = FileInput;
36962 exports.FileUploadFontIcon = FileUploadFontIcon;
36963 exports.Filter1FontIcon = Filter1FontIcon;
36964 exports.Filter2FontIcon = Filter2FontIcon;
36965 exports.Filter3FontIcon = Filter3FontIcon;
36966 exports.Filter4FontIcon = Filter4FontIcon;
36967 exports.Filter5FontIcon = Filter5FontIcon;
36968 exports.Filter6FontIcon = Filter6FontIcon;
36969 exports.Filter7FontIcon = Filter7FontIcon;
36970 exports.Filter8FontIcon = Filter8FontIcon;
36971 exports.Filter9FontIcon = Filter9FontIcon;
36972 exports.Filter9PlusFontIcon = Filter9PlusFontIcon;
36973 exports.FilterBAndWFontIcon = FilterBAndWFontIcon;
36974 exports.FilterCenterFocusFontIcon = FilterCenterFocusFontIcon;
36975 exports.FilterDramaFontIcon = FilterDramaFontIcon;
36976 exports.FilterFontIcon = FilterFontIcon;
36977 exports.FilterFramesFontIcon = FilterFramesFontIcon;
36978 exports.FilterHdrFontIcon = FilterHdrFontIcon;
36979 exports.FilterListFontIcon = FilterListFontIcon;
36980 exports.FilterNoneFontIcon = FilterNoneFontIcon;
36981 exports.FilterTiltShiftFontIcon = FilterTiltShiftFontIcon;
36982 exports.FilterVintageFontIcon = FilterVintageFontIcon;
36983 exports.FindInPageFontIcon = FindInPageFontIcon;
36984 exports.FindReplaceFontIcon = FindReplaceFontIcon;
36985 exports.FingerprintFontIcon = FingerprintFontIcon;
36986 exports.FirstPageFontIcon = FirstPageFontIcon;
36987 exports.FitnessCenterFontIcon = FitnessCenterFontIcon;
36988 exports.FixedDialog = FixedDialog;
36989 exports.FlagFontIcon = FlagFontIcon;
36990 exports.FlareFontIcon = FlareFontIcon;
36991 exports.FlashAutoFontIcon = FlashAutoFontIcon;
36992 exports.FlashOffFontIcon = FlashOffFontIcon;
36993 exports.FlashOnFontIcon = FlashOnFontIcon;
36994 exports.FlightFontIcon = FlightFontIcon;
36995 exports.FlightLandFontIcon = FlightLandFontIcon;
36996 exports.FlightTakeoffFontIcon = FlightTakeoffFontIcon;
36997 exports.FlipFontIcon = FlipFontIcon;
36998 exports.FlipToBackFontIcon = FlipToBackFontIcon;
36999 exports.FlipToFrontFontIcon = FlipToFrontFontIcon;
37000 exports.FocusContainer = FocusContainer;
37001 exports.FolderFontIcon = FolderFontIcon;
37002 exports.FolderOpenFontIcon = FolderOpenFontIcon;
37003 exports.FolderSharedFontIcon = FolderSharedFontIcon;
37004 exports.FolderSpecialFontIcon = FolderSpecialFontIcon;
37005 exports.FontDownloadFontIcon = FontDownloadFontIcon;
37006 exports.FontIcon = FontIcon;
37007 exports.Form = Form;
37008 exports.FormMessage = FormMessage;
37009 exports.FormThemeProvider = FormThemeProvider;
37010 exports.FormatAlignCenterFontIcon = FormatAlignCenterFontIcon;
37011 exports.FormatAlignJustifyFontIcon = FormatAlignJustifyFontIcon;
37012 exports.FormatAlignLeftFontIcon = FormatAlignLeftFontIcon;
37013 exports.FormatAlignRightFontIcon = FormatAlignRightFontIcon;
37014 exports.FormatBoldFontIcon = FormatBoldFontIcon;
37015 exports.FormatClearFontIcon = FormatClearFontIcon;
37016 exports.FormatColorFillFontIcon = FormatColorFillFontIcon;
37017 exports.FormatColorResetFontIcon = FormatColorResetFontIcon;
37018 exports.FormatColorTextFontIcon = FormatColorTextFontIcon;
37019 exports.FormatIndentDecreaseFontIcon = FormatIndentDecreaseFontIcon;
37020 exports.FormatIndentIncreaseFontIcon = FormatIndentIncreaseFontIcon;
37021 exports.FormatItalicFontIcon = FormatItalicFontIcon;
37022 exports.FormatLineSpacingFontIcon = FormatLineSpacingFontIcon;
37023 exports.FormatListBulletedFontIcon = FormatListBulletedFontIcon;
37024 exports.FormatListNumberedFontIcon = FormatListNumberedFontIcon;
37025 exports.FormatPaintFontIcon = FormatPaintFontIcon;
37026 exports.FormatQuoteFontIcon = FormatQuoteFontIcon;
37027 exports.FormatShapesFontIcon = FormatShapesFontIcon;
37028 exports.FormatSizeFontIcon = FormatSizeFontIcon;
37029 exports.FormatStrikethroughFontIcon = FormatStrikethroughFontIcon;
37030 exports.FormatTextdirectionLToRFontIcon = FormatTextdirectionLToRFontIcon;
37031 exports.FormatTextdirectionRToLFontIcon = FormatTextdirectionRToLFontIcon;
37032 exports.FormatUnderlinedFontIcon = FormatUnderlinedFontIcon;
37033 exports.ForumFontIcon = ForumFontIcon;
37034 exports.Forward10FontIcon = Forward10FontIcon;
37035 exports.Forward30FontIcon = Forward30FontIcon;
37036 exports.Forward5FontIcon = Forward5FontIcon;
37037 exports.ForwardFontIcon = ForwardFontIcon;
37038 exports.FreeBreakfastFontIcon = FreeBreakfastFontIcon;
37039 exports.FullscreenExitFontIcon = FullscreenExitFontIcon;
37040 exports.FullscreenFontIcon = FullscreenFontIcon;
37041 exports.FunctionsFontIcon = FunctionsFontIcon;
37042 exports.GRID_COLUMNS_VAR = GRID_COLUMNS_VAR;
37043 exports.GRID_GUTTER_VAR = GRID_GUTTER_VAR;
37044 exports.GTranslateFontIcon = GTranslateFontIcon;
37045 exports.GamepadFontIcon = GamepadFontIcon;
37046 exports.GamesFontIcon = GamesFontIcon;
37047 exports.GavelFontIcon = GavelFontIcon;
37048 exports.GestureFontIcon = GestureFontIcon;
37049 exports.GetAppFontIcon = GetAppFontIcon;
37050 exports.GifFontIcon = GifFontIcon;
37051 exports.GolfCourseFontIcon = GolfCourseFontIcon;
37052 exports.GpsFixedFontIcon = GpsFixedFontIcon;
37053 exports.GpsNotFixedFontIcon = GpsNotFixedFontIcon;
37054 exports.GpsOffFontIcon = GpsOffFontIcon;
37055 exports.GradeFontIcon = GradeFontIcon;
37056 exports.GradientFontIcon = GradientFontIcon;
37057 exports.GrainFontIcon = GrainFontIcon;
37058 exports.GraphicEqFontIcon = GraphicEqFontIcon;
37059 exports.Grid = Grid;
37060 exports.GridCell = GridCell;
37061 exports.GridList = GridList;
37062 exports.GridListCell = GridListCell;
37063 exports.GridOffFontIcon = GridOffFontIcon;
37064 exports.GridOnFontIcon = GridOnFontIcon;
37065 exports.GroupAddFontIcon = GroupAddFontIcon;
37066 exports.GroupFontIcon = GroupFontIcon;
37067 exports.GroupWorkFontIcon = GroupWorkFontIcon;
37068 exports.HdFontIcon = HdFontIcon;
37069 exports.HdrOffFontIcon = HdrOffFontIcon;
37070 exports.HdrOnFontIcon = HdrOnFontIcon;
37071 exports.HdrStrongFontIcon = HdrStrongFontIcon;
37072 exports.HdrWeakFontIcon = HdrWeakFontIcon;
37073 exports.HeadsetFontIcon = HeadsetFontIcon;
37074 exports.HeadsetMicFontIcon = HeadsetMicFontIcon;
37075 exports.HealingFontIcon = HealingFontIcon;
37076 exports.HearingFontIcon = HearingFontIcon;
37077 exports.HelpFontIcon = HelpFontIcon;
37078 exports.HelpOutlineFontIcon = HelpOutlineFontIcon;
37079 exports.HighQualityFontIcon = HighQualityFontIcon;
37080 exports.HighlightFontIcon = HighlightFontIcon;
37081 exports.HighlightOffFontIcon = HighlightOffFontIcon;
37082 exports.HighlightedResult = HighlightedResult;
37083 exports.HistoryFontIcon = HistoryFontIcon;
37084 exports.HomeFontIcon = HomeFontIcon;
37085 exports.HotTubFontIcon = HotTubFontIcon;
37086 exports.HotelFontIcon = HotelFontIcon;
37087 exports.HourglassEmptyFontIcon = HourglassEmptyFontIcon;
37088 exports.HourglassFullFontIcon = HourglassFullFontIcon;
37089 exports.HttpFontIcon = HttpFontIcon;
37090 exports.HttpsFontIcon = HttpsFontIcon;
37091 exports.IconProvider = IconProvider;
37092 exports.IconRotator = IconRotator;
37093 exports.ImageAspectRatioFontIcon = ImageAspectRatioFontIcon;
37094 exports.ImageFontIcon = ImageFontIcon;
37095 exports.ImportContactsFontIcon = ImportContactsFontIcon;
37096 exports.ImportExportFontIcon = ImportExportFontIcon;
37097 exports.ImportantDevicesFontIcon = ImportantDevicesFontIcon;
37098 exports.InboxFontIcon = InboxFontIcon;
37099 exports.IndeterminateCheckBoxFontIcon = IndeterminateCheckBoxFontIcon;
37100 exports.InfoFontIcon = InfoFontIcon;
37101 exports.InfoOutlineFontIcon = InfoOutlineFontIcon;
37102 exports.InputFontIcon = InputFontIcon;
37103 exports.InputToggle = InputToggle;
37104 exports.InsertChartFontIcon = InsertChartFontIcon;
37105 exports.InsertCommentFontIcon = InsertCommentFontIcon;
37106 exports.InsertDriveFileFontIcon = InsertDriveFileFontIcon;
37107 exports.InsertEmoticonFontIcon = InsertEmoticonFontIcon;
37108 exports.InsertInvitationFontIcon = InsertInvitationFontIcon;
37109 exports.InsertLinkFontIcon = InsertLinkFontIcon;
37110 exports.InsertPhotoFontIcon = InsertPhotoFontIcon;
37111 exports.InteractionModeListener = InteractionModeListener;
37112 exports.InvertColorsFontIcon = InvertColorsFontIcon;
37113 exports.InvertColorsOffFontIcon = InvertColorsOffFontIcon;
37114 exports.IsoFontIcon = IsoFontIcon;
37115 exports.KeyboardArrowDownFontIcon = KeyboardArrowDownFontIcon;
37116 exports.KeyboardArrowLeftFontIcon = KeyboardArrowLeftFontIcon;
37117 exports.KeyboardArrowRightFontIcon = KeyboardArrowRightFontIcon;
37118 exports.KeyboardArrowUpFontIcon = KeyboardArrowUpFontIcon;
37119 exports.KeyboardBackspaceFontIcon = KeyboardBackspaceFontIcon;
37120 exports.KeyboardCapslockFontIcon = KeyboardCapslockFontIcon;
37121 exports.KeyboardFontIcon = KeyboardFontIcon;
37122 exports.KeyboardHideFontIcon = KeyboardHideFontIcon;
37123 exports.KeyboardReturnFontIcon = KeyboardReturnFontIcon;
37124 exports.KeyboardTabFontIcon = KeyboardTabFontIcon;
37125 exports.KeyboardVoiceFontIcon = KeyboardVoiceFontIcon;
37126 exports.KitchenFontIcon = KitchenFontIcon;
37127 exports.Label = Label;
37128 exports.LabelFontIcon = LabelFontIcon;
37129 exports.LabelOutlineFontIcon = LabelOutlineFontIcon;
37130 exports.LandscapeFontIcon = LandscapeFontIcon;
37131 exports.LanguageFontIcon = LanguageFontIcon;
37132 exports.LaptopChromebookFontIcon = LaptopChromebookFontIcon;
37133 exports.LaptopFontIcon = LaptopFontIcon;
37134 exports.LaptopMacFontIcon = LaptopMacFontIcon;
37135 exports.LaptopWindowsFontIcon = LaptopWindowsFontIcon;
37136 exports.LastPageFontIcon = LastPageFontIcon;
37137 exports.LaunchFontIcon = LaunchFontIcon;
37138 exports.LayersClearFontIcon = LayersClearFontIcon;
37139 exports.LayersFontIcon = LayersFontIcon;
37140 exports.Layout = Layout;
37141 exports.LayoutAppBar = LayoutAppBar;
37142 exports.LayoutAppBarTitle = LayoutAppBarTitle;
37143 exports.LayoutCloseNavigationButton = LayoutCloseNavigationButton;
37144 exports.LayoutMain = LayoutMain;
37145 exports.LayoutNavToggle = LayoutNavToggle;
37146 exports.LayoutNavigation = LayoutNavigation;
37147 exports.LayoutNavigationHeader = LayoutNavigationHeader;
37148 exports.LayoutProvider = LayoutProvider;
37149 exports.LayoutTree = LayoutTree;
37150 exports.LeakAddFontIcon = LeakAddFontIcon;
37151 exports.LeakRemoveFontIcon = LeakRemoveFontIcon;
37152 exports.LensFontIcon = LensFontIcon;
37153 exports.LibraryAddFontIcon = LibraryAddFontIcon;
37154 exports.LibraryBooksFontIcon = LibraryBooksFontIcon;
37155 exports.LibraryMusicFontIcon = LibraryMusicFontIcon;
37156 exports.LightbulbOutlineFontIcon = LightbulbOutlineFontIcon;
37157 exports.LineStyleFontIcon = LineStyleFontIcon;
37158 exports.LineWeightFontIcon = LineWeightFontIcon;
37159 exports.LinearProgress = LinearProgress;
37160 exports.LinearScaleFontIcon = LinearScaleFontIcon;
37161 exports.Link = Link;
37162 exports.LinkFontIcon = LinkFontIcon;
37163 exports.LinkedCameraFontIcon = LinkedCameraFontIcon;
37164 exports.List = List;
37165 exports.ListFontIcon = ListFontIcon;
37166 exports.ListItem = ListItem;
37167 exports.ListItemAddon = ListItemAddon;
37168 exports.ListItemChildren = ListItemChildren;
37169 exports.ListItemLink = ListItemLink;
37170 exports.ListItemText = ListItemText;
37171 exports.ListSubheader = ListSubheader;
37172 exports.Listbox = Listbox;
37173 exports.LiveHelpFontIcon = LiveHelpFontIcon;
37174 exports.LiveTvFontIcon = LiveTvFontIcon;
37175 exports.LocalActivityFontIcon = LocalActivityFontIcon;
37176 exports.LocalAirportFontIcon = LocalAirportFontIcon;
37177 exports.LocalAtmFontIcon = LocalAtmFontIcon;
37178 exports.LocalBarFontIcon = LocalBarFontIcon;
37179 exports.LocalCafeFontIcon = LocalCafeFontIcon;
37180 exports.LocalCarWashFontIcon = LocalCarWashFontIcon;
37181 exports.LocalConvenienceStoreFontIcon = LocalConvenienceStoreFontIcon;
37182 exports.LocalDiningFontIcon = LocalDiningFontIcon;
37183 exports.LocalDrinkFontIcon = LocalDrinkFontIcon;
37184 exports.LocalFloristFontIcon = LocalFloristFontIcon;
37185 exports.LocalGasStationFontIcon = LocalGasStationFontIcon;
37186 exports.LocalGroceryStoreFontIcon = LocalGroceryStoreFontIcon;
37187 exports.LocalHospitalFontIcon = LocalHospitalFontIcon;
37188 exports.LocalHotelFontIcon = LocalHotelFontIcon;
37189 exports.LocalLaundryServiceFontIcon = LocalLaundryServiceFontIcon;
37190 exports.LocalLibraryFontIcon = LocalLibraryFontIcon;
37191 exports.LocalMallFontIcon = LocalMallFontIcon;
37192 exports.LocalMoviesFontIcon = LocalMoviesFontIcon;
37193 exports.LocalOfferFontIcon = LocalOfferFontIcon;
37194 exports.LocalParkingFontIcon = LocalParkingFontIcon;
37195 exports.LocalPharmacyFontIcon = LocalPharmacyFontIcon;
37196 exports.LocalPhoneFontIcon = LocalPhoneFontIcon;
37197 exports.LocalPizzaFontIcon = LocalPizzaFontIcon;
37198 exports.LocalPlayFontIcon = LocalPlayFontIcon;
37199 exports.LocalPostOfficeFontIcon = LocalPostOfficeFontIcon;
37200 exports.LocalPrintshopFontIcon = LocalPrintshopFontIcon;
37201 exports.LocalSeeFontIcon = LocalSeeFontIcon;
37202 exports.LocalShippingFontIcon = LocalShippingFontIcon;
37203 exports.LocalTaxiFontIcon = LocalTaxiFontIcon;
37204 exports.LocationCityFontIcon = LocationCityFontIcon;
37205 exports.LocationDisabledFontIcon = LocationDisabledFontIcon;
37206 exports.LocationOffFontIcon = LocationOffFontIcon;
37207 exports.LocationOnFontIcon = LocationOnFontIcon;
37208 exports.LocationSearchingFontIcon = LocationSearchingFontIcon;
37209 exports.LockFontIcon = LockFontIcon;
37210 exports.LockOpenFontIcon = LockOpenFontIcon;
37211 exports.LockOutlineFontIcon = LockOutlineFontIcon;
37212 exports.Looks3FontIcon = Looks3FontIcon;
37213 exports.Looks4FontIcon = Looks4FontIcon;
37214 exports.Looks5FontIcon = Looks5FontIcon;
37215 exports.Looks6FontIcon = Looks6FontIcon;
37216 exports.LooksFontIcon = LooksFontIcon;
37217 exports.LooksOneFontIcon = LooksOneFontIcon;
37218 exports.LooksTwoFontIcon = LooksTwoFontIcon;
37219 exports.LoopFontIcon = LoopFontIcon;
37220 exports.LoupeFontIcon = LoupeFontIcon;
37221 exports.LowPriorityFontIcon = LowPriorityFontIcon;
37222 exports.LoyaltyFontIcon = LoyaltyFontIcon;
37223 exports.MailFontIcon = MailFontIcon;
37224 exports.MailOutlineFontIcon = MailOutlineFontIcon;
37225 exports.MapFontIcon = MapFontIcon;
37226 exports.MarkunreadFontIcon = MarkunreadFontIcon;
37227 exports.MarkunreadMailboxFontIcon = MarkunreadMailboxFontIcon;
37228 exports.MediaContainer = MediaContainer;
37229 exports.MediaOverlay = MediaOverlay;
37230 exports.MemoryFontIcon = MemoryFontIcon;
37231 exports.Menu = Menu;
37232 exports.MenuButton = MenuButton;
37233 exports.MenuFontIcon = MenuFontIcon;
37234 exports.MenuItem = MenuItem;
37235 exports.MenuItemLink = MenuItemLink;
37236 exports.MenuItemSeparator = MenuItemSeparator;
37237 exports.MergeTypeFontIcon = MergeTypeFontIcon;
37238 exports.MessageFontIcon = MessageFontIcon;
37239 exports.MessageQueue = MessageQueue;
37240 exports.MessageQueueActionsContext = MessageQueueActionsContext;
37241 exports.MessageQueueContext = MessageQueueContext;
37242 exports.MessageVisibilityContext = MessageVisibilityContext;
37243 exports.MicFontIcon = MicFontIcon;
37244 exports.MicNoneFontIcon = MicNoneFontIcon;
37245 exports.MicOffFontIcon = MicOffFontIcon;
37246 exports.MmsFontIcon = MmsFontIcon;
37247 exports.MobileOnly = MobileOnly;
37248 exports.ModeCommentFontIcon = ModeCommentFontIcon;
37249 exports.ModeEditFontIcon = ModeEditFontIcon;
37250 exports.MonetizationOnFontIcon = MonetizationOnFontIcon;
37251 exports.MoneyOffFontIcon = MoneyOffFontIcon;
37252 exports.MonochromePhotosFontIcon = MonochromePhotosFontIcon;
37253 exports.MoodBadFontIcon = MoodBadFontIcon;
37254 exports.MoodFontIcon = MoodFontIcon;
37255 exports.MoreFontIcon = MoreFontIcon;
37256 exports.MoreHorizFontIcon = MoreHorizFontIcon;
37257 exports.MoreVertFontIcon = MoreVertFontIcon;
37258 exports.MotorcycleFontIcon = MotorcycleFontIcon;
37259 exports.MouseFontIcon = MouseFontIcon;
37260 exports.MoveToInboxFontIcon = MoveToInboxFontIcon;
37261 exports.MovementPresets = presets;
37262 exports.MovieCreationFontIcon = MovieCreationFontIcon;
37263 exports.MovieFilterFontIcon = MovieFilterFontIcon;
37264 exports.MovieFontIcon = MovieFontIcon;
37265 exports.MultilineChartFontIcon = MultilineChartFontIcon;
37266 exports.MusicNoteFontIcon = MusicNoteFontIcon;
37267 exports.MusicVideoFontIcon = MusicVideoFontIcon;
37268 exports.MyLocationFontIcon = MyLocationFontIcon;
37269 exports.NativeSelect = NativeSelect;
37270 exports.NatureFontIcon = NatureFontIcon;
37271 exports.NaturePeopleFontIcon = NaturePeopleFontIcon;
37272 exports.NavigateBeforeFontIcon = NavigateBeforeFontIcon;
37273 exports.NavigateNextFontIcon = NavigateNextFontIcon;
37274 exports.NavigationFontIcon = NavigationFontIcon;
37275 exports.NearMeFontIcon = NearMeFontIcon;
37276 exports.NestedDialogContextProvider = NestedDialogContextProvider;
37277 exports.NetworkCellFontIcon = NetworkCellFontIcon;
37278 exports.NetworkCheckFontIcon = NetworkCheckFontIcon;
37279 exports.NetworkLockedFontIcon = NetworkLockedFontIcon;
37280 exports.NetworkWifiFontIcon = NetworkWifiFontIcon;
37281 exports.NewReleasesFontIcon = NewReleasesFontIcon;
37282 exports.NextWeekFontIcon = NextWeekFontIcon;
37283 exports.NfcFontIcon = NfcFontIcon;
37284 exports.NoEncryptionFontIcon = NoEncryptionFontIcon;
37285 exports.NoSimFontIcon = NoSimFontIcon;
37286 exports.NotInterestedFontIcon = NotInterestedFontIcon;
37287 exports.NoteAddFontIcon = NoteAddFontIcon;
37288 exports.NoteFontIcon = NoteFontIcon;
37289 exports.NotificationsActiveFontIcon = NotificationsActiveFontIcon;
37290 exports.NotificationsFontIcon = NotificationsFontIcon;
37291 exports.NotificationsNoneFontIcon = NotificationsNoneFontIcon;
37292 exports.NotificationsOffFontIcon = NotificationsOffFontIcon;
37293 exports.NotificationsPausedFontIcon = NotificationsPausedFontIcon;
37294 exports.OfflinePinFontIcon = OfflinePinFontIcon;
37295 exports.OndemandVideoFontIcon = OndemandVideoFontIcon;
37296 exports.OpacityFontIcon = OpacityFontIcon;
37297 exports.OpenInBrowserFontIcon = OpenInBrowserFontIcon;
37298 exports.OpenInNewFontIcon = OpenInNewFontIcon;
37299 exports.OpenWithFontIcon = OpenWithFontIcon;
37300 exports.Option = Option;
37301 exports.Overlay = Overlay;
37302 exports.PagesFontIcon = PagesFontIcon;
37303 exports.PageviewFontIcon = PageviewFontIcon;
37304 exports.PaletteFontIcon = PaletteFontIcon;
37305 exports.PanToolFontIcon = PanToolFontIcon;
37306 exports.PanoramaFishEyeFontIcon = PanoramaFishEyeFontIcon;
37307 exports.PanoramaFontIcon = PanoramaFontIcon;
37308 exports.PanoramaHorizontalFontIcon = PanoramaHorizontalFontIcon;
37309 exports.PanoramaVerticalFontIcon = PanoramaVerticalFontIcon;
37310 exports.PanoramaWideAngleFontIcon = PanoramaWideAngleFontIcon;
37311 exports.PartyModeFontIcon = PartyModeFontIcon;
37312 exports.PassiveEvents = passiveEvents;
37313 exports.Password = Password;
37314 exports.PauseCircleFilledFontIcon = PauseCircleFilledFontIcon;
37315 exports.PauseCircleOutlineFontIcon = PauseCircleOutlineFontIcon;
37316 exports.PauseFontIcon = PauseFontIcon;
37317 exports.PaymentFontIcon = PaymentFontIcon;
37318 exports.PeopleFontIcon = PeopleFontIcon;
37319 exports.PeopleOutlineFontIcon = PeopleOutlineFontIcon;
37320 exports.PermCameraMicFontIcon = PermCameraMicFontIcon;
37321 exports.PermContactCalendarFontIcon = PermContactCalendarFontIcon;
37322 exports.PermDataSettingFontIcon = PermDataSettingFontIcon;
37323 exports.PermDeviceInformationFontIcon = PermDeviceInformationFontIcon;
37324 exports.PermIdentityFontIcon = PermIdentityFontIcon;
37325 exports.PermMediaFontIcon = PermMediaFontIcon;
37326 exports.PermPhoneMsgFontIcon = PermPhoneMsgFontIcon;
37327 exports.PermScanWifiFontIcon = PermScanWifiFontIcon;
37328 exports.PersonAddFontIcon = PersonAddFontIcon;
37329 exports.PersonFontIcon = PersonFontIcon;
37330 exports.PersonOutlineFontIcon = PersonOutlineFontIcon;
37331 exports.PersonPinCircleFontIcon = PersonPinCircleFontIcon;
37332 exports.PersonPinFontIcon = PersonPinFontIcon;
37333 exports.PersonalVideoFontIcon = PersonalVideoFontIcon;
37334 exports.PetsFontIcon = PetsFontIcon;
37335 exports.PhoneAndroidFontIcon = PhoneAndroidFontIcon;
37336 exports.PhoneBluetoothSpeakerFontIcon = PhoneBluetoothSpeakerFontIcon;
37337 exports.PhoneFontIcon = PhoneFontIcon;
37338 exports.PhoneForwardedFontIcon = PhoneForwardedFontIcon;
37339 exports.PhoneInTalkFontIcon = PhoneInTalkFontIcon;
37340 exports.PhoneIphoneFontIcon = PhoneIphoneFontIcon;
37341 exports.PhoneLockedFontIcon = PhoneLockedFontIcon;
37342 exports.PhoneMissedFontIcon = PhoneMissedFontIcon;
37343 exports.PhoneOnly = PhoneOnly;
37344 exports.PhonePausedFontIcon = PhonePausedFontIcon;
37345 exports.PhonelinkEraseFontIcon = PhonelinkEraseFontIcon;
37346 exports.PhonelinkFontIcon = PhonelinkFontIcon;
37347 exports.PhonelinkLockFontIcon = PhonelinkLockFontIcon;
37348 exports.PhonelinkOffFontIcon = PhonelinkOffFontIcon;
37349 exports.PhonelinkRingFontIcon = PhonelinkRingFontIcon;
37350 exports.PhonelinkSetupFontIcon = PhonelinkSetupFontIcon;
37351 exports.PhotoAlbumFontIcon = PhotoAlbumFontIcon;
37352 exports.PhotoCameraFontIcon = PhotoCameraFontIcon;
37353 exports.PhotoFilterFontIcon = PhotoFilterFontIcon;
37354 exports.PhotoFontIcon = PhotoFontIcon;
37355 exports.PhotoLibraryFontIcon = PhotoLibraryFontIcon;
37356 exports.PhotoSizeSelectActualFontIcon = PhotoSizeSelectActualFontIcon;
37357 exports.PhotoSizeSelectLargeFontIcon = PhotoSizeSelectLargeFontIcon;
37358 exports.PhotoSizeSelectSmallFontIcon = PhotoSizeSelectSmallFontIcon;
37359 exports.PictureAsPdfFontIcon = PictureAsPdfFontIcon;
37360 exports.PictureInPictureAltFontIcon = PictureInPictureAltFontIcon;
37361 exports.PictureInPictureFontIcon = PictureInPictureFontIcon;
37362 exports.PieChartFontIcon = PieChartFontIcon;
37363 exports.PieChartOutlinedFontIcon = PieChartOutlinedFontIcon;
37364 exports.PinDropFontIcon = PinDropFontIcon;
37365 exports.PlaceFontIcon = PlaceFontIcon;
37366 exports.PlayArrowFontIcon = PlayArrowFontIcon;
37367 exports.PlayCircleFilledFontIcon = PlayCircleFilledFontIcon;
37368 exports.PlayCircleOutlineFontIcon = PlayCircleOutlineFontIcon;
37369 exports.PlayForWorkFontIcon = PlayForWorkFontIcon;
37370 exports.PlaylistAddCheckFontIcon = PlaylistAddCheckFontIcon;
37371 exports.PlaylistAddFontIcon = PlaylistAddFontIcon;
37372 exports.PlaylistPlayFontIcon = PlaylistPlayFontIcon;
37373 exports.PlusOneFontIcon = PlusOneFontIcon;
37374 exports.PollFontIcon = PollFontIcon;
37375 exports.PolymerFontIcon = PolymerFontIcon;
37376 exports.PoolFontIcon = PoolFontIcon;
37377 exports.PortableWifiOffFontIcon = PortableWifiOffFontIcon;
37378 exports.Portal = Portal;
37379 exports.PortraitFontIcon = PortraitFontIcon;
37380 exports.PowerFontIcon = PowerFontIcon;
37381 exports.PowerInputFontIcon = PowerInputFontIcon;
37382 exports.PowerSettingsNewFontIcon = PowerSettingsNewFontIcon;
37383 exports.PregnantWomanFontIcon = PregnantWomanFontIcon;
37384 exports.PresentToAllFontIcon = PresentToAllFontIcon;
37385 exports.PrintFontIcon = PrintFontIcon;
37386 exports.PriorityHighFontIcon = PriorityHighFontIcon;
37387 exports.PublicFontIcon = PublicFontIcon;
37388 exports.PublishFontIcon = PublishFontIcon;
37389 exports.QueryBuilderFontIcon = QueryBuilderFontIcon;
37390 exports.QuestionAnswerFontIcon = QuestionAnswerFontIcon;
37391 exports.QueueFontIcon = QueueFontIcon;
37392 exports.QueueMusicFontIcon = QueueMusicFontIcon;
37393 exports.QueuePlayNextFontIcon = QueuePlayNextFontIcon;
37394 exports.Radio = Radio;
37395 exports.RadioButtonCheckedFontIcon = RadioButtonCheckedFontIcon;
37396 exports.RadioButtonUncheckedFontIcon = RadioButtonUncheckedFontIcon;
37397 exports.RadioFontIcon = RadioFontIcon;
37398 exports.RateReviewFontIcon = RateReviewFontIcon;
37399 exports.ReceiptFontIcon = ReceiptFontIcon;
37400 exports.RecentActorsFontIcon = RecentActorsFontIcon;
37401 exports.RecordVoiceOverFontIcon = RecordVoiceOverFontIcon;
37402 exports.RedeemFontIcon = RedeemFontIcon;
37403 exports.RedoFontIcon = RedoFontIcon;
37404 exports.RefreshFontIcon = RefreshFontIcon;
37405 exports.RemoveCircleFontIcon = RemoveCircleFontIcon;
37406 exports.RemoveCircleOutlineFontIcon = RemoveCircleOutlineFontIcon;
37407 exports.RemoveFontIcon = RemoveFontIcon;
37408 exports.RemoveFromQueueFontIcon = RemoveFromQueueFontIcon;
37409 exports.RemoveRedEyeFontIcon = RemoveRedEyeFontIcon;
37410 exports.RemoveShoppingCartFontIcon = RemoveShoppingCartFontIcon;
37411 exports.ReorderFontIcon = ReorderFontIcon;
37412 exports.RepeatFontIcon = RepeatFontIcon;
37413 exports.RepeatOneFontIcon = RepeatOneFontIcon;
37414 exports.Replay10FontIcon = Replay10FontIcon;
37415 exports.Replay30FontIcon = Replay30FontIcon;
37416 exports.Replay5FontIcon = Replay5FontIcon;
37417 exports.ReplayFontIcon = ReplayFontIcon;
37418 exports.ReplyAllFontIcon = ReplyAllFontIcon;
37419 exports.ReplyFontIcon = ReplyFontIcon;
37420 exports.ReportFontIcon = ReportFontIcon;
37421 exports.ReportProblemFontIcon = ReportProblemFontIcon;
37422 exports.ResizeListener = ResizeListener;
37423 exports.ResizeObserver = ResizeObserver$1;
37424 exports.RestaurantFontIcon = RestaurantFontIcon;
37425 exports.RestaurantMenuFontIcon = RestaurantMenuFontIcon;
37426 exports.RestoreFontIcon = RestoreFontIcon;
37427 exports.RestorePageFontIcon = RestorePageFontIcon;
37428 exports.RingVolumeFontIcon = RingVolumeFontIcon;
37429 exports.RoomFontIcon = RoomFontIcon;
37430 exports.RoomServiceFontIcon = RoomServiceFontIcon;
37431 exports.Rotate90DegreesCcwFontIcon = Rotate90DegreesCcwFontIcon;
37432 exports.RotateLeftFontIcon = RotateLeftFontIcon;
37433 exports.RotateRightFontIcon = RotateRightFontIcon;
37434 exports.Rotation3DFontIcon = Rotation3DFontIcon;
37435 exports.RoundedCornerFontIcon = RoundedCornerFontIcon;
37436 exports.RouterFontIcon = RouterFontIcon;
37437 exports.RowingFontIcon = RowingFontIcon;
37438 exports.RssFeedFontIcon = RssFeedFontIcon;
37439 exports.RvHookupFontIcon = RvHookupFontIcon;
37440 exports.SCALE_CLASSNAMES = SCALE_CLASSNAMES;
37441 exports.SCALE_TIMEOUT = SCALE_TIMEOUT;
37442 exports.SCALE_Y_CLASSNAMES = SCALE_Y_CLASSNAMES;
37443 exports.SVGIcon = SVGIcon;
37444 exports.SatelliteFontIcon = SatelliteFontIcon;
37445 exports.SaveFontIcon = SaveFontIcon;
37446 exports.ScaleTransition = ScaleTransition;
37447 exports.ScannerFontIcon = ScannerFontIcon;
37448 exports.ScheduleFontIcon = ScheduleFontIcon;
37449 exports.SchoolFontIcon = SchoolFontIcon;
37450 exports.ScreenLockLandscapeFontIcon = ScreenLockLandscapeFontIcon;
37451 exports.ScreenLockPortraitFontIcon = ScreenLockPortraitFontIcon;
37452 exports.ScreenLockRotationFontIcon = ScreenLockRotationFontIcon;
37453 exports.ScreenRotationFontIcon = ScreenRotationFontIcon;
37454 exports.ScreenShareFontIcon = ScreenShareFontIcon;
37455 exports.ScrollListener = ScrollListener;
37456 exports.SdCardFontIcon = SdCardFontIcon;
37457 exports.SdStorageFontIcon = SdStorageFontIcon;
37458 exports.SearchFontIcon = SearchFontIcon;
37459 exports.SecurityFontIcon = SecurityFontIcon;
37460 exports.Select = Select;
37461 exports.SelectAllFontIcon = SelectAllFontIcon;
37462 exports.SendFontIcon = SendFontIcon;
37463 exports.SentimentDissatisfiedFontIcon = SentimentDissatisfiedFontIcon;
37464 exports.SentimentNeutralFontIcon = SentimentNeutralFontIcon;
37465 exports.SentimentSatisfiedFontIcon = SentimentSatisfiedFontIcon;
37466 exports.SentimentVeryDissatisfiedFontIcon = SentimentVeryDissatisfiedFontIcon;
37467 exports.SentimentVerySatisfiedFontIcon = SentimentVerySatisfiedFontIcon;
37468 exports.SettingsApplicationsFontIcon = SettingsApplicationsFontIcon;
37469 exports.SettingsBackupRestoreFontIcon = SettingsBackupRestoreFontIcon;
37470 exports.SettingsBluetoothFontIcon = SettingsBluetoothFontIcon;
37471 exports.SettingsBrightnessFontIcon = SettingsBrightnessFontIcon;
37472 exports.SettingsCellFontIcon = SettingsCellFontIcon;
37473 exports.SettingsEthernetFontIcon = SettingsEthernetFontIcon;
37474 exports.SettingsFontIcon = SettingsFontIcon;
37475 exports.SettingsInputAntennaFontIcon = SettingsInputAntennaFontIcon;
37476 exports.SettingsInputComponentFontIcon = SettingsInputComponentFontIcon;
37477 exports.SettingsInputCompositeFontIcon = SettingsInputCompositeFontIcon;
37478 exports.SettingsInputHdmiFontIcon = SettingsInputHdmiFontIcon;
37479 exports.SettingsInputSvideoFontIcon = SettingsInputSvideoFontIcon;
37480 exports.SettingsOverscanFontIcon = SettingsOverscanFontIcon;
37481 exports.SettingsPhoneFontIcon = SettingsPhoneFontIcon;
37482 exports.SettingsPowerFontIcon = SettingsPowerFontIcon;
37483 exports.SettingsRemoteFontIcon = SettingsRemoteFontIcon;
37484 exports.SettingsSystemDaydreamFontIcon = SettingsSystemDaydreamFontIcon;
37485 exports.SettingsVoiceFontIcon = SettingsVoiceFontIcon;
37486 exports.ShareFontIcon = ShareFontIcon;
37487 exports.Sheet = Sheet;
37488 exports.ShopFontIcon = ShopFontIcon;
37489 exports.ShopTwoFontIcon = ShopTwoFontIcon;
37490 exports.ShoppingBasketFontIcon = ShoppingBasketFontIcon;
37491 exports.ShoppingCartFontIcon = ShoppingCartFontIcon;
37492 exports.ShortTextFontIcon = ShortTextFontIcon;
37493 exports.ShowChartFontIcon = ShowChartFontIcon;
37494 exports.ShuffleFontIcon = ShuffleFontIcon;
37495 exports.SignalCellular4BarFontIcon = SignalCellular4BarFontIcon;
37496 exports.SignalCellularConnectedNoInternet4BarFontIcon = SignalCellularConnectedNoInternet4BarFontIcon;
37497 exports.SignalCellularNoSimFontIcon = SignalCellularNoSimFontIcon;
37498 exports.SignalCellularNullFontIcon = SignalCellularNullFontIcon;
37499 exports.SignalCellularOffFontIcon = SignalCellularOffFontIcon;
37500 exports.SignalWifi4BarFontIcon = SignalWifi4BarFontIcon;
37501 exports.SignalWifi4BarLockFontIcon = SignalWifi4BarLockFontIcon;
37502 exports.SignalWifiOffFontIcon = SignalWifiOffFontIcon;
37503 exports.SimCardAlertFontIcon = SimCardAlertFontIcon;
37504 exports.SimCardFontIcon = SimCardFontIcon;
37505 exports.SimpleListItem = SimpleListItem;
37506 exports.SkipNextFontIcon = SkipNextFontIcon;
37507 exports.SkipPreviousFontIcon = SkipPreviousFontIcon;
37508 exports.SkipToMainContent = SkipToMainContent;
37509 exports.SlideshowFontIcon = SlideshowFontIcon;
37510 exports.SlowMotionVideoFontIcon = SlowMotionVideoFontIcon;
37511 exports.SmartphoneFontIcon = SmartphoneFontIcon;
37512 exports.SmokeFreeFontIcon = SmokeFreeFontIcon;
37513 exports.SmokingRoomsFontIcon = SmokingRoomsFontIcon;
37514 exports.SmsFailedFontIcon = SmsFailedFontIcon;
37515 exports.SmsFontIcon = SmsFontIcon;
37516 exports.Snackbar = Snackbar;
37517 exports.SnoozeFontIcon = SnoozeFontIcon;
37518 exports.SortByAlphaFontIcon = SortByAlphaFontIcon;
37519 exports.SortFontIcon = SortFontIcon;
37520 exports.SpaFontIcon = SpaFontIcon;
37521 exports.SpaceBarFontIcon = SpaceBarFontIcon;
37522 exports.SpeakerFontIcon = SpeakerFontIcon;
37523 exports.SpeakerGroupFontIcon = SpeakerGroupFontIcon;
37524 exports.SpeakerNotesFontIcon = SpeakerNotesFontIcon;
37525 exports.SpeakerNotesOffFontIcon = SpeakerNotesOffFontIcon;
37526 exports.SpeakerPhoneFontIcon = SpeakerPhoneFontIcon;
37527 exports.SpellcheckFontIcon = SpellcheckFontIcon;
37528 exports.SrOnly = SrOnly;
37529 exports.StarBorderFontIcon = StarBorderFontIcon;
37530 exports.StarFontIcon = StarFontIcon;
37531 exports.StarHalfFontIcon = StarHalfFontIcon;
37532 exports.StarsFontIcon = StarsFontIcon;
37533 exports.StatesConfig = StatesConfig;
37534 exports.StatesConfigContext = StatesConfigContext;
37535 exports.StayCurrentLandscapeFontIcon = StayCurrentLandscapeFontIcon;
37536 exports.StayCurrentPortraitFontIcon = StayCurrentPortraitFontIcon;
37537 exports.StayPrimaryLandscapeFontIcon = StayPrimaryLandscapeFontIcon;
37538 exports.StayPrimaryPortraitFontIcon = StayPrimaryPortraitFontIcon;
37539 exports.StopFontIcon = StopFontIcon;
37540 exports.StopScreenShareFontIcon = StopScreenShareFontIcon;
37541 exports.StorageFontIcon = StorageFontIcon;
37542 exports.StoreFontIcon = StoreFontIcon;
37543 exports.StoreMallDirectoryFontIcon = StoreMallDirectoryFontIcon;
37544 exports.StraightenFontIcon = StraightenFontIcon;
37545 exports.StreetviewFontIcon = StreetviewFontIcon;
37546 exports.StrikethroughSFontIcon = StrikethroughSFontIcon;
37547 exports.StyleFontIcon = StyleFontIcon;
37548 exports.SubdirectoryArrowLeftFontIcon = SubdirectoryArrowLeftFontIcon;
37549 exports.SubdirectoryArrowRightFontIcon = SubdirectoryArrowRightFontIcon;
37550 exports.SubjectFontIcon = SubjectFontIcon;
37551 exports.SubscriptionsFontIcon = SubscriptionsFontIcon;
37552 exports.SubtitlesFontIcon = SubtitlesFontIcon;
37553 exports.SubwayFontIcon = SubwayFontIcon;
37554 exports.SupervisorAccountFontIcon = SupervisorAccountFontIcon;
37555 exports.SurroundSoundFontIcon = SurroundSoundFontIcon;
37556 exports.SwapCallsFontIcon = SwapCallsFontIcon;
37557 exports.SwapHorizFontIcon = SwapHorizFontIcon;
37558 exports.SwapVertFontIcon = SwapVertFontIcon;
37559 exports.SwapVerticalCircleFontIcon = SwapVerticalCircleFontIcon;
37560 exports.Switch = Switch;
37561 exports.SwitchCameraFontIcon = SwitchCameraFontIcon;
37562 exports.SwitchVideoFontIcon = SwitchVideoFontIcon;
37563 exports.SyncDisabledFontIcon = SyncDisabledFontIcon;
37564 exports.SyncFontIcon = SyncFontIcon;
37565 exports.SyncProblemFontIcon = SyncProblemFontIcon;
37566 exports.SystemUpdateAltFontIcon = SystemUpdateAltFontIcon;
37567 exports.SystemUpdateFontIcon = SystemUpdateFontIcon;
37568 exports.TOP_CENTER_ANCHOR = TOP_CENTER_ANCHOR;
37569 exports.TOP_INNER_LEFT_ANCHOR = TOP_INNER_LEFT_ANCHOR;
37570 exports.TOP_INNER_RIGHT_ANCHOR = TOP_INNER_RIGHT_ANCHOR;
37571 exports.TOP_LEFT_ANCHOR = TOP_LEFT_ANCHOR;
37572 exports.TOP_RIGHT_ANCHOR = TOP_RIGHT_ANCHOR;
37573 exports.Tab = Tab;
37574 exports.TabFontIcon = TabFontIcon;
37575 exports.TabPanel = TabPanel;
37576 exports.TabPanels = TabPanels;
37577 exports.TabUnselectedFontIcon = TabUnselectedFontIcon;
37578 exports.Table = Table;
37579 exports.TableBody = TableBody;
37580 exports.TableCell = TableCell;
37581 exports.TableCellContent = TableCellContent;
37582 exports.TableCheckbox = TableCheckbox;
37583 exports.TableContainer = TableContainer;
37584 exports.TableFooter = TableFooter;
37585 exports.TableHeader = TableHeader;
37586 exports.TableRow = TableRow;
37587 exports.TabletAndroidFontIcon = TabletAndroidFontIcon;
37588 exports.TabletFontIcon = TabletFontIcon;
37589 exports.TabletMacFontIcon = TabletMacFontIcon;
37590 exports.TabletOnly = TabletOnly;
37591 exports.Tabs = Tabs;
37592 exports.TabsList = TabsList;
37593 exports.TabsManager = TabsManager;
37594 exports.TagFacesFontIcon = TagFacesFontIcon;
37595 exports.TapAndPlayFontIcon = TapAndPlayFontIcon;
37596 exports.TerrainFontIcon = TerrainFontIcon;
37597 exports.Text = Text;
37598 exports.TextArea = TextArea;
37599 exports.TextContainer = TextContainer;
37600 exports.TextField = TextField;
37601 exports.TextFieldAddon = TextFieldAddon;
37602 exports.TextFieldContainer = TextFieldContainer;
37603 exports.TextFieldsFontIcon = TextFieldsFontIcon;
37604 exports.TextFormatFontIcon = TextFormatFontIcon;
37605 exports.TextIconSpacing = TextIconSpacing;
37606 exports.TextsmsFontIcon = TextsmsFontIcon;
37607 exports.TextureFontIcon = TextureFontIcon;
37608 exports.TheatersFontIcon = TheatersFontIcon;
37609 exports.ThumbDownFontIcon = ThumbDownFontIcon;
37610 exports.ThumbUpFontIcon = ThumbUpFontIcon;
37611 exports.ThumbsUpDownFontIcon = ThumbsUpDownFontIcon;
37612 exports.TimeToLeaveFontIcon = TimeToLeaveFontIcon;
37613 exports.TimelapseFontIcon = TimelapseFontIcon;
37614 exports.TimelineFontIcon = TimelineFontIcon;
37615 exports.Timer10FontIcon = Timer10FontIcon;
37616 exports.Timer3FontIcon = Timer3FontIcon;
37617 exports.TimerFontIcon = TimerFontIcon;
37618 exports.TimerOffFontIcon = TimerOffFontIcon;
37619 exports.TitleFontIcon = TitleFontIcon;
37620 exports.Toast = Toast;
37621 exports.TocFontIcon = TocFontIcon;
37622 exports.TodayFontIcon = TodayFontIcon;
37623 exports.ToggleContainer = ToggleContainer;
37624 exports.TollFontIcon = TollFontIcon;
37625 exports.TonalityFontIcon = TonalityFontIcon;
37626 exports.Tooltip = Tooltip;
37627 exports.TooltipHoverModeConfig = TooltipHoverModeConfig;
37628 exports.Tooltipped = Tooltipped;
37629 exports.TouchAppFontIcon = TouchAppFontIcon;
37630 exports.ToysFontIcon = ToysFontIcon;
37631 exports.TrackChangesFontIcon = TrackChangesFontIcon;
37632 exports.TrafficFontIcon = TrafficFontIcon;
37633 exports.TrainFontIcon = TrainFontIcon;
37634 exports.TramFontIcon = TramFontIcon;
37635 exports.TransferWithinAStationFontIcon = TransferWithinAStationFontIcon;
37636 exports.TransformFontIcon = TransformFontIcon;
37637 exports.TranslateFontIcon = TranslateFontIcon;
37638 exports.Tree = Tree;
37639 exports.TreeGroup = TreeGroup;
37640 exports.TreeItem = TreeItem;
37641 exports.TrendingDownFontIcon = TrendingDownFontIcon;
37642 exports.TrendingFlatFontIcon = TrendingFlatFontIcon;
37643 exports.TrendingUpFontIcon = TrendingUpFontIcon;
37644 exports.TuneFontIcon = TuneFontIcon;
37645 exports.TurnedInFontIcon = TurnedInFontIcon;
37646 exports.TurnedInNotFontIcon = TurnedInNotFontIcon;
37647 exports.TvFontIcon = TvFontIcon;
37648 exports.UNMOUNT = UNMOUNT;
37649 exports.UnarchiveFontIcon = UnarchiveFontIcon;
37650 exports.UndoFontIcon = UndoFontIcon;
37651 exports.UnfoldLessFontIcon = UnfoldLessFontIcon;
37652 exports.UnfoldMoreFontIcon = UnfoldMoreFontIcon;
37653 exports.UnstyledButton = UnstyledButton;
37654 exports.UpdateFontIcon = UpdateFontIcon;
37655 exports.UsbFontIcon = UsbFontIcon;
37656 exports.VerifiedUserFontIcon = VerifiedUserFontIcon;
37657 exports.VerticalAlignBottomFontIcon = VerticalAlignBottomFontIcon;
37658 exports.VerticalAlignCenterFontIcon = VerticalAlignCenterFontIcon;
37659 exports.VerticalAlignTopFontIcon = VerticalAlignTopFontIcon;
37660 exports.VerticalDivider = VerticalDivider;
37661 exports.VibrationFontIcon = VibrationFontIcon;
37662 exports.VideoCallFontIcon = VideoCallFontIcon;
37663 exports.VideoLabelFontIcon = VideoLabelFontIcon;
37664 exports.VideoLibraryFontIcon = VideoLibraryFontIcon;
37665 exports.VideocamFontIcon = VideocamFontIcon;
37666 exports.VideocamOffFontIcon = VideocamOffFontIcon;
37667 exports.VideogameAssetFontIcon = VideogameAssetFontIcon;
37668 exports.ViewAgendaFontIcon = ViewAgendaFontIcon;
37669 exports.ViewArrayFontIcon = ViewArrayFontIcon;
37670 exports.ViewCarouselFontIcon = ViewCarouselFontIcon;
37671 exports.ViewColumnFontIcon = ViewColumnFontIcon;
37672 exports.ViewComfyFontIcon = ViewComfyFontIcon;
37673 exports.ViewCompactFontIcon = ViewCompactFontIcon;
37674 exports.ViewDayFontIcon = ViewDayFontIcon;
37675 exports.ViewHeadlineFontIcon = ViewHeadlineFontIcon;
37676 exports.ViewListFontIcon = ViewListFontIcon;
37677 exports.ViewModuleFontIcon = ViewModuleFontIcon;
37678 exports.ViewQuiltFontIcon = ViewQuiltFontIcon;
37679 exports.ViewStreamFontIcon = ViewStreamFontIcon;
37680 exports.ViewWeekFontIcon = ViewWeekFontIcon;
37681 exports.VignetteFontIcon = VignetteFontIcon;
37682 exports.VisibilityFontIcon = VisibilityFontIcon;
37683 exports.VisibilityOffFontIcon = VisibilityOffFontIcon;
37684 exports.VoiceChatFontIcon = VoiceChatFontIcon;
37685 exports.VoicemailFontIcon = VoicemailFontIcon;
37686 exports.VolumeDownFontIcon = VolumeDownFontIcon;
37687 exports.VolumeMuteFontIcon = VolumeMuteFontIcon;
37688 exports.VolumeOffFontIcon = VolumeOffFontIcon;
37689 exports.VolumeUpFontIcon = VolumeUpFontIcon;
37690 exports.VpnKeyFontIcon = VpnKeyFontIcon;
37691 exports.VpnLockFontIcon = VpnLockFontIcon;
37692 exports.WallpaperFontIcon = WallpaperFontIcon;
37693 exports.WarningFontIcon = WarningFontIcon;
37694 exports.WatchFontIcon = WatchFontIcon;
37695 exports.WatchLaterFontIcon = WatchLaterFontIcon;
37696 exports.WbAutoFontIcon = WbAutoFontIcon;
37697 exports.WbCloudyFontIcon = WbCloudyFontIcon;
37698 exports.WbIncandescentFontIcon = WbIncandescentFontIcon;
37699 exports.WbIridescentFontIcon = WbIridescentFontIcon;
37700 exports.WbSunnyFontIcon = WbSunnyFontIcon;
37701 exports.WcFontIcon = WcFontIcon;
37702 exports.WebAssetFontIcon = WebAssetFontIcon;
37703 exports.WebFontIcon = WebFontIcon;
37704 exports.WeekendFontIcon = WeekendFontIcon;
37705 exports.WhatshotFontIcon = WhatshotFontIcon;
37706 exports.WidgetsFontIcon = WidgetsFontIcon;
37707 exports.WifiFontIcon = WifiFontIcon;
37708 exports.WifiLockFontIcon = WifiLockFontIcon;
37709 exports.WifiTetheringFontIcon = WifiTetheringFontIcon;
37710 exports.WorkFontIcon = WorkFontIcon;
37711 exports.WrapTextFontIcon = WrapTextFontIcon;
37712 exports.YoutubeSearchedForFontIcon = YoutubeSearchedForFontIcon;
37713 exports.ZoomInFontIcon = ZoomInFontIcon;
37714 exports.ZoomOutFontIcon = ZoomOutFontIcon;
37715 exports.ZoomOutMapFontIcon = ZoomOutMapFontIcon;
37716 exports.addTouchEvent = addTouchEvent;
37717 exports.applyRef = applyRef;
37718 exports.bem = bem;
37719 exports.buttonThemeClassNames = buttonThemeClassNames;
37720 exports.caseInsensitiveFilter = caseInsensitiveFilter;
37721 exports.containsElement = containsElement;
37722 exports.defaultMenuItemRenderer = defaultMenuItemRenderer;
37723 exports.defaultMenuRenderer = defaultMenuRenderer;
37724 exports.defaultNavigationItemRenderer = defaultNavigationItemRenderer;
37725 exports.defaultTreeItemRenderer = defaultTreeItemRenderer;
37726 exports.defaults = defaults;
37727 exports.delegateEvent = delegateEvent;
37728 exports.extractTextContent = extractTextContent;
37729 exports.findIgnoreCase = findIgnoreCase;
37730 exports.findMatchIndex = findMatchIndex;
37731 exports.findSizingContainer = findSizingContainer;
37732 exports.focusElementWithin = focusElementWithin;
37733 exports.fuzzyFilter = fuzzyFilter;
37734 exports.getChildItems = getChildItems;
37735 exports.getContrastRatio = getContrastRatio;
37736 exports.getElementRect = getElementRect;
37737 exports.getFixedPosition = getFixedPosition;
37738 exports.getFocusableElements = getFocusableElements;
37739 exports.getFuzzyRegExp = getFuzzyRegExp;
37740 exports.getItemId = getItemId;
37741 exports.getItemValue = getItemValue;
37742 exports.getItemsFrom = getItemsFrom;
37743 exports.getLayoutType = getLayoutType;
37744 exports.getListItemHeight = getListItemHeight;
37745 exports.getProgressA11y = getProgressA11y;
37746 exports.getSearchString = getSearchString;
37747 exports.getViewportSize = getViewportSize;
37748 exports.hexToRGB = hexToRGB;
37749 exports.isContrastCompliant = isContrastCompliant;
37750 exports.isFullHeightLayout = isFullHeightLayout;
37751 exports.isListboxOptionProps = isListboxOptionProps;
37752 exports.isPersistentLayout = isPersistentLayout;
37753 exports.isResultOf = isResultOf;
37754 exports.isTemporaryLayout = isTemporaryLayout;
37755 exports.isToggleableLayout = isToggleableLayout;
37756 exports.loop = loop;
37757 exports.omit = omit;
37758 exports.removeTouchEvent = removeTouchEvent;
37759 exports.scrollIntoView = scrollIntoView;
37760 exports.scrollbarSize = scrollbarSize;
37761 exports.setTouchEvent = setTouchEvent;
37762 exports.throttle = throttle$1;
37763 exports.unitToNumber = unitToNumber;
37764 exports.useActionClassName = useActionClassName;
37765 exports.useActiveDescendantMovement = useActiveDescendantMovement;
37766 exports.useAddMessage = useAddMessage;
37767 exports.useAppSize = useAppSize;
37768 exports.useAutoComplete = useAutoComplete;
37769 exports.useCSSTransition = useCSSTransition;
37770 exports.useChecked = useChecked;
37771 exports.useChoice = useChoice;
37772 exports.useCloseOnEscape = useCloseOnEscape;
37773 exports.useCloseOnOutsideClick = useCloseOnOutsideClick;
37774 exports.useCollapse = useCollapse;
37775 exports.useContextMenu = useContextMenu;
37776 exports.useCrossFade = useCrossFade;
37777 exports.useFixedPositioning = useFixedPositioning;
37778 exports.useFocusMovement = useFocusMovement;
37779 exports.useFocusOnMount = useFocusOnMount;
37780 exports.useFormTheme = useFormTheme;
37781 exports.useIcon = useIcon;
37782 exports.useIndeterminateChecked = useIndeterminateChecked;
37783 exports.useInteractionStates = useInteractionStates;
37784 exports.useInterval = useInterval;
37785 exports.useIsUserInteractionMode = useIsUserInteractionMode;
37786 exports.useKeyboardMovement = useKeyboardMovement;
37787 exports.useKeyboardSearch = useKeyboardSearch;
37788 exports.useLayoutConfig = useLayoutConfig;
37789 exports.useLayoutNavigation = useLayoutNavigation;
37790 exports.useMediaQuery = useMediaQuery;
37791 exports.useMessageQueueActions = useMessageQueueActions;
37792 exports.useMessageVisibility = useMessageVisibility;
37793 exports.useOrientation = useOrientation;
37794 exports.usePanels = usePanels;
37795 exports.usePreviousFocus = usePreviousFocus;
37796 exports.useQueue = useQueue;
37797 exports.useRefCache = useRefCache;
37798 exports.useResizeListener = useResizeListener;
37799 exports.useResizeObserver = useResizeObserver;
37800 exports.useScrollListener = useScrollListener;
37801 exports.useScrollLock = useScrollLock;
37802 exports.useSelectState = useSelectState;
37803 exports.useStatesConfigContext = useStatesConfigContext;
37804 exports.useTabs = useTabs;
37805 exports.useTempValue = useTempValue;
37806 exports.useTimeout = useTimeout;
37807 exports.useToggle = useToggle;
37808 exports.useTooltipHoverModeState = useTooltipHoverModeState;
37809 exports.useTooltipState = useTooltipState;
37810 exports.useTransition = useTransition;
37811 exports.useTreeItemExpansion = useTreeItemExpansion;
37812 exports.useTreeItemSelection = useTreeItemSelection;
37813 exports.useUserInteractionMode = useUserInteractionMode;
37814 exports.useWidthMediaQuery = useWidthMediaQuery;
37815
37816 Object.defineProperty(exports, '__esModule', { value: true });
37817
37818})));
37819//# sourceMappingURL=react-md-with-font-icons.development.js.map